Обновление таблицы
Подскажите как правильно обновить таблица после выполнения запроса (после апдейта поля).
подробней:
Есть таблица ADOTable, когда я изменяю поле методом самой таблицы (TableOtchetPrixod->FieldByName("Date/Time")->AsString=DateTime;) следующим ставлю TableOstatok->Refresh(); - и все ок, вижу новые данные, но если я изменяю таблицу запросом - ...Update Ost Set...
поле не обновляется, показывает старые данные, если же на кнопку поставить TableOstatok->Refresh(); и жмакнуть эдак разка три, то воаля данные обновляются (((
вот полный код:
void __fastcall TMain::BitBtn2Click(TObject *Sender)
{
ADOQueryOst->Close();
ADOQueryOst->SQL->Clear();
ADOQueryOst->SQL->Text=("Update Ost Set Kol=Kol+'"+EditKol->Text+"' Where Cod="+LabelCod->Caption+"");
ADOQueryOst->ExecSQL();
TableOstatok->Refresh();
}
пробовал и Active=false; и Active=true; и Table->Close()
потом снова Open() в разой последовательностью и грид зоново цеплять, все до лампочки.
Похоже сервер бизи ((((, проделал такой опыт, нажал BitBtn2 код которого выше, подождал 6 секунд, а затем раз нажал обновить, и что вы думаете, обновилось с первого раза, тоесть действительно табла занята(((((, если через BDE то это все работает.
База ацессовская, конектился через ADO вот таким ConectingString Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\мои проэкты\Shop 1.0\Base\BASE.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False
Еще попробовал создать новую форму, и проверить на новой (пустой форме) все это, - результат такой же. Неужели это из-за тормознутости ацесса???? Раньше на него нареканий не было
//решение
сначала выбросить ADOTable, ADOQuery ... и пользоваться нормальными компонентами
--
это какие же? "Нормальные" и чем эти не нормальные?
--
ADODataSet, ADOConnection, ADOCommand ...
потому как ADOTable, ADOQuery "затычки" для перехода от BDE
//
Сделал все с помощью ADOQuery, все работает))