![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с базой MS SQL из DLL [D7, MSSQL]
Ярослав © (2005-06-09 09:34:00)У кого нибудь есть пример работы с базой MS SQL из DLL через ADO, меня интересует процесс соединения с БД.
Ega23 (2005-06-09 11:16:00) [1]Так, нашёл. Писалось на Delphi 2005.
Это DLL
library mylib;
uses
SysUtils,
Classes,
Dialogs ,ADODB
;
type PadoConnection=^TadoConnection;
{$R *.res}
Function MyFunc(aStr:shortstring; aAdoConnectionPtr:PadoConnection):word; StdCall;
var Aq:TadoQuery;
ss:string;
begin
Aq:=nil;
try
Aq:=TadoQuery.Create(nil);
Aq.Connection:=aAdoConnectionPtr^;
Aq.SQL.Text:=aStr;
Aq.Open;
ss:=Aq.Fields[0].AsString;
showmessage(ss);
result:=0;
finally
Aq.Free;aq:=nil;
end;
end;
exports
MyFunc;
begin
end.
Это вызов из exe:
function MyFunc(aStr:shortstring;aConnection:tadoconnection):boolean; StdCall; External 'mylib.dll ';
procedure TForm2.bDllClick(Sender: TObject);
begin
MyFunc(ADOQuery1.SQL.Text,@ADOConnection1);
end;
Ярослав (2005-06-09 11:02:00) [2]> Anatoly Podgoretsky © (09.06.05 10:28) [7]
Не религия, а то, что свой ADOConnection с той же строкой подключения, вызовет еще одно соединение к серверу, а каждое соединение занимает новые ресурсы на сервере, или я не прав? В общем, не хотелось бы создавать новые соединения.
Так получается нельзя передать в DLL ADOConnection приложения?
linesoft (2005-06-09 10:36:00) [3]Ярослав (09.06.05 10:18) [3]
Я имел в виду отдельный коннект, а раз на то пошло, см. [6].
Если отдельно, брось на форму компонент, или можно добавить модуль.
В вызываемой ф-ии все и делай. Я ж не знаю, что надо в этой длл.
Anatoly Podgoretsky (2005-06-09 10:28:00) [4]Ярослав (09.06.05 10:18) [3]
В ДЛЛ свой менеджер памяти м своя RTTI
А религия не позволяет использовать свой ADOConnection с той же самой Connection String
Ega23 (2005-06-09 10:27:00) [5]И что?
И то. Так и спрашивай в следующий раз: "Как АДОКоннекшн передать в DLL в качестве параметра."
Там как-то с указателем на класс было связано... Сейчас поищщу.
stone (2005-06-09 10:26:00) [6]
> Меня интересует можно ли из DLL подцепится к ADO Connection
> главного приложения
Можно.
Тучудище (2005-06-09 10:21:00) [7]ADOConnection должен быть доступен и видим для компонентов AdoXXXXXX, вот и подумай что да как...
Ярослав (2005-06-09 10:18:00) [8]> Ega23 © (09.06.05 09:38) [1]
И что?
> linesoft © (09.06.05 09:45) [2]
А где ее прописать?
Меня интересует можно ли из DLL подцепится к ADO Connection главного приложения или нужно в DLL свое соединение создавать?
linesoft (2005-06-09 09:45:00) [9]>из DLL
По-моему, нет никакой разницы между dll & exe.
Кроме только того, где в коде прописать инициализацию и коннект.
Ega23 (2005-06-09 09:38:00) [10]Через ADOConnection.