Problème d'arguments dans une procédure stockée

Résolu
cs_Jordel Messages postés 27 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 14 décembre 2007 - 1 déc. 2007 à 00:49
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 15 déc. 2007 à 16:03
Bonsoir les gens,

Je me permets de vous solliciter car j'ai un petit souci lors de la tentative d'exécution du procédure stockée sur un SQL Server 2000 avec de l'ASP.

Voici le message d'erreur :



Microsoft OLE DB Provider for ODBC Drivers error '80040e14'






[Microsoft][ODBC SQL Server Driver][SQL Server]Trop d'arguments sont spécifiés pour la procédure ou la fonction Nom_SP



Voici mon oeuvre






dim cmd
set cmd = Server.CreateObject ("ADODB.Command")
set cmd.activeconnection = Connexion_active
cmd.CommandType = adcmdStoredProc
cmd.CommandText = "Nom_SP"
cmd.Parameters.Append cmd.CreateParameter("@ID", adVarChar, adParamInput, 50 , var1)
cmd.Parameters.Append cmd.CreateParameter("@date_debut", adVarChar, adParamInput, 14 ,var2)
cmd.Parameters.Append cmd.CreateParameter("@date_fin", adVarChar, adParamInput, 14 , var3)
' var2 et var3 sont au format : "YYYYMMJJ 00:00"
set rs_cdr = cmd.execute()








L'erreur se situe (apparemment...) sur la ligne cmd.execute...

Merci d'avance

------------------------------------------------------------------
JE crois en lui et comme lui c'est moi, je crois en moi !!!

3 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
1 déc. 2007 à 17:01
As tu essayé sans les createParameters ect... :

cmd.CommandText = "exec Nom_SP " & var1 & ", '" & var2 & "', " & var3 & "'"

Sinon, la procédure stockée a peut etre des parametres de types differents, ou un nombre different de 3 ?

Ou simplement il y a une virgule dans un des parametres varchar ?
3
cs_Jordel Messages postés 27 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 14 décembre 2007
14 déc. 2007 à 22:50
Bonsoir,

Bon je reviens sur mon problème car je ne l'ai toujours pas résolu...
Voici ma procédure stockée et mon code ;)
-------------------------------PROCEDURE STOCKEE

CREATE PROCEDURE [sp_get_CC]  (  
    @ID_Com nvarchar(50),
    @date_deb nvarchar(50),
    @date_fin nvarchar(50))
AS

SELECT     SUM(CAST(somme AS real))  as 'total'
FROM         COMM
WHERE     (date_com BETWEEN @date_deb  AND @date_fin) AND (ID_client IN
                          (SELECT     ID_client
                            FROM          CLIENT
                            WHERE      (id_type_comm IN
                                                       (SELECT     id_type_comm
                                                         FROM          CMX
                                                         WHERE      id_cmx = @ID_Com))))
GO

-------------------------------CODE
    set cmd = Server.CreateObject ("ADODB.Command")
    set cmd.activeconnection = Conn_DB
    cmd.CommandTimeout = 3600

    cmd.CommandType = adcmdStoredProc
    cmd.CommandText = "sp_get_CC"
   
   
    cmd.Parameters.Refresh
    cmd.Parameters.Append cmd.CreateParameter("@ID_Com", adVarChar, adParamInput, 50 , SESSION("USER"))
    cmd.Parameters.Append cmd.CreateParameter("@date_deb", adVarChar, adParamInput, 50 , this_year & mm & "01")
    cmd.Parameters.Append cmd.CreateParameter("@date_fin", adVarChar, adParamInput, 50 , this_year & mm & jj_max)
   
    'response.write(SESSION("USER") & "---" & this_year & mm & "01---" & this_year & mm & jj_max)   
    set rs_cdr = cmd.Execute()

Merci d'avance aux courageux qui m'aideront ;)
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
15 déc. 2007 à 16:03
nvarchar c'est de l'unicode.

Essayes de mettre tes parametres en varchar.
0
Rejoignez-nous