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 :

probleme avec deux fiches


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Points : 75
    Points
    75
    Par défaut probleme avec deux fiches
    bonjour tous le monde

    J'ai deux fiches
    La première liste le contenu d'une table. Sur cette fiche j'ai mis le bouton ajouter afin d'ajouter d'autre enregistrement à ma table.
    Cette fiche (la première) appel une deuxième qui contient le masque de saisi pour ajouter les enregistrements
    A la fermeture de la fiche le dbgrid de la fiche une est vide.
    Je ne sais pas d’où vient ce pb est ce que c'est normale ce qui arrive ou bien il faut que j'ajoute quelque chose a mon code dans l'une des fiche.
    Pour information j'utilise delphi 7 avec interbase 7.1
    Pour chaque fiche a sa propre transaction.
    Dans l'action FormActivate, la transaction est ouverte et le dbgrid chargé.
    Dans la fiche 2 a chaque ajoute la transaction est fermer après le commit
    merci a tous

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    Salut,
    quel est le code que vous avez utiliser pour l'ajout?
    Bonne chance.
    Merci.
    Deux, n'apprendront pas; le timide et l'arrogant

  3. #3
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Points : 75
    Points
    75
    Par défaut mes codes pour les deux fiche
    pour la première fiche j'utilise ce code pour ouvrire la requette et charge les donnée dans le dbgrid

    procedure TF_LISTBANK.FormActivate(Sender: TObject);
    begin

    Data.IBTbank.Active:=true;
    Data.IBQbank1.Close;
    Data.IBQbank1.SQL.Clear;
    Data.IBQbank1.SQL.Add('select * from bank');
    Data.IBQbank1.Open;
    end;

    en ce qui concerne la deuxieme fiche, dans laquel j'ajoute les enregistrement est le suivant :

    procedure TF_bank.ajoutClick(Sender: TObject);
    begin
    {ouverture de la transaction}
    Data.IBTbank.Active:=true;

    {Ajout d'une banque}
    With data.IBQBank Do
    begin
    close;
    With SQL Do
    begin
    Clear;

    {création des parametres de la requet}
    Params.CreateParam(ftString,'P_idbank',ptInputOutput);
    Params.CreateParam(ftString,'P_nombankfr',ptInputOutput);
    Params.CreateParam(ftString,'P_nombankar',ptInputOutput);

    {ecriture du code de la requete}
    Add('INSERT INTO bank');
    Add('(cd_bank, nom_bank_fr, nom_bank_ar)');
    Add('VALUES');
    Add('(: P_idbank,: P_nombankfr,: P_nombankar)');

    {affectation du contenu des champs d'edtion dans les parametres}
    ParamByName('P_nombankfr').AsString:=e_libbank.text;
    ParamByName('P_nombankar').AsString:=e_libbankar.text;
    ParamByName('P_idbank').AsString:=E_cdbank.Text;
    end ;

    {Exécution de la requet}
    try
    begin
    ExecSQL;

    {confirmation de l'ajout d'une banque}
    if MessageDlg('Voullez vous vrainement ajouter la banque'+#13+
    'code : '+e_cdbank.text+#13+'nom banque : '+e_libbank.Text+#13+
    ' ÅÓã ÇáÈäß :'+e_libbankar.Text, mtConfirmation,
    [mbYes,MbNo],0)=mrYes
    then
    {validation de la transaction}
    data.IBTbank.Commit
    else
    {Annulation de la transaction}
    data.IBTbank.Rollback;
    end;
    Except
    On e:Exception Do
    begin
    Data.IBTbank.Rollback;
    showMessage('PROBLEME D''INSERTION'+e.Message);
    end;
    End;
    {fermeture de la transaction}
    if not F_listbank.Visible
    then
    data.IBTbank.Active:=false;

    {réinitialisation des champs de saisi}
    E_cdbank.Clear;
    E_libbank.Clear;
    E_libbankar.Clear;

    end;

    end;

  4. #4
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    pourqoi pas laissé IBTbank pour consultation et ajouté un autre composant (ex:IBSql) pour modification
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  5. #5
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Points : 75
    Points
    75
    Par défaut plus de detail svp
    monsieur edam,
    j'ai deux requete une pour consultation dans la fiche une et l'autre pour l'ajout dans la fiche deux
    mais j'aimerai avoir plus de detail sur ta reponse merci

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Points : 241
    Points
    241
    Par défaut
    Salut

    Bon, si j'ai bien compris....

    IBTbank est un TIBTransaction
    IBQbank1 est un TIBQuery

    correct?

    Bon, si ça c'est correct... quelques observations

    N'utiliser pas l'evenement OnActivate pour fermer/ouvrir la Query.

    Sur cette fiche j'ai mis le bouton ajouter afin d'ajouter d'autre enregistrement à ma table
    Tu peux utiliser cet bouton pour fermer/ouvrir la Query. Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TF_LISTBANK.ButtonXClick(Sender: TObject);
    begin
      ....
      F_bank.ShowModal;
     
      if not Data.IBTbank.InTransaction then
        Data.IBTbank.StartTransaction;
     
      Data.IBQbank1.Close;
      Data.IBQbank1.SQL.Clear;
      Data.IBQbank1.SQL.Add('select * from bank');
      Data.IBQbank1.Open;
    end;
    Une autre chose. Je croix que c'est mieux (plus facile) utiliser des compo DataAware (TDBEdit,...) et un TIBQuery + TIBUpdateSQL ou encore mieux, un TIBDataSet

    A+

Discussions similaires

  1. Probleme avec deux sous formulaire
    Par mr_mans dans le forum 4D
    Réponses: 3
    Dernier message: 11/03/2013, 03h34
  2. probleme avec deux macros
    Par simplyc dans le forum Débuter
    Réponses: 4
    Dernier message: 23/12/2011, 14h55
  3. Probleme avec deux tableaux
    Par thaundeadboss dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 17/09/2009, 15h20
  4. Probleme avec deux div dans une autre
    Par orphen dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 05/11/2007, 15h10
  5. Probleme avec deux JComboBox
    Par zandb69 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 26/05/2006, 11h58

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