![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с IB из DLL [D5, D6, IB5.x, IB6.x]
Kinda © (2002-11-14 17:03:00)Всем привет. Помогите разобраться в таком вопросе. Я хочу работать с IB из DLL для этого в DLL объявляю функцию:
Function MyIbLinc:double; stdcall;
var
IBD1: TIBDatabase;
IBT1: TIBTransaction;
IBQ1: TIBQuery;
begin
Try
IBD1.DatabaseName:="MyBase.gdb";
IBD1.DefaultTransaction:=IBT1;
IBD1.LoginPrompt:=False;
IBD1.Params.Add("USER_NAME=KINDA");
IBD1.Params.Add("PASSWORD=*****");
IBT1.DefaultDatabase:=IBD1;
IBQ1.Database:=IBD1;
IBQ1.Transaction:=IBT1;
IBQ1.SQL.Add("SELECT * FROM TP918");
IBD1.Connected:=True;
IBT1.Active:=True;
IBQ1.Open;
Result:=IBQ1.FieldByName("F12").AsFloat;
однако это не работает, подскажите выход.
Alexandr (2002-11-15 07:35:00) [1]не суй меня, господи туда, где меня сроду не спрашивали.
Бегом читать литературу, а пом уже за компьютер.
asmith (2002-11-14 18:07:00) [2]Напиши программку-запускалку на Delphi и просто продебажь код библиотеки - найдешь ошибку.
Kinda (2002-11-14 17:54:00) [3]А что
IBD1:=TIBDatabase.Create(nil);
это не создание объекта?
Prooksius (2002-11-14 17:37:00) [4]В твоей функции должны создаваться объекты IBD1, IBT1, IBQ1 (<ClassName>.Create(<parent>)), указываться их свойства, работать с ними, а потом удаляться (<object>.Free). Почитай, как работать с объектами.
Как это ты, не создав объект, обращаешься к его свойствам?
Kinda (2002-11-14 17:34:00) [5]Делфи при компиляции пишет че-то про инициализацию
IBD1,IBT1,IBQ1. При добавлении в начало программы
IBD1:=TIBDatabase.Create(nil);
IBT1:=TIBTransaction.Create(nil);
IBQ1:=TIBQuery.Create(nil);
сообщения исчезают все компилируется но при попытке использовать
функцию в VBA проекте пишет что произошла ошибка обращения к памяти по адресу... и т.д.
SaS13 (2002-11-14 17:18:00) [6]а смысл?
а что пишет?