Bonjour à tous,

Voila, je souhaiterais savoir comment passer PAR CODE, le nom de la base de données à utiliser à un SQLConnection.

Merci d'avance

Bon en fait, j'ai en partie trouvé, mais il subsiste un probleme.
Pk ce code ne marche-t-il pas?
En effet, si je donne un nom dans l'edit, et que je clique successivement sur les 3 boutons, je recois une erreur disant que la table RELEVE existe deja...

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, JvComponentBase, JvUIB, WideStrings, FMTBcd, DB, SqlExpr,
  DBClient, Grids, DBGrids, Provider;
 
type
  TForm1 = class(TForm)
    JvUIBDataBase1: TJvUIBDataBase;
    Button1: TButton;
    JvUIBTransaction1: TJvUIBTransaction;
    Button2: TButton;
    Edit1: TEdit;
    DBGrid1: TDBGrid;
    Button3: TButton;
    SQLConnection1: TSQLConnection;
    SQLQuery1: TSQLQuery;
    DataSetProvider1: TDataSetProvider;
    ClientDataSet1: TClientDataSet;
    DataSource1: TDataSource;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;
 
var
  Form1: TForm1;
  dbname : string;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  with JvUIBDatabase1 do
        begin
          DatabaseName:= dbname;
          SqlDialect:= 3;
 
          Params.Add('USER "SYSDBA"');
          Params.Add('PASSWORD "masterkey"');
          Params.Add('PAGE_SIZE 4096');
 
          CreateDatabase;
        end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  with SqlQuery1 do
        begin
          Close;
 
          with Sql do
          begin
            Clear;
            Add('CREATE TABLE RELEVE');
            Add('  ('
                +'    Pk_Rel INTEGER NOT NULL,');
            Add('     Jour SMALLINT,');
            Add('     Mois SMALLINT,');
            Add('     heure SMALLINT,');
            Add('     Temperature_min SMALLINT,');
            Add('     Temperature_max SMALLINT');
            Add('   )');
          end;
 
          Try
            ExecSql;
          except
          end;
        end;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
  ClientDataSet1.Active:=True;
end;
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
  dbname:='d:\Delphi\'+Edit1.Text+'.met';
  SQLConnection1.Params.CommaText:='Database='+dbname;
end;
 
end.