Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обновление StatusBar [D7, Access 2003]


student000 ©   (2006-05-18 01:11:00) 

Господа, существует такая проблема:
Скажем, добавляю я запись в БД, сохраняю (при помощи ДБНавигатора), ТЫКАЮ кнопку «Все записи» - запись добавлена – проблем нет!

НО!

В StatusBar по-прежнему отображаются старые данные об общем количестве записей в БД.
Процедура отображения общего количества записей в БД:
procedure TForm1.FormCreate(Sender: TObject);
begin
StatusBar.Panels[2].Text:=Всего записей в БД: '+ IntToStr(ADOQuery1.RecordCount);
End.Господа, подскажите, пожалуйста, а можно сделать так, чтобы при добавлении новой записи информация в СтатусБаре тут же обновлялась, ну или скажем по щелчку на кнопку!

Заранее благодарю за ответ!


Antoha111   (2006-05-18 17:58:00) [1]

Если работа с БД идет через SQL-запросы, то после добавления нужно переоткрыть ADOQuery.


MORA   (2006-05-18 15:41:00) [2]

может, надо сделать close/open?


Desdechado   (2006-05-18 15:38:00) [3]

без внимательности не быть тебе программистом
еще раз

почему в первый раз ты используешь ADOQuery 1 .RecordCount
а в другие разы "Где я только не прописывал" ADOQuery 2 .RecordCount


student000   (2006-05-18 14:35:00) [4]

Где я только не прописывал этот код:
StatusBar.Panels[2].Text:='Всего записей в БД: '+ IntToStr(ADOQuery2.RecordCount);

Где прописывал:
procedure TForm3.BitBtn1Click(Sender: TObject);

procedure TForm3.ADOQuery2AfterOpen(DataSet: TDataSet);

procedure TForm3.ADOQuery2AfterInsert(DataSet: TDataSet);

procedure TForm3.DataSource2DataChange(Sender: TObject; Field: TField);

procedure TForm3.ADOQuery2AfterPost(DataSet: TDataSet);

И почти везде обновление информации о количестве записей идёт только после перезапуска программы, а остальнх вообще неичего не показывает...


Johnmen   (2006-05-18 11:06:00) [5]

Естественно.... Добавляли в ADOQuery1, а считаем в ADOQuery2 :)))


Плохиш   (2006-05-18 11:04:00) [6]


> ТЫКАЮ кнопку «Все записи»

Вот в обработчике кнопки, которую тыкаешь, и надо писать свой код.


student000   (2006-05-18 10:59:00) [7]

Я не пользуюсь Дата сетом, а делаю вот как:
procedure TForm3.ADOQuery2AfterPost(DataSet: TDataSet);
begin
StatusBar.Panels[2].Text:='Всего записей в БД: '+ IntToStr(ADOQuery2.RecordCount);
end;


Но оно всё равно не работает...


ORMADA   (2006-05-18 06:31:00) [8]

а на свойство OnPost датасета слабо ту же самую
StatusBar.Panels[2].Text:=Всего записей в БД: '+ IntToStr(ADOQuery1.RecordCount);

обработку засунуть ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо