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 :

Delphi & Firebird


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 31
    Points
    31
    Par défaut Delphi & Firebird
    Bonjour,
    Je cherche la meilleur méthode pour attaquer une db firebird.
    J'utilise ibdac, est-ce que je dois utiliser :
    1) if dsPret.DataSet.state in ([dsInsert, DsEdit]) then
    dsPret.DataSet.post;
    avec Table et les composants (dbedit compoedit....)
    2) ou via des requettes sql via SQL a la place des tables..

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    il vaut mieux utiliser l'option 2 surtout si l'application est réseau .
    C'est un peu plus contraignant mais beaucoup plus gratifiant en terme de vitesse/trafic réseau
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 31
    Points
    31
    Par défaut
    Merci pour votre réponse,
    Est-ce que cette function peut me servir dans toute mes unsert et update :

    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
    Function TDataModule.Insertion_ou_MAJ(instruction:string):BOOLEAN;
    begin
     
     try                           
        IBSQL_mvt.Close;
        IBSQL_mvt.SQL.Clear;
        IBSQL_mvt.SQL.Add(instruction);
         try
        IBSQL_mvt.ExecQuery;
        if not  IBSQL_mvt.Prepared then  IBSQL_mvt.Prepare;
        IBSQL_mvt.transaction.CommitRetaining;
        result:=True;
        except
        if IBSQL_mvt.transaction.InTransaction then
           begin
          IBSQL_mvt.transaction.Rollback;
           result:=False;
           end;
        end;
        finally
        IBSQL_mvt.Close;
        end;
     
    end;

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Ce code me semble correct, mais avec Firebird je te déconseille l'utilisation des composants IBX (à réserver pour Interbase).

    Avec les composants UIB par exemple, ta fonction peut se réduire à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function TDataModule.Insertion_ou_MAJ(Instruction: string): Boolean;
    begin
      Result := True;
      with UIBTransaction1 do
      try
        ExecuteImmediate(Instruction);
        Commit;
      except
        Result := False;
      end;
    end;
    @+ Claudius

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 31
    Points
    31
    Par défaut
    J'ai procédé comme ceci :
    ///// Fiche client ///// j'utilise IBDAC
    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
     
    procedure TFicheClient.savedata;
    begin
    if MessageDlg('Confirmer l''ajout de ce client ?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes then
          exit;
    try
    dm.IBCQuery1.SQL.Clear;
    dm.IBCQuery1.SQL.Add('insert into tbl_client(NOM_CLIENT, PRENOM_CLIENT) values (:nom_client, :prenom_client)');
    dm.IBCQuery1.ParamByName('NOM_CLIENT').AsString:=edt_nom.Text;
    dm.IBCQuery1.ParamByName('PRENOM_CLIENT').AsString:=edt_prenom.Text;
    dm.IBCQuery1.ExecSQL;
    dm.IBCTransaction1.Commit;
    except
    on E: Exception do
          settings.errordialog(E.Message);
     
    end;
    end;
    Est-ce que c'est propre comme code!?
    Je dois refaire la même chose pour l'update et pour delete uniquement pour cette fiche, alors que j'ai plusieurs fiche (articles, banques.....)
    Que dois-je faire dans ce cas!?
    J'ai une autre question; est-ce que je dois utiliser un unique ibcquery dans ma DM pour toutes mes update,insert et delete, ou sur chaque fiche je dois poser un ibcquery et un TIBCTransaction lier à mon TIBCConnection!?

    Merci

Discussions similaires

  1. Delphi 2007 Firebird/Interbase
    Par dlewin dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/05/2007, 01h53
  2. Delphi avec FireBird 2
    Par Doucoure dans le forum Delphi
    Réponses: 2
    Dernier message: 19/02/2007, 18h02
  3. Delphi et Firebird
    Par nassoft dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/11/2006, 14h25
  4. composants delphi pour firebird
    Par devalender dans le forum Débuter
    Réponses: 1
    Dernier message: 07/02/2005, 12h24

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