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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2014, 21:25   #1
Raina97
Пользователь
 
Регистрация: 06.11.2014
Сообщений: 37
Радость Ошибка "cannot perform this operation on a closed dataset" при добавлении из Edit в БД

Выдает ошибку " cannot perform this operation on a closed dataset".
Имеются 2 Edit,из них нужно вывести данные в БД по нажатию кнопки.Вот код на кнопку:

Код:
if Form1.ADOTable1.Modified then
Form1.ADOTable1.FieldByName('Место').AsString:= Trim(Edit1.Text);
Form1.ADOTable1.FieldByName('Событие').AsString:= Trim(Edit2.Text);
Form1.ADOTable1.Post;
Если оставить один Edit и добавить DBEdit на 2-е поле,то данные из первого вносятся...
Я в Delphi только только начинаю,так что плохо разбираюсь,прошу помощи)Можете сказать что нужно исправить,или др.код для заноса из Edit в Бд)

Последний раз редактировалось Stilet; 18.11.2014 в 21:31.
Raina97 вне форума Ответить с цитированием
Старый 18.11.2014, 21:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Эта ошибка говорит что ты где-то закрываешь ADOTable1.
А вот где нужно искать по коду.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2014, 01:15   #3
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

У вас строка
Код:
Form1.ADOTable1.FieldByName('Событие').AsString:= Trim(Edit2.Text);
выполняется всегда...
нужно сделать блок begin...end для этой и предыдущей строки.
kropotkina-alice вне форума Ответить с цитированием
Старый 19.11.2014, 07:47   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

kropotkina-alice, точняк!

Raina97, попробуйте
Код:
if Form1.ADOTable1.Modified then 
  begin
    Form1.ADOTable1.FieldByName('Место').AsString:= Trim(Edit1.Text);
    Form1.ADOTable1.FieldByName('Событие').AsString:= Trim(Edit2.Text);
    Form1.ADOTable1.Post;
  end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.11.2014, 09:10   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Все так, это ошибка, но ADOTable1 все равно закрыто, ошибка ведь об этом говорит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.11.2014, 17:13   #6
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Все так, это ошибка, но ADOTable1 все равно закрыто, ошибка ведь об этом говорит
Свойство ADOTable1.Modified не станет True, если ТС не сделает ADOTable1.Open там, где ему это нужно по алгоритму, так что ошибка в приведенном Serge_Bliznykov куске кода исключена.
Возможно, что ТС вообще не открывает ADOTable1...
kropotkina-alice вне форума Ответить с цитированием
Старый 21.11.2014, 17:52   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А кто сказал, что оно True? Такая ошибка возможно может быть и в момент проверки значения этого свойства. ТС ведь не говорит на какой команде эта ошибка
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что за ошибка Cannot perform this operation on a closed dataset ? bakanaev Общие вопросы Delphi 3 20.03.2013 21:28
exception class EDatabaseError with message 'IBTable: Cannot perform this operation on a closed dataset' Process stopped Belarusn БД в Delphi 12 15.08.2011 19:56
''mdMESSAGES: Cannot perform this operation on a closed dataset .'' Gucci Свободное общение 3 18.01.2011 16:51
Delphi 7. Ошибка "ADODataSet1: Cannot perform this operation on a closed dataset" Vind Помощь студентам 6 20.04.2009 22:47
Сообщение об ошибке:Cannot perfom this operation on a closed dataset! Tanuska___:) БД в Delphi 1 04.08.2008 17:52