Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2014, 22:02   #1
Вася111111
Новичок
Джуниор
 
Регистрация: 09.06.2014
Сообщений: 1
По умолчанию Ошибка при обновлении ADOQuery

При добавлении записей в таблицы выскакивает ошибка.Как я понял нужно обновлять три ADOquery , но когда пытаюсь обновить даже 2 выскакивает ошибка

Цитата:
ADOQuery2.Cannot perform this operation on a closed dataset
Если сделать всего 1 рефреш для любой таблицы то все работает НО. Изначально проблема в том что есть 3 таблицы . Во 2й и3 есть поля из ADOQuery4 Которые я добавляю по коду ниже. Но в во второй таблице тобиж ADOQuery2 эти поля не отображаются. Хотя в третьей все работает. В чем я ошибся?
Код:
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.ADOQuery2.Append;
Form1.ADOQuery2.Fields[5].AsString:=Edit4.Text;
Form1.ADOQuery2.Fields[6].AsDateTime:= DateTimePicker1.DateTime;
Form1.ADOQuery2.Fields[7].AsString:=Edit6.Text;
Form1.ADOQuery2.Fields[8].AsString:=Edit7.Text;
Form1.ADOQuery2.Fields[9].AsDateTime:= DateTimePicker2.DateTime;
Form1.ADOQuery2.Fields[10].AsString:=Edit9.Text;
Form1.ADOQuery2.Fields[11].AsString:=Edit10.Text;
Form1.ADOQuery3.Append;
Form1.ADOQuery3.Fields[5].AsDateTime:= DateTimePicker3.DateTime;
Form1.ADOQuery3.Fields[6].AsString:=Edit5.Text;
Form1.ADOQuery3.Fields[7].AsString:=Edit8.Text;
Form1.ADOQuery3.Fields[8].AsString:=Edit11.Text;;
Form1.ADOQuery3.Fields[9].AsString:=Edit12.Text;
Form1.ADOQuery3.Fields[10].AsString:=Edit13.Text;
Form1.ADOQuery3.Fields[11].AsString:=Edit14.Text;
Form1.ADOQuery4.Append;
Form1.ADOQuery4.Fields[1].AsString:=Edit1.Text;
Form1.ADOQuery4.Fields[2].AsString:=Edit2.Text;
Form1.ADOQuery4.Fields[3].AsString:=Edit3.Text;
Form1.ADOQuery4.Fields[4].AsString:=Edit15.Text;
Form1.ADOQuery4.Fields[5].AsDateTime:= DateTimePicker4.DateTime;
Form1.ADOQuery4.Fields[6].AsString:=Edit16.Text;
Form1.ADOQuery4.Post;
Form1.ADOQuery2.Post;
Form1.ADOQuery3.Post;
Form1.ADOQuery4.Refresh;
Form2.Close;
Form1.TabSheet4.show;
end;

Последний раз редактировалось Stilet; 12.06.2014 в 09:38.
Вася111111 вне форума Ответить с цитированием
Старый 12.06.2014, 02:37   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
В чем я ошибся?
Об этом Вам ADO пишет открытым текстом. ADOQuery2 у Вас закрыт (свойство Active=false).
Проверяйте настройки компонентов. А, если открытие и закрытие осуществляется программно, то и соответствующие участки кода.
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при обновлении записей в dbgrid ST@LKER Общие вопросы Delphi 2 05.11.2013 22:01
Ошибка Forbidden при обновлении записи в БД Alex1991 PHP 1 09.06.2013 16:26
ошибка при обновлении Indy в Delphi XE3 bakanaev Общие вопросы Delphi 5 14.01.2013 19:07
Ошибка 1004 при обновлении данных из Access (VBA EXCEL) Kycaka Microsoft Office Excel 7 07.12.2012 10:30
Ошибка при обновлении связей с другой книгой Quatro_Drive Microsoft Office Excel 3 12.08.2009 16:36