[Makc] |
Отправлено: 26.06.2005, 02:31 |
|
Не зарегистрирован
|
Пишу интерфейс к БД Access на бидере. Проблема такая — после запроса update иедёт сразу запрос select, как правило данные оказываются ещё не изменены. Можно ли стандартными средствами проверить изменение данных, или нужно селектить, пока не изменятся? |
|
[Makc] |
Отправлено: 26.06.2005, 02:47 |
|
Не зарегистрирован
|
кстати, апдейты делаю след образом:SQL | AnsiString Query = "UPDATE Контакты SET Фамилия=";
Query += ReadyForQuery(Family->Text) + ", Имя=";
Query += ReadyForQuery(Name->Text) + ", Отчество=";
Query += ReadyForQuery(FName->Text) + ", Должность=";
Query += AnsiString(Status->ItemIndex + 1) + " WHERE cid=";
Query += cid;
if(MainQuery->Active) MainQuery->Close();
MainQuery->SQL->Clear();
MainQuery->SQL->Add(Query);
MainQuery->ExecSQL(); | |
|
Guest |
Отправлено: 26.06.2005, 20:32 |
|
Не зарегистрирован
|
Самое простое — переоткрыть запрос.
Close() Open()
после чего сделать нужный Select |
|
[Makc] |
Отправлено: 02.07.2005, 18:33 |
|
Не зарегистрирован
|
Open() и Close() — это методы для запросов возвращающих что-то (вобще говоря возвращается рекордсет). Для выполнениев Select нужно использовать именно Execute() — читай документацию
Но я нашёл реение проблемы:
Все дело в том что данный запрос открывает не явную транзакцию.
Используя механизм явных транзакций, всегда знаешь когда изменения будут применены. BeginTrans, CommitTrans, and RollbackTrans — в помощь |
|