Текущий архив: 2005.10.09;
Скачать: CL | DM;
Вниз
Ошибка при чтении данных Найти похожие ветки
← →
_alex_niv_ © (2005-08-23 12:11) [0]Добрый день!
Народ помогите разобраться в чем дело.
У меня в 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;
← →
Desdechado © (2005-08-23 13:53) [1]1. что сделали с тем компом?
2. ошибка БДЕ-шная, может, его снесли?
3. протрассируй именно на нем
← →
_alex_niv_ © (2005-08-23 14:23) [2]БДЕ я уже пробовал переустанавливать несколько раз.
Последний раз установил туда полностью Delphi
И еще
Когда я ставлю в мою функцию вывод сообщения
Showmessage
то ошибка не появляется???
← →
sniknik © (2005-08-23 14:26) [3]> то ошибка не появляется???
повод спросить себя "а там ли ставлю?".
пройдись трассировщиком внутри dll, раз уж дельфи поставил.
← →
_alex_niv_ © (2005-08-23 14:34) [4]> sniknik © (23.08.05 14:26) [3]
> повод спросить себя "а там ли ставлю?".
Дело в том что BDE устанавливается вместе с программой InstallShield-ом
мы с этой прогой работаем постоянно и уже устаналивали десятки раз на разные машины, а вот такая ошибка вылетела первый раз
> пройдись трассировщиком внутри dll, раз уж дельфи поставил
что ты понимаешь под трассировщиком - стандартный Делфийский отладчик
пробовал - ошибка вылетает при попытке выполнения скрипта методом
Open;
← →
Desdechado © (2005-08-23 15:40) [5]и текст ЭТОЙ ошибки, под отладчиком при Open
← →
_alex_niv_ © (2005-08-23 16:47) [6]Текст ошибки:
Invalid directory ...
В свойстве
DatabaseName := StrPas(GetsExePathPc) + "SizeBds";
Перед "SizeBds" затираются 3 буквы пути
С чем это может быть связано?
← →
sniknik © (2005-08-23 17:08) [7]> С чем это может быть связано?
с реализацией/ошибками в функции GetsExePathPc ???
с происками империалистов которые в путь в конец три символа бакспейса внесли ???
у тебя же все перед глазами, неужели нельзя выделить на какой стадии глюк?
← →
_alex_niv_ © (2005-08-23 17:37) [8]> у тебя же все перед глазами, неужели нельзя выделить на какой > стадии глюк?
В том то и дело не могу найти где ошибка
От куда она берется
И почему уже год работало на нескольких машинах - ее ни разу не было, а тут вдруг появилась.
реализация функции GetsExePathPc:
function GetsExePathPc: PChar;
begin
Result:= PChar(ExtractFilePath(paramstr(0)));
end;
Я сделал переприсвоение через строковую переменную - ошибка перестала появляться, но где гарантия что завтра она снова не появится.
Страницы: 1 вся ветка
Текущий архив: 2005.10.09;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.012 c