IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Comment Créer et se connecter a une base SQLite avec zeosLib


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut Comment Créer et se connecter a une base SQLite avec zeosLib
    Bonjour,

    Je commence a travailler avec SQLite.
    J'ai télécharger ZeosLib, je l'ais installer (sur Delphi 2007), et maintenant j'essaye de créer et de me connecté à des tables SQLite.

    Théoriquement je peux créer des tables avec le ZDD (Zeos Database designer), mais comment me connecter a cette able depuis delphi ?

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Pour ceux que cela interesse, voici ke résultat que j'ai trouvé pour ouvrir et créer une base de donné.

    En partant du fichier zip télécharger 'ZEOSDBO-6.6.1-beta.Zip'.

    Copier le projet dans 'ZEOSDBO-6.6.1-beta\examples\controls'.

    Dans le Speedbutton2.Onclick (On click de Connect) mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      Pagecontrol1.TabIndex := 0;
      with ZConnection do
      begin
        User := ZUername.Text;
        Password := ZPassword.Text;
        Protocol := ZProtocol.Text;
        HostName := ZHost.Text;
        if ZPort.Text <> '(default)' then
          Port := StrToInt(ZPort.Text);
        Database := ZDatabase.Text;
     
        Connect;
      end;
    supprimer tous les TZquery sauf TZCargo.

    supprimer Tous les datasource sauf ceux de ZCargo et ZQLMetadata.

    compiler - les erreures permettent de fair le menage suite aus suppression.

    Içi il est déja possible de se connecter.

    Dans l'onglet simple, veuillez a ce que la grille et navigator soit relie au data source de ZCargo

    Ajout un combobox (Combobox1)

    Ajouter
    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
     
    procedure TMainForm.GetAllTableName;
     
     
    begin
      Combobox1.Onchange := nil;
      try
        ComboBox1.Items.Clear;
        ZSQLMetadata.Close;
          ZSQLMetadata.MetadataType := mdTables;
        if ZConnection.Connected then
          ZSQLMetadata.Open;
        while not  ZSQLMetadata.Eof do begin
          if NoSystemTable(ZSQLMetadata.FieldByName('TABLE_NAME').AsString) then
            ComboBox1.Items.Add(ZSQLMetadata.FieldByName('TABLE_NAME').AsString);
          ZSQLMetadata.NExt;
        end;
        ZSQLMetadata.Close;
        if Combobox1.Items.Count > 0 then begin
          Combobox1.ItemIndex := 0;
          ComboBox1Change(ComboBox1);
        end;
      finally
        Combobox1.Onchange := ComboBox1Change;
      end;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function TMainForm.nosystemtable(Value: string): boolean;
    begin
      Result := Copy(AnsiUpperCase(Value) + '*******', 1, 7) <> 'SQLITE_';
    end;
    Ajouter 'GetAllTableName;' after le click de Connect.


    Ajouter un Onchange a combobox1
    [Cose]
    procedure TMainForm.ComboBox1Change(Sender: TObject);
    begin
    if Combobox1.Items.Count = 0 then exit;

    ZCargo.Active := False;
    if Combobox1.Text <> '' then begin
    zcargo.Sql.text := 'Select * from ' + Combobox1.Text;
    ZCargo.Active := True;
    end;
    end;
    [/Code]

    Si je n'ai rien oublie, vous pouvez voir la liste de toutes les table non systeme et les modifier.

    Pour Creer un base j'ai utilisé
    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
     
      if FileExists(ZDatabase.Text) then begin
          ShowMessage('La base existe deja.');
          Exit;
      end;
     
      Pagecontrol1.TabIndex := 0;
      with ZConnection do
      begin
       // User := ZUername.Text;
       // Password := ZPassword.Text;
        Protocol := ZProtocol.Text;
        HostName := ZHost.Text;
        if ZPort.Text <> '(default)' then
          Port := StrToInt(ZPort.Text);
        Database := ZDatabase.Text;
       Properties.Add ('CreateNewDatabase=CREATE DATABASE ' +
          QuotedStr (ZDatabase.Text) + ' USER ' +
          QuotedStr ('sysdba') + ' PASSWORD ' + QuotedStr ('masterkey') +
          ' PAGE_SIZE 4096 DEFAULT CHARACTER SET ISO8859_1');      
        Memo1.Lines.Text := Properties.Text;
        Connect;
      end;
    Pour creer une table avec un index primaire en autoincrement j'ai utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
      ZQueryCreate.SQL.Text :=
        'Create Table ' + edtTableName.Text + '(' +
         'Id INTEGER PRIMARY KEY' +
        ')';
      ZQueryCreate.ExecSql;
      ComboBox1.Items.Add(edtTableName.Text);
      ComboBox2.Items.Add(edtTableName.Text);
      ComboBox1.ItemIndex := ComboBox1.Items.Count - 1;
      ComboBox2.ItemIndex := ComboBox2.Items.Count - 1;
      ComboBox1.OnChange(ComboBox1);
    Pour initier une transaction j'ai utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TMainForm.DoBeginTrans;
    begin
      if not BtnCommit.enabled then begin
       // ZConnection.StartTransaction;
        ZCargo.CachedUpdates := true;
        BtnCommit.Enabled := True;
        btnroolback.Enabled := true;
      end;
    end;
    Pour le commit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      if ZConnection.Connected then begin
        // ZConnection.Commit;
        ZCargo.ApplyUpdates;
        ZCargo.CommitUpdates;
        ZCargo.CachedUpdates := false;
      end;
      BtnCommit.Enabled := False;
      btnroolback.Enabled := False;
    Pour le rollBack
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      if ZConnection.Connected then begin
       // ZConnection.Rollback;
        ZCargo.CancelUpdates;
        ZCargo.CachedUpdates := false;
      end;
      BtnCommit.Enabled := False;
      btnroolback.Enabled := False;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Artichow] Comment créer un graphe à partir d'une table mysql avec deux colonnes
    Par Amel_B dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 24/12/2013, 16h50
  2. Réponses: 7
    Dernier message: 20/08/2009, 19h00
  3. probleme de connection a une base oracle avec tomcat uniquement
    Par haifa28 dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 26/05/2007, 21h09
  4. connection a une base oracle avec vb.net
    Par khayate dans le forum VB.NET
    Réponses: 5
    Dernier message: 11/05/2007, 17h45
  5. [C# 2.0] Comment se connecter à une base de données SQL Server ?
    Par prince_antonio dans le forum Accès aux données
    Réponses: 5
    Dernier message: 14/07/2006, 12h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo