![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при подключении в Paradox [D5, Paradox]
DDDD © (2003-02-04 13:53:00)Здрасте мастера!
Ситуация такая. Программа работает базой на Paradoxсе. Запускается нормально вреде бы открывает таблицы (table1.Open) и проверяется на открытие если закрыта программа заканчивает работу. Никаких закрытий не происходит но при обращении к таблице выскакивает ошибка типа "Невозможно применить операцию к закрытой таблице". В чем дело кто знает. пробывал переставлять BDE не помогает.
СПАСИБО!!!
MsGuns (2003-02-04 17:01:00) [1]Странный способ открытия таблиц... Типа открыть все что есть или любую какя попадется (стрелять во все что движется) :)))
DDDD (2003-02-04 16:54:00) [2]Всем спасибо!
Нашлась ошибка. Недавно как вчера переименовал одну таблицу с переносом данных через Database Desktop и таблица эта при открытии стояла первой при этом сама не открывалась и другим не давала. Незнаю что за глюк но переименовав обратно все заработало.
Еще раз Всем спасибо!
NDeu (2003-02-04 16:44:00) [3]
TblZajvkaGod.Open;
if not TblZajvkaGod.Active then i:=TblZajvkaGod.TableName else i:="";
if i <> "" then
begin
MessageDlg("Ошибка открытия базы данных +i,mtError,[mbOk],0);
Exit;
end;
Anatoly Podgoretsky (2003-02-04 16:28:00) [4]Догадаться где?
DDDD (2003-02-04 16:24:00) [5]Еще раз на компьютере где компилируется программа все работает нормально!!! Ошибка возникает когда процедура открытия таблиц уже давно окончена и начинаешь использовать ее (таблицу) уже как открытую. а по поводу блока try except end так он есть.
Anatoly Podgoretsky (2003-02-04 15:48:00) [6]Если таблца не откроется, то вторая строка все равно не будет выполнена по причине исключения. Надо такие операции включать в блок try except end. Сообщение об ошибке все равно идет из другого места, а не из этого.
TblZajvkaGod.Open;
if not TblZajvkaGod.Active then i:=TblZajvkaGod.TableName;
Пройдись отладчиком начиная с первой строчки
DDDD (2003-02-04 15:28:00) [7]Обязательно. стоит алиес на базу данных. сама база не в сети поэтому сетевые замароки с LocalShared тут не при чем. Сама таблица изначально закрыта. но даже если бы была открыта TblZajvkaGod.Open должно ее передернуть и соответственно отловится состояние по if not TblZajvkaGod.Active then. я вот думаю что может быть глюк либо в самом BDE (там разные версии или еще что нибудь не знаю) или в таблицах сейчас проверяю.!!!
Но если есть возможность пожалуйстта помогите!!!
AlexSerp (2003-02-04 15:11:00) [8]DDDD, пока писал, твой новый ответ пришел.
А БДЕ на клиенте нестроен?
Саня
AlexSerp (2003-02-04 15:05:00) [9]Знаешь, похоже таблица открыта у тебя в проекте. Т.е. при запуске программы она у тебя уже открыта. Т.е. в свойствах у тебя Active :=True;
Саня
DDDD (2003-02-04 15:01:00) [10]Ну какая ошибка в другом месте. Здесь явное открытие таблицы. Далее с помощью DataSet показываются данные. dataSet настроен (на машинке где компилируется код все работает нормально), так вот в нем нет данных даже названий полей. Ничего нет как будто DataSet не настроен. Вот!!!
Anatoly Podgoretsky (2003-02-04 14:55:00) [11]Ну ошибка может быть в любом месте, а не только здесь.
DDDD (2003-02-04 14:45:00) [12]Дело в том что на машинке где компилируется код все работает нормально, а вот на компьютере юзера возникает такая проблема.
Код проверки:
TblZajvkaGod.Open;
if not TblZajvkaGod.Active then i:=TblZajvkaGod.TableName;
if i <> "" then
begin
MessageDlg("Ошибка открытия базы данных +i,mtError,[mbOk],0);
Exit;
end;
MsGuns (2003-02-04 14:21:00) [13]В отладчике св-во Active = true ?
AlexSerp (2003-02-04 14:09:00) [14]Нельзя ли кусочек кода показать?
Саня