Bonjour,
J'essaie de créer une DLL qui accède à une DB MS-SQL via ADO.
La commande AdoCnx := TAdoConnection.Create(Composant); me renvoie l'erreur suivante :
Classe d'exception : EOloSysError.
Message : CoInitialize n'a pas été appelé
C'est surement une erreur de débutant, mais ça fait 2 jours que je bloque la-dessus...
Si une bonne âme pouvait m'aider... Merci !
Voici le code complet de ma DLL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 library AdoDll; uses ShareMem, SysUtils, Classes, ADODB, ComObj; {$R *.res} Type TComposants = Class(TComponent); Var Composant : TComposants; AdoCnx : TAdoConnection; Function CnxAvail:Boolean; StdCall ; //---------------------------------------------------------------------------- // Retourne VRAI si la connexion est possible //---------------------------------------------------------------------------- Var Resultat : Boolean; CnxStr : String; Begin // Cette ligne me renvoie l'erreur suivante : // Classe d'exception EOloSysError. Message : CoInitialize n'a pas été appelé AdoCnx := TAdoConnection.Create(Composant); CnxStr := 'Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;'+ 'Initial Catalog=MyDb;Data Source=MySrv;Password=MyPassword'; AdoCnx.LoginPrompt := False; AdoCnx.CursorLocation := clUseClient; Try AdoCnx.Connected := True; Finally Resultat := AdoCnx.Connected; End; CnxAvail := Resultat; End; //---------------------------------------------------------------------------- Exports CnxAvail; //---------------------------------------------------------------------------- begin end. //----------------------------------------------------------------------------
Partager