Вниз
Скачать: CL | DM;

Работа с базой MS SQL из DLL   Найти похожие ветки 

← →
Ярослав   (2005-06-09 09:34) [0]

У кого нибудь есть пример работы с базой MS SQL из DLL через ADO, меня интересует процесс соединения с БД.


← →
Ega23 ©   (2005-06-09 09:38) [1]

Через ADOConnection.


← →
linesoft ©   (2005-06-09 09:45) [2]

>из DLL
По-моему, нет никакой разницы между dll & exe.
Кроме только того, где в коде прописать инициализацию и коннект.


← →
Ярослав   (2005-06-09 10:18) [3]

> Ega23 ©   (09.06.05 09:38) [1]
И что?

> linesoft ©   (09.06.05 09:45) [2]
А где ее прописать?

Меня интересует можно ли из DLL подцепится к ADO Connection главного приложения или нужно в DLL свое соединение создавать?


← →
Тучудище   (2005-06-09 10:21) [4]

ADOConnection должен быть доступен и видим для компонентов AdoXXXXXX, вот и подумай что да как...


← →
stone ©   (2005-06-09 10:26) [5]


> Меня интересует можно ли из DLL подцепится к ADO Connection
> главного приложения

Можно.


← →
Ega23 ©   (2005-06-09 10:27) [6]

И что?

И то. Так и спрашивай в следующий раз: "Как АДОКоннекшн передать в DLL в качестве параметра."

Там как-то с указателем на класс было связано... Сейчас поищщу.


← →
Anatoly Podgoretsky ©   (2005-06-09 10:28) [7]

Ярослав   (09.06.05 10:18) [3]
В ДЛЛ свой менеджер памяти м своя RTTI
А религия не позволяет использовать свой ADOConnection с той же самой Connection String


← →
linesoft ©   (2005-06-09 10:36) [8]

Ярослав   (09.06.05 10:18) [3]
Я имел в виду отдельный коннект, а раз на то пошло, см. [6].
Если отдельно, брось на форму компонент, или можно добавить модуль.
В вызываемой ф-ии все и делай. Я ж не знаю, что надо в этой длл.


← →
Ярослав   (2005-06-09 11:02) [9]

> Anatoly Podgoretsky ©   (09.06.05 10:28) [7]
Не религия, а то, что свой ADOConnection с той же строкой подключения, вызовет еще одно соединение к серверу, а каждое соединение занимает новые ресурсы на сервере, или я не прав? В общем, не хотелось бы создавать новые соединения.
Так получается нельзя передать в DLL ADOConnection приложения?


← →
Ega23 ©   (2005-06-09 11:16) [10]

Так, нашёл. Писалось на 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;




Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: -0.973 c
3-1117705175
Koala
2005-06-02 13:39
2005.07.18
Подскажите тип


3-1114412379
Суслик
2005-04-25 10:59
2005.07.18
ms sql enterpise manager


11-1103222043
DmiSb
2004-12-16 21:34
2005.07.18
ImageList с другой формы


9-1112693249
MaxAir
2005-04-05 13:27
2005.07.18
Помогите запустить паровозик по синусоиде :)


14-1119343954
Eugene74
2005-06-21 12:52
2005.07.18
Задача о двух цилиндрах




   Наверх