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 chevronné
    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
    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 chevronné
    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
    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, 15h50
  2. Réponses: 7
    Dernier message: 20/08/2009, 18h00
  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, 20h09
  4. connection a une base oracle avec vb.net
    Par khayate dans le forum VB.NET
    Réponses: 5
    Dernier message: 11/05/2007, 16h45
  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, 11h44

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