Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
ВнизD7 и IB6.5 в DLL Найти похожие ветки
← →
AlexandrPV © (2004-07-22 15:09) [0]Кто ме объяснит проблему. У меня есть основная программа в которой находится подключение к базе, а в DLL написаны формы и запросы, так вот когда я использую одновремено две DLL, то происходит ошибка, что-то вроде переобъявления курсора.
← →
Desdechado © (2004-07-22 19:04) [1]а ты не хочешь хотя бы показать, как ты вызываешь DLL, что передаешь в нее
и расскажи, что ты понимаешь под курсором, и какая ошибка - полный текст, а не твои догадки о ней
← →
AlexandrPV © (2004-07-23 12:15) [2]Ошибка "Dynamic SQL Error|SQL error code = -502|Declared cursor alredy exists."
Смысл в том, что если грузить библиотеки не вместе, то ошибки нет.
В главной програме я подключаю библиотеку следующим образом:
Инициализация:
HandleWares:=LoadLibrary("WFReestrWares.dll");
if HandleWares<>0 then
begin
@FGet:=GetProcAddress(HandleWares,"GetInterface");
Wares:=FGet(Application);
if Wares<>nil then Wares.Base:=IBDatabase1;
end;
Показ формы:
Wares.Show;
Так же и другая форма вызывается.
В библиотеке:
function GetInterface(App:TApplication):TFormWares;
begin
if not Assigned(DLLApp) then
begin
DLLApp:=Application;
end;
Application:=App;
Result:=TFormWares.Create(App);
end;
procedure TFormWares.FormShow(Sender: TObject);
begin
IBQuery1:=TIBQuery.Create(Self);
IBQuery1.SQL.Append("select * from wares");
IBQuery1.Database:=FBase;
Trans:=TIBTransaction.Create(Self);
Trans.AddDatabase(FBase);
IBQuery1.Transaction:=Trans;
Trans.StartTransaction;
IBQuery1.Open;
end;
procedure TFormScale.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Trans.Active then Trans.Commit;
IBQuery1.Destroy;
Trans.Destroy;
end;
procedure MyDLLProc(Reason:integer);
begin
if Reason = DLL_PROCESS_DETACH then
if Assigned(DLLApp) then Application:=DLLApp;
end;
begin
DLLProc:=@MyDLLProc;
end.
Вот вобщем и все.
← →
Desdechado © (2004-07-24 20:29) [3]1. Не вижу объявления переменных IBQuery1 и Trans. Они локальные, глобальные или свойства формы?
2. Я так и не понял - формы в ОДНОЙ ДЛЛ или в разных?
3. В другой форме SQL-текст такой же?
4. Destroy вызывать напрямую - дурной тон, читай доку.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.044 c