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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2011, 20:20   #1
Belarusn
Пользователь
 
Аватар для Belarusn
 
Регистрация: 02.08.2011
Сообщений: 20
Смущение exception class EDatabaseError with message 'IBTable: Cannot perform this operation on a closed dataset' Process stopped

Всем привет, у меня такая вот проблемка, выскакивает ошибка
"IBTable1: Cannot perform this operation on a closed dataset"
и ещё парочка. Может кто посмотрит программку и скажет в чём проблема.

вот сама она http://zalil.ru/31537223
пароль 1234

что то подкорректировал, появилась эта ошибка
Project plat.exe raised exception class EDatabaseError with message
'IBTable: Cannot perform this operation on a closed dataset'.
Process stopped. Use Step or Run to continue.

Последний раз редактировалось Stilet; 12.08.2011 в 21:25.
Belarusn вне форума Ответить с цитированием
Старый 11.08.2011, 09:27   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну и правильно пишет!
прежде чем выполнять операции с датасетом, его нужно открыть
примерно так:
Код:
 Form1.IBTable1.Open;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.08.2011, 13:28   #3
Belarusn
Пользователь
 
Аватар для Belarusn
 
Регистрация: 02.08.2011
Сообщений: 20
По умолчанию

всё равно не выходит, почему то на другом компе стоит Delphi 7 и там работает всё норм. У меня Delphi 6 стоит. Может из за этого проблема? программа изначально делалась на Delphi 7
Belarusn вне форума Ответить с цитированием
Старый 11.08.2011, 13:51   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
всё равно не выходит, почему то на другом компе стоит Delphi 7 и там работает всё норм.
ну, начнём с начала..
Цитата:
Код:
object IBDatabase1: TIBDatabase
    DatabaseName = 'D:\ORG.GDB'
у Вас на диске D:\ в корне диска есть ORG.GDB ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.08.2011, 00:12   #5
Belarusn
Пользователь
 
Аватар для Belarusn
 
Регистрация: 02.08.2011
Сообщений: 20
По умолчанию

C:\Documents and Settings\Admin\Рабочий стол\programm\ORG.GDB

вот ссылка всё правильно лежит.
когда пишет ошибку, то в коде указываться эта строка
Form1.IBTable1.Fields[0].AsInteger:= StrToInt(Edit1.Text);
Belarusn вне форума Ответить с цитированием
Старый 12.08.2011, 02:03   #6
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

То бишь Вы пытаетесь записать текст в какое-то из полей таблицы, а запись то сама в этот момент у вас находится в состоянии вставки или редактирования?
То бишь, до Form1.IBTable1.Fields[0].AsInteger:= StrToInt(Edit1.Text);
есть ли у вас что-то типа Form1.IBTable1.Edit или Form1.IBTable1.Insert ?
astecenko вне форума Ответить с цитированием
Старый 12.08.2011, 12:58   #7
Belarusn
Пользователь
 
Аватар для Belarusn
 
Регистрация: 02.08.2011
Сообщений: 20
По умолчанию

Цитата:
Сообщение от astecenko Посмотреть сообщение
То бишь Вы пытаетесь записать текст в какое-то из полей таблицы, а запись то сама в этот момент у вас находится в состоянии вставки или редактирования?
То бишь, до Form1.IBTable1.Fields[0].AsInteger:= StrToInt(Edit1.Text);
есть ли у вас что-то типа Form1.IBTable1.Edit или Form1.IBTable1.Insert ?
Form1.IBTable1.Insert эта стоит. Да я пытаюсь вставить запись.
Belarusn вне форума Ответить с цитированием
Старый 12.08.2011, 13:49   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну, начнём с начала..

у Вас на диске D:\ в корне диска есть ORG.GDB ?
Цитата:
C:\Documents and Settings\Admin\Рабочий стол\programm\ORG.GDB

вот ссылка всё правильно лежит.
мне почему то кажется, что первое НЕ РАВНО второму.
Надо привести в соответствие значение
form1 IBDatabase1 DatabaseName
и реальное размещение БД (файла ORG.GDB).
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 12.08.2011, 16:03   #9
Belarusn
Пользователь
 
Аватар для Belarusn
 
Регистрация: 02.08.2011
Сообщений: 20
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
мне почему то кажется, что первое НЕ РАВНО второму.
Надо привести в соответствие значение
form1 IBDatabase1 DatabaseName
и реальное размещение БД (файла ORG.GDB).
да всё правильно в имени и пути к базе. У меня знакомый у которого опыта поболее тоже задумался)
Belarusn вне форума Ответить с цитированием
Старый 12.08.2011, 23:52   #10
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Посмотрел Ваш код.
Вообще-то наборы данных надо активировать перед использованием, то есть Вам надо сделать
Form1.IBTable1.Open или Form1.IBTable1.Active:=True
astecenko вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
'Invalid floating point operation'. process stopped. Use Step or Run to continue. manick Общие вопросы Delphi 12 26.11.2011 21:37
''mdMESSAGES: Cannot perform this operation on a closed dataset .'' Gucci Свободное общение 3 18.01.2011 16:51
ошибка raized exception class EListError with message 'List index out of bounds(1)'.Process stopped SGRaptor Софт 0 22.05.2010 19:12
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