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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - 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,238
По умолчанию

ну и правильно пишет!
прежде чем выполнять операции с датасетом, его нужно открыть
примерно так:
Код:
 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,238
По умолчанию

Цитата:
всё равно не выходит, почему то на другом компе стоит 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,515
По умолчанию

Цитата:
Сообщение от 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