C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
не могу обновить данные и выполнить запрос
** Dimon.Ru
  Отправлено: 29.08.2004, 18:08


Не зарегистрирован







У меня 2 вопроса:
1. Подскажите пожалуйста, как выполнить динамически создаваемый запрос (использую компонент TQuery).
в принципе запросы выполняются, но если присутствуют операторы DELETE или INSERT, то возникают какие-то ошибки.
как это иправить???
может использовать другой компонент??

2. есть TQuery, есть DBGrid, есть TDBNavigator. как надо их правильно связать, чтобы можно было править данные в DBGrid и при нажатии на SAVE в TDBNavigator данные сохранялись на диск?

заранее всем спасибо.

PS: Я программирую на Builder5
AVC
Отправлено: 30.08.2004, 08:23


Ветеран

Группа: Модератор
Сообщений: 1583



1.Например так
Query->Text = "Update aaa Set fff = 123 Where ccc = 56";
Query->ExecSQL();
Ошибки у вас скорее всего типа not opened cursor или как то так и связаны с командой Query->Active = true; Ни чего страшного. Можно брать в try catch с отсеиванием этих ошибок либо использовать метод ExecSQL — дело вкуса.

2. На форме TQuery *qry, TDataSet *dsr, TDBGrid *grd, TDBNavigator *nav;
dsr->DataSet = qry;
grd->DataSource = dsr;
nav->DataSource = dsr;

Простой запрос (из одной таблицы, нет кеша изменений)
qry->RequestLive = true;

Запрос из нескольких таблиц без кеша
На форме TUpdateSQL *updqry;
qry->RequestLive = true;
qry->UpdateObject = updqry;

Отредактировано AVC — 30/08/2004, 08:25

Вернуться в Работа с базами данных в C++Builder