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 :

Insertion de plusieurs informations dans une table Access à l'aide de ADOQuery


Sujet :

Bases de données Delphi

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Comores

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Insertion de plusieurs informations dans une table Access à l'aide de ADOQuery
    Bonjour à tous,
    J'ai un grand problème,j'ai configuré ma base de données sur Microsoft Acces avec ADOQurey.
    Lorsque je veux ajouter plusieurs informations en même temps( dans la même table ) ça marche pas, exemple si je souhaite ajouter les contenus d’une table qui contient des champs qui occupent des edit1……edit81, delphi7 me signal un error fatal sur le fait qu’il y a beaucoup de caractères sur la ligne.

    Voici le code :

    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
    With  ADOQuery1 do 
    begin 
        close; 
    SQL.Text:='insert  into  Notes1  values('''+ComboBox1.Text+''','''+ComboBox2.Text+''', 
    '''+combobox3.Text+''', 
    '''+Edit1.Text+''','''+ComboBox6.Text+''','''+ComboBox4.Text+''','''+Edit3.Text+''','''+Edit4.Text+''','''+Edit5.Text+''','''+DateToStr(DateTimePicker1.Time)+''', 
            '''+Edit6.Text+''','''+ComboBox5.Text+''','''+Edit7.Text+''','''+Edit8.Text+''','''+Edit9.Text+''','''+Edit10.Text+''','''+Edit11.Text+''','''+Edit12.Text+''','''+Edit13.Text+''','''+Edit14.Text+''','''+Edit15.Text+''','''+Edit16.Text+''','''+Edit17.Text+''', 
            '''+Edit18.Text+''','''+Edit19.Text+''','''+Edit20.Text+''','''+Edit21.Text+''','''+Edit22.Text+''','''+Edit23.Text+''','''+Edit24.Text+''','''+Edit25.Text+''','''+Edit26.Text+''','''+Edit27.Text+''','''+Edit28.Text+''','''+Edit29.Text+''','''+Edit30.Text+''',
            '''+Edit31.Text+''','''+Edit32.Text+''','''+Edit33.Text+''','''+Edit34.Text+''','''+Edit35.Text+''', 
    '''+Edit36.Text+''','''+Edit37.Text+''','''+Edit38.Text+''','''+Edit39.Text+''','''+Edit40.Text+''', 
    '''+Edit41.Text+''','''+Edit42.Text+''','''+Edit43.Text+''', 
            '''+Edit44.Text+''','''+Edit45.Text+''','''+Edit46.Text+''','''+Edit47.Text+''','''+Edit48.Text+''', 
    '''+Edit49.Text+''','''+Edit50.Text+''','''+Edit51.Text+''','''+Edit52.Text+''','''+Edit53.Text+''', 
    '''+Edit54.Text+''','''+Edit55.Text+''','''+Edit56.Text+''', 
          '''+Edit57.Text+''','''+Edit58.Text+''','''+Edit59.Text+''','''+Edit60.Text+''','''+Edit61.Text+''', 
    '''+Edit62.Text+''','''+Edit63.Text+''','''+Edit64.Text+''','''+Edit65.Text+''','''+Edit66.Text+''', 
    '''+Edit67.Text+''','''+Edit68.Text+''','''+Edit69.Text+''', 
            '''+Edit70.Text+''','''+Edit71.Text+''','''+Edit72.Text+''','''+Edit73.Text+''','''+Edit74.Text+''', 
    '''+Edit75.Text+''','''+Edit76.Text+''','''+Edit77.Text+''','''+Edit78.Text+''','''+edit79.text+''', 
    '''+edit80.text+''','''+edit81.text+''')'; 
    ExecSQL; 
    with ADOQuery1 do 
    begin 
        close; 
        SQL.Text:='select*from Notes1'; 
        Open; 
    end; 
    end;
    Ma question est comment faire pour ajouter toutes informations simultanément dans la même table?
    Je vous remercie pour vos réponse favorables et détails.

  2. #2
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Je crois que tu trouvera difficilement de l'aide avec un code source aussi foireux illisible.
    Pour commencer, évites les editXX, qui apportent autant de clareté au code que ton indentation.
    Pourquoi ne pas utiliser une stringGrid ? Je ne sais pas à quoi ressemble ton interface, mais je suis sûr qu'il y a moyen de faire beaucoup plus clair (au pire, créer les edit en dynamique).

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 299
    Points
    11 299
    Billets dans le blog
    6
    Par défaut
    delphi7 me signale l'erreur fatal suivant : line too long
    ce doit être une limitation de l'EDI, surmontable comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQL.Text:='insert  into  Notes1  values('''+ComboBox1.Text+''','''+ComboBox2.Text+''','''+combobox3.Text+''',';
    SQL.Text:=SQL.Text+Edit1.Text+''','''+ComboBox6.Text+''','''+ComboBox4.Text+''','''+Edit3.Text+''','''+Edit4.Text+''',''';
    SQL.Text:=SQL.Text+Edit5.Text+''','''+DateToStr(DateTimePicker1.Time)+''','''+Edit6.Text+''','''+ComboBox5.Text+''','''+Edit7.Text;
    // etc.
    Quant à la qualité du code, qui suis-je pour lancer la première pierre ? En même temps, ce n'est plus la première !
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    il serait quand même mieux de faire une jolie requête paramétrée
    ce qui aurait au moins 3 avantages une SQL String pas trop longue
    une lecture plus facile du code
    le passage des valeurs chiffres et dates facilitées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL.Text:='INSERT INTO NOTES1 VALUES (:V1,:V2,:V3, .......)';
    parameters.parambyname('v1').value:=ComboBox1.Text;
    parameters.parambyname('v2').value:=ComboBox2.Text;
    paramameters.parambyname('v3').asString:=ComboBox3.Text;
    ...
    il doit aussi y avoir moyen de passer les paramétres par parameters.param[n].value mais je ne suis pas assez ADO pour me souvenir de la syntaxe exacte
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. [MySQL] Insertion de plusieurs lignes dans une table
    Par BOUWAGGOU dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 04/05/2009, 16h55
  2. Réponses: 5
    Dernier message: 27/12/2006, 16h56
  3. Problème d'insertion dans une table Access
    Par tribaleur dans le forum ASP
    Réponses: 21
    Dernier message: 27/06/2006, 08h20
  4. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 16h57

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