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

Ваш аккаунт

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

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

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

DBGrid1 мгновенное обновление данных

520
13 марта 2007 года
inkognitum
155 / / 03.05.2006
Добрый день!
У меня проблема с обновление данных в DBGrid1.
ДАнные в DBGrid1 отображаются из результата SQL запроса в ADOQuery1:

запрос простейший:
 
Код:
ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add("SELECT * FROM doc WHERE keyproj = " + Form5->ADOTable1->FieldByName("id")->Value + " ORDER BY rezultat");
        ADOQuery1->Open();


вот я с помощью ADOTable1 редактирую поля... удаляю прибовляю и так далее.... после чего даю этот запрос который должен по идее показать все изменения (это у меня идет отдельной кнопкой - Обновить)

После редактирования базы данных я программно нажимаю на кнопку - Обновить и ничего не происходит!
Мне приходится раза 3-4 подряд нажимать на обновить только после чего данные обновляются... прошу заметить что иногда с первого раза (программно) данные обновляются замечательно.

как можно сделать так, чтобы все сразу с первого раза обновлялось?

Заранее спасибо!
263
14 марта 2007 года
koltaviy
816 / / 16.12.2004
Перед операцией 'обновления' ты Form5->ADOTable1->Post() делаешь?
1
14 марта 2007 года
kot_
7.3K / / 20.01.2000
Кроме того - необходимо учитывать, возможную задержку с обновлением и загрузкой данных. Лучше модификацию данных тоже выполнять через запрос.
309
14 марта 2007 года
el scorpio
1.1K / / 19.09.2006
Цитата:
вот я с помощью ADOTable1 редактирую поля... удаляю прибовляю и так далее.... после чего даю этот запрос который должен по идее показать все изменения (это у меня идет отдельной кнопкой - Обновить)


А что мешает редактировать поля через ADOQuery? В отличие от средств BDE, объекты ADO позволяют синхронизировать исходный набор данных. Точнее, ADO имеет меньше ограничений на текст запроса.
Таким образом, нет нужды делать вызов AdoQuery1->Requery
P.S. Кстати, лучше использовать "запрос с параметром"

 
Код:
ADOQuery1->SQL->Add ("SELECT * FROM doc");
ADOQuery1->SQL->Add ("WHERE keyproj = :pID);
ADOQuery1->SQL->Add ("ORDER BY rezultat");
ADOQuery1->Parameters->Items [0]->Value = ЗНАЧЕНИЕ;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог