Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Свойства компонента DBGrid

8.9K
29 декабря 2005 года
senator
32 / / 24.12.2005
Здравствуйте! Вопрос такой вот: пишу программу под базы данных, и там на одной форме используется компонент DBGRId. Туда подгружается таблица из базы данных и там есть поле "Сумма дебета" которое содержит число типа integer. Есть также label2 куда выводится общая сумма всех строк из стобца "Сумма дебета". Но вот такой вопрос: нужно чтобы общая сумма отображалась в режиме реального времени. Если использовать ttimer то тогда он не дает добавлять новые строки. какое событие для dbgrid можно использовать чтобы выполнять проверку в режиме реального времени?
2.1K
29 декабря 2005 года
mainigor
151 / / 21.10.2005
Цитата:
Originally posted by senator
Здравствуйте! Вопрос такой вот: пишу программу под базы данных, и там на одной форме используется компонент DBGRId. Туда подгружается таблица из базы данных и там есть поле "Сумма дебета" которое содержит число типа integer. Есть также label2 куда выводится общая сумма всех строк из стобца "Сумма дебета". Но вот такой вопрос: нужно чтобы общая сумма отображалась в режиме реального времени. Если использовать ttimer то тогда он не дает добавлять новые строки. какое событие для dbgrid можно использовать чтобы выполнять проверку в режиме реального времени?



Интересно, а что дебет всегда целые ?
Это приложение для сети ?
Иначе нет смысла в столь частом считываниии.

Сделай у таймера пореже события считывания.
Можно сделать форму добавления в потоке.
Но лучше (проще всего :) )
На форме с TDBGrid- ом сумму не показывать, а при добавлении/редактировании в новой форме её (Общую сумму) выводить.

8.9K
30 декабря 2005 года
senator
32 / / 24.12.2005
Цитата:
Originally posted by mainigor
Интересно, а что дебет всегда целые ?
Это приложение для сети ?
Иначе нет смысла в столь частом считываниии.

Сделай у таймера пореже события считывания.
Можно сделать форму добавления в потоке.
Но лучше (проще всего :) )
На форме с TDBGrid- ом сумму не показывать, а при добавлении/редактировании в новой форме её (Общую сумму) выводить.



В данном конкретном случае дебета - там всегда целые числа. Приложение не для сети а для локальной машины. А вот формы для добавления у меня нету, редактируется прям в таблице то есть в DBGride. Но я уже отказался от этой идее, у меня есть форма для текущего состояния баланса, туда он и будет выводить и дебет и кредет :-)

8.9K
30 декабря 2005 года
senator
32 / / 24.12.2005
Возникла другая проблема. Как мне программно добавить строку в таблицу базы данных? Данные должны браться с компонента TMASKedit.
2.1K
30 декабря 2005 года
mainigor
151 / / 21.10.2005
Цитата:
Originally posted by senator
Возникла другая проблема. Как мне программно добавить строку в таблицу базы данных? Данные должны браться с компонента TMASKedit.




для Table

 
Код:
Table->Insert(); // или Table->Edit();

..........
добавляем
..........

Table->Post();

для Query
 
Код:
sql = "insert into table <NameTable> (Field1, Field2) values (Value1, Value2)";

или

sql = "update ...."


вот таким оборазом программно :)
после добавление - Refresh
и чтоб с позиции текущей не убежал указатель - запомнить позицию и после переместиться .
8.9K
30 декабря 2005 года
senator
32 / / 24.12.2005
Цитата:
Originally posted by mainigor
для Table
 
Код:
Table->Insert(); // или Table->Edit();

..........
добавляем
..........

Table->Post();

для Query
 
Код:
sql = "insert into table <NameTable> (Field1, Field2) values (Value1, Value2)";

или

sql = "update ...."


вот таким оборазом программно :)
после добавление - Refresh
и чтоб с позиции текущей не убежал указатель - запомнить позицию и после переместиться .



Это конечно не совсем то что надо..... компонент sqlquery у меня не используется, использую tadoconnection. Что означает строка Table->Insert?

2.1K
30 декабря 2005 года
mainigor
151 / / 21.10.2005
Цитата:
Originally posted by senator
Это конечно не совсем то что надо..... компонент 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();
}

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог