[D10] DBExpress de Delphi 7 à Delphi 10
Bonjour,
J'essaie de convertir une application Delphi7 sous Delphi 10.4.2.
La version 7 fonctionne avec dbexpress. Je souhaiterais, dans un premier temps, continuer à fonctionner de la même façcon avec Delphi 10.
Je verrais plus tard, pour passer sous firedac.
J'utilise les composants suivants :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| type
TForm1 = class(TForm)
conn1: TSQLConnection;
qry1: TSQLQuery;
cds1: TClientDataSet;
dsp1: TDataSetProvider;
ds1: TDataSource;
grid1: TDBGrid;
SQLConnection1: TSQLConnection;
procedure FormCreate(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end; |
Je les initialise ainsi :
Code:
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
| procedure TForm1.FormCreate(Sender: TObject);
var
str: string;
begin
grid1.DataSource := ds1;
ds1.DataSet := cds1;
cds1.ProviderName := dsp1.Name;
dsp1.DataSet := qry1;
qry1.SQL.Text := 'SELECT * FROM dbo.TSERVICE;';
qry1.SQLConnection := conn1;
conn1.LoginPrompt := False;
conn1.ConnectionName := 'MSSQLConnection';
conn1.DriverName := 'MSSQL';
conn1.GetDriverFunc := 'getSQLDriverMSSQL';
conn1.LibraryName := 'dbexpmss.dll'; // 'dbxmss.dll' pour d10
conn1.VendorLib := 'oledb';
conn1.Params.Clear;
conn1.Params.Values['DriverName'] := 'MSSQL';
conn1.Params.Values['HostName'] := '.';
conn1.Params.Values['Database'] := 'ma_table';
conn1.Params.Values['User_Name'] := 'sa';
conn1.Params.Values['Password'] := 'password';
try
conn1.Open;
cds1.Open;
str := 'ok';
except
on e: Exception do
str := e.Message;
end;
ShowMessage(str);
end; |
Ce code fonctionne parfaitement sous Delphi 7.
Sous Delphi 10.4.2, j'obtiens l'erreur suivante : "Erreur DBX: Le pilote n'a pas été correctement initialisé. La bibliothèque client est manquante, n'est pas installée correctement, sa version est incorrecte, ou le pilote n'est pas dans le chemin système."
J'ai placé dans le dossier de l'exe le fichier dbxmss.dll que j'ai récupéré dans le dossier "C:\Program Files (x86)\Embarcadero\Studio\21.0\bin".
Quelqu'un aurait-il une idée de ce qui ne fonctionne pas ?