![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
adoQuery проблема с update данных [D7, MySQL]
alienka © (2003-12-08 18:08:00)
Суть проблемы: при помощи adoQuery делается update данных в таблице.
qtest.sql.clear;
qtest.sql.text:="update users set fio="" + ccc+ "" where id_user=""" + ncont + """";
qtest.ExecSQL;
Все выполняется без ошибок. Но если попробовать после этого в Grid просмотреть данные, передвинуть курсор на другую запись конечно же ругается на изменение и несоответствие данных.
Добавила строчки для обновления:
adoqueryUsers.close;
adoqueryUsers.open;
На моменте открытия запроса - ругается "access violation".
Что делаю не так?
По моему похожий вопрос тут уже задавался, но в архиве его найти не смогла.
Silver Alex (2003-12-08 23:50:00) [1]
> qtest.sql.text:="update users set fio="" + ccc+ "" where
> id_user=""" + ncont + """";
лучше написать так
qtest.sql.clear;
qtest.sql.text:="update users set fio=:fio where id_user=:id_user;
qtest.Parameters.ParamByName("fio").AsString:=ccc;
qtest.Parameters.ParamByName("id_user").AsString:=ncont;
qtest.ExecSQL;
а по поводу "access violation" надо бы больше узнать как там все у тебя делается, а еще лучше код глянуть
alienka (2003-12-08 23:48:00) [2]
Прочитала на королевстве, что после добавления данных нужно обновить источник - ApplyUpdate, но это только для TQuery. Есть что-нибудь похожее для ADOQuery? Думаю, это ответ на мой вопрос с update!
alienka (2003-12-08 18:55:00) [3]
Попробовала.
Иногда появляется та же самая ошибка, иногда - нет ошибок вообще.
Vick (2003-12-08 18:14:00) [4]
попробуй делать
adoqueryUsers.close;
перед qtest.ExecSQL;