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 :

Utilisation de TIBSQL, TIBTransaction et TIBQuery ?


Sujet :

Bases de données Delphi

  1. #1
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut Utilisation de TIBSQL, TIBTransaction et TIBQuery ?
    Bonjour,

    J'utilise les composants TIBSQL, TIBTransaction et TIBQuery et je souhaiterai avoir votre avis sur l'utilisation que j'en fais :
    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
     
         try
              if not IBDatabase1.Connected then IBDatabase1.Connected := true;
              IBQuery1.SQL.Clear;
              IBQuery1.SQL.Add('SELECT * FROM xxx');
              IBQuery1.Open;
              IBQuery1.First;
              while not IBQuery1.Eof do
              begin
                   if IdFTP1.Size(Path) <> -1 then
                   begin
                        try
                             IBSQL1.SQL.Clear;
                             IBSQL1.SQL.Add('INSERT INTO xxx');
                             IBSQL1.ExecQuery;
                        except
                             on E : Exception do
                             begin
                                  Log(E.Message);
                                  Log('SQL : ' + IBSQL1.SQL.Text);
                             end;
                        end;
                   end;
                   IBQuery1.Next;
              end;
              IBQuery1.Close;
         except
              on E : Exception do
              begin
                   Log(E.Message);
                   MessageDlg(E.Message, mtError, [mbOK], 0);
              end;
         end;
    Le code a été volontairement simplifié afin de ne laisser que la partie qui nous interesse : base de données.

    Pour IBDatabase1 :
    DefaultTransaction = IBTransaction1
    LoginPrompt = False
    SQLDialect = 1
    Pour IBQuery1 :
    Database = IBDatabase1
    Transaction = IBTransaction1
    Pour IBTransaction1 :
    DefaultDatabase = IBDatabase1
    Pour IBSQL1 :
    Database = IBDatabase1
    Transaction = IBTransaction1
    Merci,
    MaTHieU_
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    Citation Envoyé par MaTHieU_
    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
         try
              if not IBDatabase1.Connected then IBDatabase1.Connected := true;
              IBQuery1.SQL.Clear;
              IBQuery1.SQL.Add('SELECT * FROM xxx');
              IBQuery1.Open;
              IBQuery1.First;//est ce vraiment néccessaire ? en général il se trouve sur le premier enregistrement
              while not IBQuery1.Eof do
              begin
                   if IdFTP1.Size(Path) <> -1 then
                   begin
                        try 
                             //puisque tu es dans une boucle, il faut impérativement fermer l'IBSQL avant de modifier sa propriété SQL
                             IBSQL1.Close;
                             IBSQL1.SQL.Clear;
                             IBSQL1.SQL.Add('INSERT INTO xxx');
                             IBSQL1.ExecQuery;
                        except
                             on E : Exception do
                             begin
                                  Log(E.Message);
                                  Log('SQL : ' + IBSQL1.SQL.Text);
                             end;
                        end;
                   end;
                   IBQuery1.Next;
              end;
              IBQuery1.Close;
              //bon il n'y a pas de mal à fermer aussi le composant IBSQL...
              IBSQL1.Close;
         except
              on E : Exception do
              begin
                   Log(E.Message);
                   MessageDlg(E.Message, mtError, [mbOK], 0);
              end;
         end;
    Pour ce qui est du SQLDialect, en général l'utilisation du Dialect3 est préconisée, car c'est celle utilisée par les nouveau moteurs IB/Fb.

  3. #3
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut
    Bonjour,

    Merci pour ces précisions, je vais apporter les corrections préconisées

    MTHieU_
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

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

Discussions similaires

  1. Diff TIBSql et TIBQuery ?
    Par qi130 dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 01/04/2005, 12h17
  2. La bonne utilisation de TIBTransaction
    Par jibe74 dans le forum Connexion aux bases de données
    Réponses: 15
    Dernier message: 29/01/2005, 16h18
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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