Ajouter un Enregistrement dans une Table InterBase en Delphi [Résolu]

Messages postés
17
Date d'inscription
samedi 24 juin 2006
Dernière intervention
4 novembre 2008
- - Dernière réponse : demande001
Messages postés
17
Date d'inscription
samedi 24 juin 2006
Dernière intervention
4 novembre 2008
- 4 nov. 2008 à 09:15
Bonjour;
Voila je ss new en interBase et je voudrais bien savoir si quelqu'un peut me donné la méthode d'ajouter un enregistrement dans une table IB en programmation avec Delphi j'utilise le Composant IBDATASET pour la connection a cette table
la methode Append et Post marche pour le premier enregitrement seulement et des que il existe plus qu'un elle bloque
j'aimerais bien avoir une implementation SQL c'est Si possible....
Merci d'avance...
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
56
Date d'inscription
vendredi 2 mars 2007
Dernière intervention
27 mars 2010
3
Merci
Bonjour,
En effet IB utilise beaucoup les implémentations SQL, contrairement au TDATASET qui utilise la notion Ttable.post, les IBDATASET utilise TIbdaset.ExexSQL.

Pour l'usage de ton IBDATASET, tu le depose sur l'unité et tu le selectionne puis tu renseigne sa proprité Database en selectionnant le nom de ton composant IBDATABASE situé sur ton Datamodule.
si le nom de ta base de données n'est pas visible, tu fais FIHIER+UTILISER UNITE et tu choisi l'unité de ton Datamodule.

Ensuite, tu fais un clic droit sur ton composant IBDATASET et tu clique sur le menu EDIT SQL et à droit tu doule clic sur le nom de ta table et tu met une étoile(*) après le SELECT de la requête (Select*From Table) +OK.

Tu refais un clic droit sur le même IBdataset + Dataset editor ou sql editor +generated SQL apres avoir cliquer sur generate sql on a:
1-Inset
2-Modify/Update
3-Refrech

Tu coche l'option Insert et automatiquement il écrit la requête pour toi.
Tu copies cette requête et tu fais un clic droit sur ton IBDATASET+EDIT SQL et tu y colle la requête+ok

Enfin tu place un bouton ENREGISTRER et tu fais double clic sur lui pour acceder à l'editeur de code Pascal de delphi et tu y écris.

<meta http-equiv= "Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 10" /><meta name="Originator" content="Microsoft Word 10" /><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CServer%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:HyphenationZone>21</w:HyphenationZone>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><style><!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
--></style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tableau Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->Begin

          IBdataset2.Prepare;

          IBdataset2.ParamByName('Codeclient').AsString: =(Edit1.Text);

         IBdataset2.ParamByName('Nom').AsString:= ( Edit2 .Text);

          IBdataset2.ParamByName('Prenoms').AsString: =(Edit3Text);

          IBdataset2.ParamByName('Adresse').AsString:= ( Edit4 .Text);

          IBdataset2.ParamByName('CNI').AsString: =(Edit5.Text);

          IBdataset2.ParamByName('CS').AsString:= ( Edit6 Text);

         IBdataset2.ParamByName('Cellulaire').AsString: =(Edit7.Text);

          IBdataset2.ParamByName('Telephone').AsString:= ( Edit8 .Text);

          IBdataset2.ParamByName('EMAIL').AsString: =(Edit9.Text);

          IBdataset2.ExecSQL;

      DATAMOD.TransGest.CommitRetaining;

           ShowMessage('Enregistrement
éffectué avec      

                                      succès');            /*                                            

                           Edit1.Text:= '';

                         Edit2.Text: ='';     /*Libere le Edit après l'enregistrement*/

                      Edit3.Text:= '';

                    Edit4.Text: ='';

                  Edit5.Text:= '';

                Edit6.Text: ='';

              Edit7.Text:= '';

            Edit8.Text: ='';

          Edit9.Text:= '';

       Edit1 .SetFocus;     /*positionne le curseur sur le premier Edit aprés l'enregistrement*/

   End

End;

NB: Pour enregistrer une date: .AsDate: =strToDate(Edit2.Text);
       Pour enregistrer un entier: .AsInteger:=StrToInt(Edit1.text);
       Pour enregistrer un reel. AsFloat:=StrToFloat(Edit3.Text);
       Pour enregistre les caractères Alpha Numerique: AsString:=(Edit5.Text);
ful

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Zicson1
Messages postés
56
Date d'inscription
vendredi 2 mars 2007
Dernière intervention
27 mars 2010
0
Merci
Je reposte le code pour diminuer la police afin de rendre sa structure compréhensible.

Begin

          IBdataset2.Prepare;

          IBdataset2.ParamByName('Codeclient').AsString:= (Edit1.Text);

          IBdataset2.ParamByName('Nom').AsString: =(Edit2.Text);

          IBdataset2.ParamByName('Prenoms').AsString:= ( Edit3 Text);

          IBdataset2.ParamByName('Adresse').AsString: =(Edit4.Text);

          IBdataset2.ParamByName('CNI').AsString:= ( Edit5 .Text);

          IBdataset2.ParamByName('CS').AsString: =(Edit6Text);

         IBdataset2.ParamByName('Cellulaire').AsString:= ( Edit7 .Text);

          IBdataset2.ParamByName('Telephone').AsString: =(Edit8.Text);

          IBdataset2.ParamByName('EMAIL').AsString:= ( Edit9 .Text);

          IBdataset2.ExecSQL;

      DATAMOD.TransGest.CommitRetaining;

           ShowMessage('Enregistrement éffectué avec succès');            /* accusé de reception*/                                          

                           Edit1.Text: ='';

                         Edit2.Text:= '';     /*Libere le Edit après l'enregistrement*/

                      Edit3.Text: ='';

                    Edit4.Text:= '';

                  Edit5.Text: ='';

                Edit6.Text:= '';

              Edit7.Text: ='';

            Edit8.Text:= '';

          Edit9 .Text: ='';

       Edit1.SetFocus;     /*positionne le curseur sur le premier Edit aprés l'enregistrement*/

   End

End;

ful
Commenter la réponse de Zicson1
Messages postés
17
Date d'inscription
samedi 24 juin 2006
Dernière intervention
4 novembre 2008
0
Merci
Bonjour;

sa reste toujours utile (même deux ans après)

Merci quand même
Commenter la réponse de demande001

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.