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 :

[ADOQuery] Propriété Fields


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 84
    Par défaut [RESOLU][ADOQuery] Propriété Fields
    bonjour,

    J'ai étudié les docs sur le site et ailleurs mais je n'ai pas encore compris l'utilisation de cette propiété. Ca ressemble a un param pour les TQuery non?
    Es ce que qq un pourrai me montrer un exemple d'utilisation ce serai sympa.

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Par défaut
    Regarde déjà dans l'aide delphi puis pour des exemples de l'utilisation des fields

    http://delphi.developpez.com/faq/?page=bdddivers

    Cordialement

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 84
    Par défaut
    J'ai déja vu tout ca. En fait pour etre plus precis ma requete ressemble a ca :

    insert.SQL.Add('INSERT INTO GAMELLE VALUES ( ');
    insert.Sql.Add(Edit1.Text+', :idChien, '+Edit2.Text+', :coule, :utile )');
    insert.FieldByName('idChien').AsVariant := 9;
    insert.FieldByName('coul').AsString := Edit4.Text ;
    insert.FieldByName('util').AsString := Edit3.Text ;

    Et j'ai lemessage d'erreur suivant de la classe d'exception EDatabaseError :
    insert : L'ensemble de données n'es pas en mode Edition ou Insertrion

    Et ce qui est bizarre c que ca marchait avec une requete entierement construite a la main sans Fiels :

  4. #4
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    ca renvoie la liste des champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var
    cmpt:integer;
    begin
    for cmpt:=0 to adoquery1.FieldCount-1 do
     showmessage(adoquery1.Fields[cmpt].FieldName);
    end;

  5. #5
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Par défaut
    Utilise les balises de code stp.

    Ce que tu as écrit ne va pas du tout.

    1 -> Utiliser une requête SQL avec la clause INSERT ne te renvoit pas d'ensemble de résultat.

    2 -> Quelle est la définition de ton insert

    Il faud soit que tu utilises 100% une requête ou rien du tout.

    Explique un peu plus ce que tu veux faire avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    insert.SQL.Add('INSERT INTO GAMELLE VALUES ( '); 
    insert.Sql.Add(Edit1.Text+', :idChien, '+Edit2.Text+', :coule, :utile )'); 
    insert.FieldByName('idChien').AsVariant := 9; 
    insert.FieldByName('coul').AsString := Edit4.Text ; 
    insert.FieldByName('util').AsString := Edit3.Text ;
    Cordialement

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 84
    Par défaut
    Je devrai alors me servir plutot d'un TADOCommand alors ?

    Sinon ma requete ma permet d'inserer un n-uplet dans la table Gamelle (pas de commantaire svp je me fais la main sur delphi avec ce qui me passe par la tete). Gamelle(id_gamelle, id_chien, contenu, couleur, utilisation)
    integer integer integer text text

    insert est mon TADOQuery. il possede une connexion.
    Les Edit1.Text, 2, 3 sont mais champs que je veux passer dans mon ordre sql. Sinon avec l'interface j'ai defini 3 TStringFields dont les noms correspondent au variable de l'ordre sql.
    pour les curieux voici ma fonction je vous previens c pas jolie jolie.
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    procedure TfmGamelle.btEnregistrerClick(Sender: TObject);
    var
       nomChien : string;
       i : integer;
     
    begin
          if Edit1.Text = ''
          then  statBar.SimpleText := 'Le champs id_gamelle n est pas remplie';
          if Edit2.Text = ''
          then  statBar.SimpleText := 'Le champs contenance n est pas remplie';
          if Edit3.Text = ''
          then  statBar.SimpleText := 'Le champs utilisation n est pas remplie';
          if Edit4.Text = ''
          then  statBar.SimpleText := 'Le champs couleur n est pas remplie';
          if listNomChien.KeyValue = null
          then statBar.SimpleText := 'Choississez un chien';
     
          if (Edit2.Text <> '') and (Edit4.Text <> '') and (Edit1.Text <> '') and (Edit3.Text <> '') and (listNomChien.KeyValue <> null)
          then
             begin
              statBar.SimpleText := 'Formulaire valide';
              nomChien := listNomChien.KeyValue;
              insert.Close;
              {insert.SQL.Add('INSERT INTO GAMELLE VALUES ( ');
              insert.SQL.Add(Edit1.Text+', ');  //id gamelle
              insert.SQL.Add('3'+', ');         //id chien
              insert.SQL.Add(Edit2.Text+', ');  // contenu
              insert.SQL.Add(' '''+Edit4.Text+''', '); //couleur
              insert.SQL.Add(' '''+Edit3.Text+''') ');   //utilisation}
     
              insert.SQL.Add('INSERT INTO GAMELLE VALUES ( ');
              insert.Sql.Add(Edit1.Text+', :idChien, '+Edit2.Text+', :coule, :utile )');
              insert.FieldByName('idChien').AsVariant := 2;
             insert.FieldByName('coul').AsString := Edit4.Text ;
             insert.FieldByName('util').AsString := Edit3.Text ;
             //insert.ExecSQL;
              for i:=0 to insert.FieldCount-1 do
              showmessage(insert.Fields[i].FieldName);
     
              for i:=0 to 5 do
              begin
              statBar.SimpleText := insert.SQL[i];
              Sleep(5000);
              end;
     
     
             end;
    end;
    je vous avez prévenu
    bon je pense avoir tout dis.

  7. #7
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Par défaut
    Une proc avec les TADOCommand pour executer un requête SQL.

    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
     
    // exécute une requête à partir d'un TADOCommand 
    // renvoie TRUE si aucune erreur FALSE dans le cas contraire 
     
    function executeSQL(connexionString, requete: string):boolean; 
    var ADOC: TADOCommand; 
        indic: boolean; 
    begin 
      try 
        indic := true; 
        ADOC := TADOCommand.Create(nil); 
        ADOC.ConnectionString := connexionString; 
        ADOC.CommandText := requete; 
        try 
          ADOC.Execute; 
        except 
          indic := false; 
        end; 
      finally 
        ADOC.Free; 
        result := indic; 
      end; 
    end;
    Avec cette procédure tu ne te contente que d'écrire correctement ta requête SQL et le tour est joué. Très pratique pour les insert.

    Cordialement

  8. #8
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 84
    Par défaut
    merci ca marche comme papa dans maman 8)
    Sinon je voulais savoir aussi si l'utilisation de mes fields étaient corrects en imaginant que c t un select ou je dois encore plancher dessus.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/01/2013, 22h39
  2. [Flex4] propriété field de ValidationResultEvent
    Par yvancoyaud dans le forum Flex
    Réponses: 0
    Dernier message: 28/02/2012, 21h34
  3. Réponses: 0
    Dernier message: 10/09/2009, 10h49
  4. Problème avec ADOQuery.Fields[].Value
    Par Gaadek dans le forum Bases de données
    Réponses: 3
    Dernier message: 12/07/2006, 10h28
  5. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24

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