Accueil > Forum > > > > Erreur dans ma requete sql
Erreur dans ma requete sql
mardi 9 novembre 2010 à 14:28:34 |
Erreur dans ma requete sql

GarnierFlorian
|
Bonjour à tous !
Grâce à ma requête, je souhaite obtenir les pays et un nombre pour lesquels la date de création est égale à la date passée en paramètre (RPT.MOI pr le mois, et RPT.ANN pour l'année, ce qui donne par exemple 08/2010). La seule chose, mon champs dans ma table est sous la forme : jj/mm/aaaa !
Au départ, tout se passait à peut près bien lorsque je fesait ma requete de cette facon :
Code Visual Basic : RESEXE.REQRPT = "SELECT DISTINCT nompay,COUNT(numctr) AS nb" & _
" FROM pays,client" & _
" WHERE client.codpay = pays.codpay" & _
" AND flg = 1" & _
" AND datcre = " & RPT.MOI & " / " & RPT.ANN & _
" GROUP BY pays.nompay" & _
" ORDER BY pays.nompay"
Et au moment de l'éxecution ( Code Visual Basic : ss_rst.Open RESEXE.REQRPT, CNXFOX, adOpenStatic, adLockReadOnly, adCmdText ), j'avais le message suivant :
- Function argument value, type, or count is invalid.
Après modification, j'obtiens :
Code Visual Basic : RESEXE.REQRPT = "SELECT DISTINCT nompay,COUNT(numctr) AS nb" & _
" FROM pays,client" & _
" WHERE client.codpay = pays.codpay" & _
" AND flg = 1" & _
" AND datcre LIKE "" & RPT.MOI & " / " & RPT.ANN & """ & _
" GROUP BY pays.nompay" & _
" ORDER BY pays.nompay"
Et là, je ne peux pas mettre cette requete dans ma variable RESEXE.REQRPT à cause d'une incompatibilité !
Donc voila, je ne sais pas si j'étais mieux partis au début ou si ma seconde partie est mieux ???
Merci pour votre aide !
Peace
|
|
mardi 9 novembre 2010 à 17:30:13 |
Re : Erreur dans ma requete sql

MichelAtoutFox
|
bonjour,
tu es sur un forum FoxPro; tes données sont dans des dbf?
Quel est le type de données du champ datecre? je dis bien le type, pas ce que tu vois.
tu parles de passage de paramètres; mais ici, tu ne passes pas deparamètre, tu concatène des valeurs dans une chaine de requète. à éviter! si tes données sont des dbf, ce n'est pas trop trop risqué (tu as seulement le problème de typage de données que tu nous signale), mais le jour où tu fais ça avec du MySql, du SQL Server, du Postgres, tu prends le risque d'une injection SQL.
|
|
mercredi 10 novembre 2010 à 08:38:45 |
Re : Erreur dans ma requete sql

GarnierFlorian
|
Bonjour !
Pour commencer, oui mes données sont dans des dbf !
Ensuite, mon champ datecre est de type Date !
Sinon je vais essayer de me renseigner pour faire des requetes paramétrées !
Merci !
Peace
|
|
mercredi 10 novembre 2010 à 10:32:10 |
Re : Erreur dans ma requete sql

GarnierFlorian
|
Bon, voici déjà ma requête qui fonctionne :
Code Visual Basic : RESEXE.REQRPT = " SELECT DISTINCT pays.nompay,COUNT(client.numctr) AS nbprospect" & _
" FROM pays,client" & _
" WHERE client.codpay = pays.codpay" & _
" AND flgprp = 1" & _
" AND MONTH(client.datcre) = " & RPT.MOI & _
" AND YEAR(client.datcre) = " & RPT.ANN & _
" GROUP BY pays.nompay" & _
" ORDER BY pays.nompay"
Bon par contre du coup j'essaye de voir pour essayer de paramétrer ma requête, mais je ne suis pas encore sûr des infos que j'ai trouvé !
Pour info voici un site sur lequel je pense pouvoir m'inspirer :
Requêtes paramétrés vers une base de données
|
|
mercredi 10 novembre 2010 à 12:22:27 |
Re : Erreur dans ma requete sql

GarnierFlorian
|
Bon alors : je vais vous poster ai trouvé, ça me donne une erreur "Syntax Error" lors de l'exécution de la requete :
Code Visual Basic : Sub Recuperation()
Dim ss_cmd As ADODB.Command
Dim ss_parmoi As Parameter
Dim ss_parann As Parameter
Dim ss_rst As ADODB.Recordset
Dim ss_tgtran As Range
Dim ss_colind As Integer
On Error GoTo SelectSQL_Error
Connexion
If FLGCNX = True Then
RESEXE.X = 13
RESEXE.Y = 3
'On déclare la command
Set ss_cmd = New ADODB.Command
With ss_cmd
.ActiveConnection = CNXFOX
.CommandType = adCmdText
.NamedParameters = True
End With
ss_cmd.Parameters.Append ss_cmd.CreateParameter("ChoixMois", adInteger, 2)
ss_cmd.Parameters.Append ss_cmd.CreateParameter("ChoixAnnee", adInteger, 4)
ss_cmd("ChoixMois").Value = RPT.MOI
ss_cmd("ChoixAnnee").Value = RPT.ANN
SelectionRequete
ss_cmd.CommandText = "PARAMETERS ChoixMois Int, ChoixAnnee Int;" & RESEXE.REQRPT
'On déclare le recordset
Set ss_rst = New ADODB.Recordset
'Exécute la requête
With ss_rst
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
End With
Set ss_rst = ss_cmd.Execute
'On efface l'ensemble du contenu précédent
With Workbooks(NOMFIC).Worksheets(FEUPRP)
'On vérifie que l'on a bien récupéré des enregistrements
If Not ss_rst.EOF Then
ss_rst.MoveFirst
.Cells(RESEXE.X, RESEXE.Y).CopyFromRecordset ss_rst
'On récupère le nombre d'éléments traités :
RESEXE.NBRRES = ss_rst.RecordCount
End If
End With
ss_rst.Close
Set ss_cmd = Nothing
Set ss_rst = Nothing
End If
Deconnexion
On Error GoTo 0
Exit Sub
SelectSQL_Error:
MsgBox "(Erreur n°" & ERR.Number & ") " & ERR.Description
RESEXE.ERR = ERR.Description
FLGERR = True
End Sub
Ma fonction selection requete :
Code Visual Basic : Public Sub SelectionRequeteProspect()
Select Case RPT.PER
Case RPTMEN
RESEXE.REQRPT = " SELECT DISTINCT pays.nompay,COUNT(client.numctr) AS nbprospect" & _
" FROM pays,client" & _
" WHERE client.codpay = pays.codpay" & _
" AND flgprp = 1" & _
" AND MONTH(client.datcre) = [ChoixMois]" & _
" AND YEAR(client.datcre) = [ChoixAnnee]" & _
" GROUP BY pays.nompay" & _
" ORDER BY pays.nompay"
Case else
MsgBox "On ne fait rien"
End Select
End Sub
Voila ! J'aimerais avoir votre avis pour savoir d'où peut venir mon erreur et pour m'assurer que j'ai bien procédé en ce qui concerne la création des paramètres !
Merci d'avance,
Peace :)
|
|
mercredi 10 novembre 2010 à 17:20:04 |
Re : Erreur dans ma requete sql

