Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.18;
Скачать: 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 вся ветка

Текущий архив: 2005.07.18;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.037 c
1-1120407509
SergP
2005-07-03 20:18
2005.07.18
Проблемы с TThread.


3-1118208152
DimonS
2005-06-08 09:22
2005.07.18
Подскажите, почему не происходит очистка таблицы?


1-1119854690
$HiC0
2005-06-27 10:44
2005.07.18
Wizard-like application


1-1120393211
kyro
2005-07-03 16:20
2005.07.18
События на клавиатуру


1-1119854437
AlexG
2005-06-27 10:40
2005.07.18
Как создать экземпляр TOleStream?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский