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 : Ajouter un champ pendant l'excecution d'un programme


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Points : 80
    Points
    80
    Par défaut ADOQUERY : Ajouter un champ pendant l'excecution d'un programme
    Je executé une requette avec un composant AdoQuery et après je souhaite ajouter un nouveau champ du type boolean au composant AdoQuery.

    J'ai cherche avec google mais je ne rien trouvé, pas d'exemple!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AdoQuery1.Fields.Add( .....??????);
    Quelqun pourraît me donner une exemple de code?

    Nom de champ à ajouter : TEST
    type du champs: boolean

    Merci d'avance pour votre aide.

  2. #2
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table maTable ADD Monchamps Varchar(100) NULL

  3. #3
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    je ne sais pas si j'ai bien compris ta préoccupation
    1-tu veux modifier la structure de ta table pour y ajouter un nouveau champ
    ou
    2-tu veux modifier la requête sql de ton AdoQuery pour "voir" un champ en plus

    1- dans ce cas, fais comme a dit aityahia : exécute cette requête action sur ta bdd. mais attention au type de données

    2- ici, tu dois comprendre que les champs du composant AdoQuery dépendent de la requête qu'elle doit exécuter. cad que si ta requete doit retourner 4 champs, tu dois t'attendre à avoir 4 objets TXXField dans l'AdoQuery (corrigez moi si je me trompe). il ne te restes donc plus qu'à modifier la requête sql du composant et réouvrir l'ensemble de données.
    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    AdoQuery1.Close();
    AdoQuery1.SQL.Clear();
    AdoQuery1.SQL.Add('select champ1, champ2, test from MaTable where Champ = Valeur');
    AdoQuery1.Open();

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Points : 80
    Points
    80
    Par défaut J'ai dévéloppé la solution
    D'abord merci pour votre aide , evarisnea et aityahia .

    J'ai trouve la solution à mon problème ...., enfin, ... je pense que je me suis pas très bien exprime dans la description précédente du problème.

    Comment ajouter temporairement un Champs (dans AdoQuery) après avoir exécuté une requête avec le composant "AdoQuery" tout en gardent les données de la requette dans le composant AdoQuery?
    Dans l'exemple suivant j'ajoute un champ "Test" (type = Boolean) durant l'exécution du programme (runtime).... qui me permet ensuite d'effectuer un traitement des données.... Je ne souhaite pas ajouter le champ "Test" dans ma table réelle (fichier .mdb). En fait tout les traitements des données se passent en mémoire.



    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
    var
     
    adosqlcommand1 : TStrings;
    Field : TField;
    ii : integer;
    t : String;
     
     adosqlcommand1 := TStringList.Create; { construct the list object }
     
     try
       adosqlcommand1.Add('SELECT DOS_ID, DOS_EMPR_NOM FROM DOSSIER order by DOS_ID ') ;
       AdoQuery1.SQL.Text := adosqlcommand1.Text;
       AdoQuery1.Open;
     
      except
     
     end;
     
     AdoQuery1.Active:=False;
     for ii:=0 to AdoQuery1.FieldDefs.Count-1 do
        Field:=AdoQuery1.FieldDefs[ii].CreateField(ADOTable1);
     
      Field:=TStringField.Create(AdoQuery1);
     
      with Field do
      begin
        FieldName:='Test';
        SetFieldType(ftBoolean);
        Calculated:=True;
        DataSet:=AdoQuery1;
      end;
      AdoQuery1.Active:=True;
     
     
      AdoQuery1.First;
      while not AdoQuery1.Eof do
      begin
         If (AdoQuery1.FieldByName('Test').AsBoolean <> true)   then begin
           t := AdoQuery1.FieldByName('DOS_EMPR_NOM').AsString;
           // traitement des données ......
           // ...........
           AdoQuery1.Next;
         end;
       end;

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

Discussions similaires

  1. Cherche à ajouter un TCppWebBrowser pendant l'execution d'un programme
    Par Ptite Développeuse dans le forum C++Builder
    Réponses: 12
    Dernier message: 21/04/2012, 11h00
  2. [debutant] Ajouter un champ à une table.
    Par castaka dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/05/2005, 10h08
  3. Ajouter un champs dans un Report
    Par nora_ora dans le forum Reports
    Réponses: 7
    Dernier message: 09/12/2004, 17h24
  4. Ajouter un champs dans une table (Access 2000)
    Par Didier100 dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/10/2004, 13h02
  5. ajouter un champ dynamiquement à une instance de table
    Par maniack dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/02/2004, 23h58

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