MichelAtoutFox
|
Bon,
maintenant que tu as compris que l'opérateur LIKE ne fonctionne pas sur des données de type date (mais seulement sur des strings), tu as pu avancer.
je ne pense pas que tu passes correctement tes paramètres, mais là, il te faut voir du côté du forum VB. en .net, je t'aurais aidé, mais en vb, ça fait trop longtemps que j'en ai fait... 
|
|
vendredi 12 novembre 2010 à 10:04:17 |
Re : Erreur dans ma requete sql

GarnierFlorian
|
Bonjour !
Oui effectivement je n'avais pas été très attentif avec l'utilisation de mon like^^
J'ai déjà améliorer mon passage de paramètre, car j'arrive à bien voir leurs valeurs quand j'y ajoute un espion, mais j'ai toujours ce Syntax Error..
En tout cas merci, j'ai posté sur le forum vb, et j'attends l'aide d'une personne charitable^^
En tout cas je tiendrais au courant lorsque j'aurais trouvé d'où vient mon erreur !
Peace ;)
|
|
vendredi 12 novembre 2010 à 11:59:53 |
Re : Erreur dans ma requete sql

GarnierFlorian
|
Réponse acceptée !
Bon ba je pense m'en être sorti !
Je met le lien vers le forum vb, plutôt que de reposter tout le code !!
Solution sur forum vb
Merci pour ton aide MichelAtoutFox !
Peace ;)
|
|
Cette discussion est classée dans : code, requete, pays, rpt, nompay
Répondre à ce message
Sujets en rapport avec ce message
Probleme d'etat et de requete !!! [ par spoutnic_37 ]
aloha , Je voudrais savoir si il etait possible de copier les infos d'un grid pour les afficher dans un etat ? En fait pour ceux qui veulent m'aider,
probleme se "SUM" !!! [ par spoutnic_37 ]
aloha,J'ai un bug d'affichage généré par une fonction sum présente dans un code.Le code ci
vfp9 vues distantes [ par samirba ]
Bonjour, J'utilise une vue distante composé de deux tables relié entres-elles par un code champ et une jointure left join. Une valeur null est renvoyé
erreur sur creation de table [ par ducker88 ]
Bonjour,Voila je veux creer une table dans une database existente, je me suis inspiré de l'aide de VFP et j'en ai tiré le code suivant : CREATE TABLE
probleme requete et date [au secours] [ par ducker88 ]
bonjour,Voila j'ai creer la requete suivante : select num_di,libe_di,date_dema where date_dema >={2006/01/19}et quand elle est executer elle fait l'er
Creation de table mais pas a l'endroit voulu [ par ducker88 ]
Bonjour,Voila je souhaiterai creer une table dans une base specifique.J'ai donc tapé le code suivant : CLOSE DATABASES SET PATH TO C_che
Relation 0 a plusieurs [ par ducker88 ]
Bonjour, Je pense que cette question releve plus du code SQL que du code foxpro.J'aimerai savoir comment creer une relation entre deux table du type z
chargement de combobox [ par brunaux ]
Bonjourje charge un combobox avec toutes les communes de france ( +de 36 000 enregis.) avec le code suivant mais cela prends un peu de temps, y-a-t-il
message d'erreur [ par jee0404 ]
Bonjour , J'ai un problème , je voudrais afficher les erreures et la ligne de code ou l'erreure est générer , cela marche bien quand je le
If not [ par jemanirambe ]
Bonjour,je suis débutant et j'ai un problème, mais qui n'en a pas...j'aimerai vérifier dans un code si une variable existe, j'ai essayé" IF Not xxx "
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
974 Application Server (12.2.4.0)974 APPLICATION SERVER (12.2.4.0)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP mySongBook Player (1.0.0)MYSONGBOOK PLAYER (1.0.0)mySongBook Player est un logiciel gratuit permettant l'accès à une archive de tablatures/partitio... Cliquez pour télécharger mySongBook Player
|