Свойства компонента DBGrid
Здравствуйте! Вопрос такой вот: пишу программу под базы данных, и там на одной форме используется компонент DBGRId. Туда подгружается таблица из базы данных и там есть поле "Сумма дебета" которое содержит число типа integer. Есть также label2 куда выводится общая сумма всех строк из стобца "Сумма дебета". Но вот такой вопрос: нужно чтобы общая сумма отображалась в режиме реального времени. Если использовать ttimer то тогда он не дает добавлять новые строки. какое событие для dbgrid можно использовать чтобы выполнять проверку в режиме реального времени?
Интересно, а что дебет всегда целые ?
Это приложение для сети ?
Иначе нет смысла в столь частом считываниии.
Сделай у таймера пореже события считывания.
Можно сделать форму добавления в потоке.
Но лучше (проще всего :) )
На форме с TDBGrid- ом сумму не показывать, а при добавлении/редактировании в новой форме её (Общую сумму) выводить.
Интересно, а что дебет всегда целые ?
Это приложение для сети ?
Иначе нет смысла в столь частом считываниии.
Сделай у таймера пореже события считывания.
Можно сделать форму добавления в потоке.
Но лучше (проще всего :) )
На форме с TDBGrid- ом сумму не показывать, а при добавлении/редактировании в новой форме её (Общую сумму) выводить.
В данном конкретном случае дебета - там всегда целые числа. Приложение не для сети а для локальной машины. А вот формы для добавления у меня нету, редактируется прям в таблице то есть в DBGride. Но я уже отказался от этой идее, у меня есть форма для текущего состояния баланса, туда он и будет выводить и дебет и кредет :-)
Возникла другая проблема. Как мне программно добавить строку в таблицу базы данных? Данные должны браться с компонента TMASKedit.
для Table
..........
добавляем
..........
Table->Post();
для Query
или
sql = "update ...."
вот таким оборазом программно :)
после добавление - Refresh
и чтоб с позиции текущей не убежал указатель - запомнить позицию и после переместиться .
для Table
..........
добавляем
..........
Table->Post();
для Query
или
sql = "update ...."
вот таким оборазом программно :)
после добавление - Refresh
и чтоб с позиции текущей не убежал указатель - запомнить позицию и после переместиться .
Это конечно не совсем то что надо..... компонент sqlquery у меня не используется, использую tadoconnection. Что означает строка Table->Insert?
Это конечно не совсем то что надо..... компонент sqlquery у меня не используется, использую tadoconnection. Что означает строка Table->Insert?
у меня не используется, использую tadoconnection.
Тебе надо разобраться в принципе подключения.
Что означает строка Table->Insert?
Лучше взять HELP и там почитать.
TTable наследуется от TDataSet
Вот пример из HELP Builder в Delphi в принципе все тоже. TADOTable который примерно также работает.
Здесь пример с подключением скорее всего через BDE.
This example uses the BeforeInsert event to do data validation; if the StrToInt function raises an exception, the edit control’s contents are set to a valid value so the assignment to the INTEGER field in the table will succeed.
void __fastcall TForm1::Table1BeforeInsert(TDataSet *DataSet)
{
try
{
// Make sure edit field can be converted to integer
// this will throw an exception if it can’t
StrToInt(Edit1->Text);
}
catch (...)
{
Edit1->Text = "0";
}
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Table1->Insert();
Table1->FieldByName("QUANTITY")->AsInteger = StrToInt(Edit1->Text);
Table1->Post();
}