Bonjour,
J'ai travaillé sur l'appel d'une dll Delphi en C#.
J'arrive à faire quelques manipulations (afficher un texte, écrire dans un fichier, ....).
Mon souci est le suivant :
Je n'arrive pas à ouvrir une base de données depuis la dll.
J'appelle la même dll depuis un exe Delphi ca marche....
Voici l'appel en C#
Et voilà le code en Delphi 7
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [DllImport("YMsSqlDbUpdate.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] static extern int yConnectedDatabase(); static public void MainUpdate() { yConnectedDatabase(); }
Voila, merci pour votre aide.
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
42 procedure yConnectedDatabase; StdCall; begin fMsSqlDbUpdate.yConnectedByDLL; end; procedure TfMsSqlDbUpdate.yConnectedByDLL; var cnx : TYSqlConnection; begin try cnx := TYSqlConnection.Create(nil); cnx.Connected := false; cnx.ConnectionName := 'SQLServerConnection'; cnx.DriverName := 'SQLServer'; cnx.GetDriverFunc := 'getSQLDriverSQLServer'; cnx.KeepConnection := true; cnx.LoginPrompt := false; cnx.LibraryName := 'dbexpsda.dll'; cnx.VendorLib := 'sqloledb.dll'; cnx.Params.Values['DriverName'] := 'SQLServer'; cnx.Params.Values['HostName'] := 'MyServer'; cnx.Params.Values['DataBase'] := 'MyBDD'; cnx.Params.Values['User_Name'] := 'USER'; cnx.Params.Values['Password'] := '1'; cnx.Params.Values['BlobSize'] := '-1'; cnx.Params.Values['LongStrings'] := 'True'; cnx.Params.Values['EnableBCD'] := 'False'; cnx.Params.Values['FetchAll'] := 'True'; try cnx.Connected := true; except on e:Exception do DebugSource('c:\tltl.txt', e.Message); end; finally DetruitObjet(cnx); end; end;
Partager