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 :

Erreur avec dsum, [Pilote ODBC Microsoft Access] Trop peu de paramètres


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 254
    Points : 123
    Points
    123
    Par défaut Erreur avec dsum, [Pilote ODBC Microsoft Access] Trop peu de paramètres
    Bonjour,

    je fait une application avec delphi7 et Access 2007, je veux exécuter la requête sous Access marche, par contre avec delphi il m'affiche une erreur
    [Pilote ODBC Microsoft Access] Trop peu de paramètres.
    voici mon code delphi qui rempli la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    query2.SQL.Add('UPDATE tot_Ap_tot_Cp SET total_cp = reliq_cp + dsum("CRE_PAY","Etat_f_PCD","INTITULE_CHP = ''"& sous_secteur & "''');
    query2.SQL.add(' and NOM_WILAYA = ''" & NOM_WILAYA & "'' And AN= '+''+inttostr(ann)+'") ');
    query2.ExecSQL;
    si je remplace le " par 2 ' il m'affiche pas l'erreur mais ça marche pas, j'ai essayé avec un select pour voir le résultat il m'affiche toujours un vide.

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 452
    Points : 24 863
    Points
    24 863
    Par défaut
    fait un ShowMessage(query2.SQL.Text); et regarde si tes concaténations sont correctes,
    moi je les trouve étrange en particulier la fin ..."'' And AN= '+''+inttostr(ann)+'") '); ?!
    +''+ ça fait quoi ça ajoute juste une chaine vide

    En théorie
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE tot_Ap_tot_Cp SET total_cp = reliq_cp + dsum("CRE_PAY","Etat_f_PCD","INTITULE_CHP = '"& sous_secteur & "'
     and NOM_WILAYA = '" & NOM_WILAYA & "' And AN= 2013")
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 254
    Points : 123
    Points
    123
    Par défaut
    moi j'ai fait une exécution étape par étape et je récupère la valeur de
    query2.SQL.Text
    dans une variable après je copier sa valeur et j’exécute ma requête directement dans Access, j'ai enlevé le teste avec l'année
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    query2.SQL.Add('UPDATE tot_Ap_tot_Cp SET total_cp = reliq_cp + dsum("CRE_PAY","Etat_f_PCD","INTITULE_CHP = ''"& sous_secteur & "''');
    query2.SQL.add(' and NOM_WILAYA = ''" & NOM_WILAYA & "''") ');
    mais toujours le même message

  4. #4
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 254
    Points : 123
    Points
    123
    Par défaut
    même si je supprime mon critère c'est toujours la même chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query2.SQL.Add('UPDATE tot_Ap_tot_Cp SET total_cp = reliq_cp + dsum("CRE_PAY","Etat_f_PCD","")');
    Merci.

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 452
    Points : 24 863
    Points
    24 863
    Par défaut
    Possible que le BDE essaye d’interprété la requête et que certains caractères comme les ' " & le font paniquer !
    As-tu essayé un TADOQuery au lieu d'un TQuery ?

    Tu fais bien un Clear avant les Add ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 254
    Points : 123
    Points
    123
    Par défaut
    Merci ShaiLeTroll pour vos repenses, même avec TADOQuery c'est le même problème, oui je fais un Clear avant les Add ?

  7. #7
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 254
    Points : 123
    Points
    123
    Par défaut
    j'ai trouvé une solution, j'ai changé le fournisseur de la base à
    Microsoft Jet 4.0 OLE DB Provider
    au lieu de
    ODBC Drivers
    , mais je comprend pas pourquoi c'est juste avec la requête dsum que j'ai eu ce problème par ce que avant j'utilise
    ODBC Drivers
    .

    Merci.

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 452
    Points : 24 863
    Points
    24 863
    Par défaut
    Pense que le SQL est parfois interprété par le Driver, "ODBC Drivers" est très général, il a je crois des commandes spéciales d'administration, le modifie le SQL qu'on lui fourni en un autre SQL
    On avait évoqué cela avec ADO, ou certains mot clé, ne sont pas liés à la DB mais à la couche d'Accès ODBC
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/07/2010, 10h36
  2. Réponses: 3
    Dernier message: 08/02/2009, 22h31
  3. La connexion au pilote ODBC Microsoft access à echoué
    Par cch38 dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/02/2008, 14h55
  4. Requete access - Trop peu de paramètres
    Par jmulans dans le forum ASP
    Réponses: 2
    Dernier message: 29/03/2007, 11h55

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