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

demande001 17 Messages postés samedi 24 juin 2006Date d'inscription 4 novembre 2008 Dernière intervention - 17 oct. 2006 à 13:08 - Dernière réponse : demande001 17 Messages postés samedi 24 juin 2006Date d'inscription 4 novembre 2008 Dernière intervention
- 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
Zicson1 56 Messages postés vendredi 2 mars 2007Date d'inscription 27 mars 2010 Dernière intervention - 3 nov. 2008 à 13:27
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

Merci Zicson1 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de Zicson1
Zicson1 56 Messages postés vendredi 2 mars 2007Date d'inscription 27 mars 2010 Dernière intervention - 3 nov. 2008 à 13:33
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
demande001 17 Messages postés samedi 24 juin 2006Date d'inscription 4 novembre 2008 Dernière intervention - 4 nov. 2008 à 09:15
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.