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 :

Pb avec requetes SQL


Sujet :

Bases de données Delphi

  1. #1
    Débutant
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Pb avec requetes SQL
    Voila j'aimera mettre a jour ma BD via Access
    j'utilise un ADOCommand et un ADOquery sur cette fiche qui sont connecté sur RecClient.ADOConnection1 ds l'inspecteur d'objet

    voila ma Procedure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TGestionClien.MiseAJourClientClick(Sender: TObject);
    var
      RecordSet: _RecordSet;
     
    begin
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('UPDATE Client SET Nom = '''+Edit1.Text+'''  AND Prénom = '''+Edit2.Text+''' AND Adresse = '''+Edit3.Text+''' AND Ville = '''+Edit4.Text+''' AND CP = '''+Edit5.Text+''' AND Telephone = '''+Edit6.Text+''' WHERE nom = '''+Num.Caption+'''  ');
    ADOQuery1.ExecSQL;
    end;
    Sa ne met rien a jour dans ma BD

  2. #2
    Membre régulier
    Profil pro
    Architecte logiciel
    Inscrit en
    Octobre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Architecte logiciel

    Informations forums :
    Inscription : Octobre 2002
    Messages : 64
    Points : 88
    Points
    88
    Par défaut
    ,

    Syntax SQL form:

    UPDATE [TRANSACTION transaction] {table | view}
    SET col = <val> [, col = <val> …]
    [WHERE <search_condition> | WHERE CURRENT OF cursor];

    DSQL and isql form:

    UPDATE {table | view}
    SET col = <val> [, col = <val> …]
    [WHERE <search_condition>

    <val> = {
    col [<array_dim>]
    | :variable
    | <constant>
    | <expr>
    | <function>
    | udf ([<val> [, <val> …]])
    | NULL
    | USER
    | ?}

    [COLLATE collation]
    <array_dim> = [[x:]y [, [x:]y …]]
    <constant> = num | 'string' | charsetname 'string'

    <function> = CAST (<val> AS <datatype>)
    | UPPER (<val>)

    | GEN_ID (generator, <val>)
    cette ligne ne te renvoi pas d'erreur?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Update Client Set Nom='...' And Prenom='....'
    A+.

  3. #3
    Débutant
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Non aucune erreur a la compilation ni a l'execution mais sé aucune mise a jour effectuer sur ma BD

    J'utilise le composant ADO

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Update Client Set Nom='...' , Prenom='....'

  5. #5
    Débutant
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Points : 11
    Points
    11
    Par défaut

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Mais encore ?

    Cela ne marche toujours pas ?

  7. #7
    Membre expérimenté

    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
    Points : 1 561
    Points
    1 561
    Par défaut
    A tout hasard essaie cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TGestionClien.MiseAJourClientClick(Sender: TObject); 
    var 
      RecordSet: _RecordSet; 
     
    begin 
    ADOQuery1.SQL.Clear; 
    ADOQuery1.SQL.Add('UPDATE Client SET Nom = '+QuotedStr(Edit1.Text)+'  AND Prénom = '+QuotedStr(Edit2.Text)+' AND Adresse = '+QuotedStr(Edit3.Text) .... etc..
     
     
    ADOQuery1.ExecSQL; 
    end;

  8. #8
    Débutant
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Points : 11
    Points
    11
    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
    14
    15
    16
    17
     
    procedure TGestionClien.MiseAJourClientClick(Sender: TObject);
    var
      RecordSet: _RecordSet;
      nom, prenom, adresse, cp, ville, telephone, numeroclient, photface : string;
    begin
    nom:= Edit1.Text;
    prenom:=  Edit2.Text;
    adresse:=  Edit3.Text;
    cp:=  Edit4.Text;
    ville:= Edit5.Text;
    numeroclient:=Num.Caption;
    photface:=OpenPictureDialog1.FileName;
     
    ADOCommand1.CommandText:='UPDATE Client SET Nom = '+QuotedStr(nom)+'  AND Prénom = '+QuotedStr(prenom)+' AND Adresse = '+QuotedStr(adresse)+' AND Ville ='+QuotedStr(ville)+' AND CP = '+QuotedStr(cp)+' AND Telephone = '+QuotedStr(telephone)+' AND photoFaceClient = '+QuotedStr(photface)+'WHERE IDClient = '+QuotedStr(numeroclient)+'';
    RecordSet := ADOCommand1.Execute;
    end;

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Indentes un peu ta requête parce que là

  10. #10
    Membre expérimenté

    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
    Points : 1 561
    Points
    1 561
    Par défaut
    Décris également les champs de ta table : Type ?

    ?? photoface

    Cela pourrait servir à diagnostiquer

    courage, il a une solution

  11. #11
    Membre habitué Avatar de alexmorel
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 196
    Points : 157
    Points
    157
    Par défaut
    t'es sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TGestionClien.MiseAJourClientClick(Sender: TObject); 
    var 
      RecordSet: _RecordSet; 
     
    begin 
    ADOQuery1.SQL.Clear; 
    ADOQuery1.SQL.Add('UPDATE Client SET Nom = '''+Edit1.Text+'''  AND Prénom = '''+Edit2.Text+''' AND Adresse = '''+Edit3.Text+''' AND Ville = '''+Edit4.Text+''' AND CP = '''+Edit5.Text+''' AND Telephone = '''+Edit6.Text+''' WHERE nom = '''+Num.Caption+'''  '); 
    ADOQuery1.ExecSQL; 
    end;
    et pas plutot

    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
     
    procedure TGestionClien.MiseAJourClientClick(Sender: TObject); 
    var 
      RecordSet: _RecordSet; 
     
    begin 
      ADOQuery1.SQL.Clear; 
      ADOQuery1.SQL.Add('UPDATE Client SET Nom = '''+Edit1.Text+''' AND '  
    +' Prénom = '''+Edit2.Text+''' AND Adresse = '''+Edit3.Text+''' AND '
    +' Ville = '''+Edit4.Text+''' AND CP = '''+Edit5.Text+''' AND '
    +' Telephone = '''+Edit6.Text+''' WHERE '
    +' id_client = '+Num.Caption+' '); 
     
    ADOQuery1.ExecSQL; 
    end;

  12. #12
    Membre expérimenté

    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
    Points : 1 561
    Points
    1 561
    Par défaut
    Attention QUOTEDSTR Renvoie la version guillemetée d'une chaîne.

    Dans ta requête toutes les valeurs de champ n'ont peut-être pas besoin d'être guillemetées.

    ex: si le champ NOM est un varchar alors là tu peux utiliser Quotedstr pour lui assigner une valeur

    si par contre comme te le fait remarquer alexmorel, id_client est par exemple une valeur numérique alors là tu n'as pas besoin d'adjoindre des guillemets à sa valeur.

  13. #13
    Débutant
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Voici la nouvelle procedure complète
    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
     
    procedure TGestionClien.MiseAJourClientClick(Sender: TObject);
     
    var
     
      RecordSet: _RecordSet;
      nom, prenom, adresse, cp, ville, telephone, numeroclient, photface, photprofil : string;
     
    begin
     
    nom:= Edit1.Text;
    prenom:=  Edit2.Text;
    adresse:=  Edit3.Text;
    cp:=  Edit4.Text;
    ville:= Edit5.Text;
    telephone:=Edit6.Text;
    numeroclient:=Num.Caption;
    photface:=OpenPictureDialog1.FileName;
    photprofil:=OpenPictureDialog2.FileName;
     
    ADOQuery1.SQL.Clear;
     
    ADOQuery1.SQL.Add('UPDATE Client SET Nom = '+QuotedStr(nom)+' AND '+' Prénom = '+QuotedStr(prenom)+' AND Adresse = '+QuotedStr(adresse)+' AND '+' Ville = '+QuotedStr(ville)+' AND CP = '+QuotedStr(cp)+' AND '+' Telephone = '+QuotedStr(telephone)+' WHERE '+' IDClient = '+Num.Caption+' ');
     
    ADOQuery1.ExecSQL;
     
    end;
    Lors que je fait appel a cette procédure, dans la base de donné aucun champs n'ait mis a jour à par le champ Nom qui passe à 0

  14. #14
    Débutant
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Problème Résolu

    Il Fallait remplacer les par des Merci a tous pour votre aides

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par PyRoFlO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Update Client Set Nom='...' , Prenom='....'

  16. #16
    Débutant
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Oui comme quoi fo bien lire

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

Discussions similaires

  1. moteur de recherche avec requete sql
    Par hottnikks_79 dans le forum ASP
    Réponses: 4
    Dernier message: 03/08/2006, 03h58
  2. Alimenter DBgrid avec requete SQL ?
    Par La_Bande_A_Zozo dans le forum C++Builder
    Réponses: 5
    Dernier message: 31/05/2006, 17h51
  3. [ACCESS][SQL] Problème avec requete SQL ...
    Par mpascolo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/11/2005, 10h54
  4. Pb avec requete SQL
    Par Naud dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 06/07/2005, 19h13
  5. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45

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