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

Langage Delphi Discussion :

Insertion avec tquery?


Sujet :

Langage Delphi

  1. #41
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 091
    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 091
    Points : 41 064
    Points
    41 064
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par lila23 Voir le message
    c'est mon premier projet professionnel avec un outil ke je métrise moyennement delphi 7 avec SQL Serveur

    voila ce que j'ai comme erreur:
    'General SQL Error'
    line3: incorrect syntax near 'date_ness'.
    sans vouloir re-rentrer dans une polémique , un professionnel utiliserait des paramètres pour ses requêtes et sans aucun doute des dBEdits .

    Maintenant deux remarques concernant les dates (je présume que date_ness veut dire date de naissance)
    1) il faut s'assurer que ce soit le bon format pour la base de données
    2) pour cela utiliser FormatDateTime(<format accepté par la BDD>,ladate) plutôt que datetostr qui donne la date formattée selon la localisation

    personnellement je ne connais pas SQL Server mais Firebird renverrait une erreur de syntaxe pour une date indiquée en texte telle que "31/12/2008" par contre accepterait "31.12.08" dans le premier cas c'est un format à l'anglaise "MM/DD/YYYY" dans le second un format 'JJ.MM.AAAA' d'où mon instance de professionnel à l'utilisation de paramêtres

    Sinon comme indiqué
    Citation Envoyé par ero-sennin
    Lorsque tu auras mis le contenu de ce ShowMessage, alors là, on pourra vraiment t'être utile.
    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

  2. #42
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    personnellement je ne connais pas SQL Server mais Firebird renverrait une erreur de syntaxe pour une date indiquée en texte telle que "31/12/2008" par contre accepterait "31.12.08" dans le premier cas c'est un format à l'anglaise "MM/DD/YYYY" dans le second un format 'JJ.MM.AAAA' d'où mon instance de professionnel à l'utilisation de paramêtres
    +1, je l'ai bien compris sa, va voir le type de date avec fox pro, il m'appris plus de 2 jour, si j'avais pas VB6 installé sur mon PC, j'aurais jamais trouver la solution, surtou que j'avais besoi de le faire sans utilisé paramètre de Tdataset , mais le petit probléme avec les param c'est que tu doit rensgner Datatype de Tfields avec les date,(sa aussi il ma falut un temps fous pour le comprendre , je crois que je dois ajouter sa ici
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  3. #43
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    bonjour
    voila ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm10.Button2Click(Sender: TObject);
    begin
    query1.Active:=false;
    query1.SQL.Clear;
    query1.SQL.Add(' update employe  set ');
    query1.SQL.Add(' matricule='''+edit1.Text+''', nom='''+edit2.text+''' , prenom='''+edit3.text+''', date_ness='''+edit4.Text+''', lieu_ness='''+edit5.Text+''' ');
    query1.SQL.Add(' date_recru='''+edit10.Text+''',num_sec_soc='''+edit6.Text+''', structure='''+combobox1.Text+''' ');
    query1.SQL.Add(' departement='''+edit7.Text+''', unite='''+edit8.Text+''', fonction='''+edit9.Text+''' ');
    query1.SQL.Add(' where matricule='''+edit1.Text+''' or nom='''+edit2.Text+''' ');
    showmessage(query1.Text);
    query1.ExecSQL;
     
     
    employe.Refresh;
    avant je fait une recherche avec matricule je tape dans le tedit = 666 aprés
    il maffiche l'enregistrement je modifie aprés je click sur le boutton update il maffiche ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update employe  set 
    ' matricule='666', nom='nazim', prenom='ziane', date_ness='30/02/1960', lieu_ness='paris'  date_recru='04/10/2008',num_sec_soc='10', structure='IT';
     departement='IT', unite='IT', fonction='help desk' ');
     where matricule='666' or nom='nazim' ');
    ça c le message de showmessage de query1.text ilprend les valeur que j'ai modifié et il les affiche alors que par exemple dans le where il devré ecrire where matricule = 666 or nom = john l'ancien enregistrement

    aprés ce mesage d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    '' general sql error 
    line 3: incorrect syntax near 'date_recru'
    merci

  4. #44
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Je doute que le showMessage affiche cela.
    En fait, tu n'as fait que recopier la requête en remplacant leur valeur.
    Je vais te donner une astuce
    Lorsque tu as la fenêtre du ShowMessage qui apparait fait CTRL+C.
    Tu auras ainsi tout le contenu de la requête dans le presse papier. Ensuite, colle-le (CTRL+V) ici.
    Je sais qu'on est rébarbatif mais c'est pour t'aider efficacement
    Ne le prends pas mal surtout.

    Pour le format des dates, c'est sans doute MM/JJ/AA ... A voir

    Ero

    EDIT:
    Attention aussi à ne pas utiliser de mot clé en ce qui concerne les noms de colonne (je fais référence à structure...).

  5. #45
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ---------------------------
    monprojet2
    ---------------------------
     update employe  set 
     matricule='666', nom='SMATI' , prenom='IMENE NAZIHA', date_ness='31/08/1985', lieu_ness='hussein dey' 
     date_recru='04/10/2008',num_sec_soc='0', structure='DG' 
     departement='IT', unite='IT', fonction='INFORMATICIENNE' 
     where matricule='666' or nom='SMATI' 
     
    ---------------------------
    OK   
    ---------------------------
    voila j'ai ctrl+c puis ctrl+v
    et le format date est jj/mm/aa

    merci a tous

  6. #46
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Nickel

    Bon, alors, là que l'on voit correctement la requête et que ca n'a pas l'air déplaisiant, je vais te demander de me donner le type de la colonne date_ness définit dans SQL SERVER.

  7. #47
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 091
    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 091
    Points : 41 064
    Points
    41 064
    Billets dans le blog
    62
    Par défaut
    deux erreurs , il manque des virgules
    update employe set
    matricule='666', nom='SMATI' , prenom='IMENE NAZIHA', date_ness='31/08/1985', lieu_ness='hussein dey',
    date_recru='04/10/2008',num_sec_soc='0', structure='DG',
    departement='IT', unite='IT', fonction='INFORMATICIENNE'
    where matricule='666' or nom='SMATI'
    [edit] de plus au départ l'erreur était
    line3: incorrect syntax near 'date_ness'
    maintenant
    line3: incorrect syntax near 'date_recru'
    bizarre
    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

  8. #48
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lieu_ness='paris'  date_recru='04/10/2008',
    manque une virgule en 'paris' et date_recru
    Bien vu, a force de regarder, je suis passé à coté

    Citation Envoyé par SergioMaster Voir le message
    [edit] de plus au départ l'erreur était

    maintenant

    bizarre
    Ah oué tient ...

  9. #49
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    de plus au départ l'erreur était
    Citation:
    line3: incorrect syntax near 'date_ness' tu n'as pas appliqué le format mm/jj/yyyy ici ?????
    maintenant
    Citation:
    line3: incorrect syntax near 'date_recru' notmal car le manque de vergulle
    bizarre
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  10. #50
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut probléme avec fct up date résolu
    bonjour à tous,
    je voulais vous remercier grace a vous j'ai remarqué que j'avais oublié les virgules une petite erreur mais qui ma couté cher

    encore merci de votre aide

    jespere que vous serez patient car j'ai encore bcp de question a vous posé car moi et le SQL sous delphi c'est pas mon truc

    encore merci

  11. #51
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut repercuté la modif sur un dbgrid d'une autre forme
    bonjoru à tous,
    voila aprés la mise à jour d'un employé je ferme la forme qui ma permis de faire la modif j'aimerais ensuite quand je retourne sur la fenetre précédante ou j'ai un dbgrid qui affiche tout les employés voir l'employé aprés ca modification j'ai pensé a faire ceci juste avant de fermer la fenetre de la modif:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    conge2.Form3.Query1.Open;
    conge2.Form3.Query1.Close;
    conge2.Form3.Query1.Refresh;
    conge2.Form3.DBGrid1.Refresh;
    form10.Close;

    j'ai l'erreur suivante:
    query1: No SQL statement available

    merci

  12. #52
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Salut;

    on peut penser que "No available" veut dire vide donc, à mon avis, y a rien à exécuter dans ta requête, faut penser à faire un select avant Open du genre

    Select * frome maTable
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  13. #53
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    comme j'ai rien à faire ce matin, et aussi pour me rappeler un peut des composant ADO, j'ai fait un petit exemple rapide, j'espère qu'il peut t'aider un peut
    edit; j'ai corrigé un petit probléme
    Fichiers attachés Fichiers attachés
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  14. #54
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut probléme avec dbcombobox
    bonjour à tous,
    voila j'ai dans une forme j'aimerais utilisé deux tables l'une d'entre elle je l'utilise juste pour récupérer une liste de champ dans un dbcombobox puis j'insére l'enregistement dans ma deuxiéme table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    query1.Active:=false;
    query1.SQL.Clear;
    query1.SQL.Add('insert into employe (matricule,nom,prenom,date_ness,lieu_ness,date_recru,num_sec_soc,structure,departement,unite,fonction)');
    query1.SQL.Add('values('''+ (mat.Text) +''', '''+ (nom.Text) +''', '''+ (pr.Text) +''', '''+ (dbedit2.Text) +''','''+(dbedit3.Text)+''', '''+ datetostr(datetimepicker1.DATE) +''', '''+ (sec.Text) +''', ');
    query1.SQL.Add(' '''+dbcombobox1.Text+''' ,'''+dep.Text+''', '''+dbedit1.text+''','''+fonct.Text+''' )');
    //showmessage(query1.Text);
    query1.ExecSQL;
    employe.Refresh;
    quand j'éxecute il ne me récupére pas les diférents champs dans le dbcomboox et donc j'ai pas la main pour mettre une valeur et comme mon champ dans la table ne peut pas etre nul donc il m'affiche
    structure must have a value

    je dois me trompé sur les data source ou koi?

    merci

  15. #55
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Salut;

    vérifie que les deux tables possèdent une clé par laquelle ils sont reliées.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  16. #56
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    en fait j'ai mis un dbedit tou court

    maintenant je fais une recherche sur une forme a part le résultat je le modfie l'enregistrement s'enregistre dans ma table modifié mais quand je revien sur la forme principale je revois l'enregistremen comme il était avant j'aimerais savoir comment peut on rafraichir ce dbgrid
    ce code je le fais avant de fermer la forme ou j'ai fais la modif
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    conge2.Form3.Query1.Open;
    conge2.Form3.Query1.Close;
    conge2.Form3.Query1.Refresh;
    conge2.Form3.DBGrid1.Refresh;
    form10.Close;
    sauf ke quan je clik sur fermer j'ai ce message

    query1: no sql statement available

    merci bcp

  17. #57
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    on dirait que lila23est fatiguée et ne lit pas les réponses

    plus bas lila23 y a deux propositions.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  18. #58
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    Citation Envoyé par Just-Soft Voir le message
    on dirait que lila23est fatiguée et ne lit pas les réponses
    +1 et ne fait que sa tête
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  19. #59
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    oui je l'avoue je suis complétement crevée mais je lit tjs vos réponses ca fait 3semaine ke je buche avec le SQL sous delphi je tatone mais heuresement j'avance grace a vous tous qui etes plus expérimenté que moi!!

    pour rafraichir le dbgrid je ny arrive pas l'enregistrmen modifié ne se voi ke kan je ferme le projet et ke je le réexécute

    encore merci

  20. #60
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    par hasard tu as télécharger mon exemple???
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

Discussions similaires

  1. [INSERT][SELECT] insert avec un select imbriqué
    Par narmataru dans le forum SQL
    Réponses: 11
    Dernier message: 06/03/2013, 03h04
  2. Requête Insertion avec un TQuery
    Par delphino7 dans le forum Bases de données
    Réponses: 44
    Dernier message: 29/03/2008, 15h16
  3. Probleme de Refresh avec TQuery et DBGrid
    Par insoo dans le forum C++Builder
    Réponses: 7
    Dernier message: 25/11/2003, 17h20
  4. INSERT avec procédure stockée / Clef de type AutoInc
    Par bgdelphi dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/10/2003, 18h30
  5. Problème d'insertion avec MySQL
    Par Sonny dans le forum ASP
    Réponses: 13
    Dernier message: 28/08/2003, 13h52

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