![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при чтении данных [D5, Paradox]
_alex_niv_ © (2005-08-23 12:11:00)Добрый день!
Народ помогите разобраться в чем дело.
У меня в dll-ке находиться функция считывающая из базы данные по запросу, она нормально работала около года, пока вчера на одном компе не стала выдавать такую ошибку:
“Exception EDBEnginError in module main.dll at 0006578E”.
причем на всех остальных компах она работает нормально, ошибка вылетает именно на этом.
Текст функции:
function ReadValPar(ANameObject : PChar;
ATypesSize : Word
): Integer; stdcall;
var
tblMainTable: TQuery;
sqlString : String;
begin
Result := -1;
sqlString:= 'select ValObject FROM TablesSizeForm where TypeSize = :TypeSize and NameObject = :NameObject';
tblMainTable := TQuery.Create(nil);
try
with tblMainTable do
begin
DatabaseName := StrPas(GetsExePathPc) + 'SizeBds';
Close;
SQL.Clear;
SQL.Add (sqlString);
Params[0].DataType:= ftFloat;
Params[1].DataType:= ftString;
Prepare;
Params[0].Value := ATypesSize;
Params[1].Value := StrPas(ANameObject);
Open;
if Fields [0].AsString <> '' then
begin
Result:= Fields [0].AsInteger;
end
else
Result:= -2;
Close;
end;
finally
tblMainTable.Free;
end;
end;
_alex_niv_ (2005-08-23 17:37:00) [1]> у тебя же все перед глазами, неужели нельзя выделить на какой > стадии глюк?
В том то и дело не могу найти где ошибка
От куда она берется
И почему уже год работало на нескольких машинах - ее ни разу не было, а тут вдруг появилась.
реализация функции GetsExePathPc:
function GetsExePathPc: PChar;
begin
Result:= PChar(ExtractFilePath(paramstr(0)));
end;
Я сделал переприсвоение через строковую переменную - ошибка перестала появляться, но где гарантия что завтра она снова не появится.
sniknik (2005-08-23 17:08:00) [2]> С чем это может быть связано?
с реализацией/ошибками в функции GetsExePathPc ???
с происками империалистов которые в путь в конец три символа бакспейса внесли ???
у тебя же все перед глазами, неужели нельзя выделить на какой стадии глюк?
_alex_niv_ (2005-08-23 16:47:00) [3]Текст ошибки:
Invalid directory ...
В свойстве
DatabaseName := StrPas(GetsExePathPc) + 'SizeBds';
Перед 'SizeBds' затираются 3 буквы пути
С чем это может быть связано?
Desdechado (2005-08-23 15:40:00) [4]и текст ЭТОЙ ошибки, под отладчиком при Open
_alex_niv_ (2005-08-23 14:34:00) [5]> sniknik © (23.08.05 14:26) [3]
> повод спросить себя "а там ли ставлю?".
Дело в том что BDE устанавливается вместе с программой InstallShield-ом
мы с этой прогой работаем постоянно и уже устаналивали десятки раз на разные машины, а вот такая ошибка вылетела первый раз
> пройдись трассировщиком внутри dll, раз уж дельфи поставил
что ты понимаешь под трассировщиком - стандартный Делфийский отладчик
пробовал - ошибка вылетает при попытке выполнения скрипта методом
Open;
sniknik (2005-08-23 14:26:00) [6]> то ошибка не появляется???
повод спросить себя "а там ли ставлю?".
пройдись трассировщиком внутри dll, раз уж дельфи поставил.
_alex_niv_ (2005-08-23 14:23:00) [7]БДЕ я уже пробовал переустанавливать несколько раз.
Последний раз установил туда полностью Delphi
И еще
Когда я ставлю в мою функцию вывод сообщения
Showmessage
то ошибка не появляется???
Desdechado (2005-08-23 13:53:00) [8]1. что сделали с тем компом?
2. ошибка БДЕ-шная, может, его снесли?
3. протрассируй именно на нем