Probléme passage de paramétres à une SP par Méthode ADO Execute ??

Le
News Groups
Bonjour,
Je suis sous Access 2002 - Projet ADP / SQL Server 2000.

J'essaye d'utiliser la Méthode Execute de ADO :
°°° MaCommande.Execute intAffected, Array("Toto"), adExecuteNoRecords
Afin d'executer une Procédure stockée de type "UPDATE.." ayant un parametre
d'entrée @Prenom
Or l'utilisation de "Array(..)" pour fournir les valeurs de paramétre
entraine une erreur d'éxécution !!!

Quelqu'un peut-il m'aider, ?
Est ce que le passage des paramétres par ce biais ne vaut que pour les
instruction SQL paramétrées
type "UPDATE ..WHERE (MonChamp = ?)" ?

Merci de votre et désolé si la demande est un peu brouillon..

Thierry.
Vos réponses
Trier par : date / pertinence
Charles ERNST
Le #5699381
dim q As New ADODB.Command
q.ActiveConnection = CurrentProject.Connection
q.CommandType = adCmdStoredProc
q.CommandText = "[NOM DE VOTRE PROCEDURE]"
q.Parameters("@Du") = Me("Du")
q.Parameters("@Au") = Me("Au")
q.execute



"News Groups" 41deb591$0$29888$
Bonjour,
Je suis sous Access 2002 - Projet ADP / SQL Server 2000.

J'essaye d'utiliser la Méthode Execute de ADO :
°°° MaCommande.Execute intAffected, Array("Toto"), adExecuteNoRecords
Afin d'executer une Procédure stockée de type "UPDATE.." ayant un
parametre
d'entrée @Prenom
Or l'utilisation de "Array(..)" pour fournir les valeurs de paramétre
entraine une erreur d'éxécution !!!

Quelqu'un peut-il m'aider, ?
Est ce que le passage des paramétres par ce biais ne vaut que pour les
instruction SQL paramétrées
type "UPDATE ..WHERE (MonChamp = ?)" ?

Merci de votre et désolé si la demande est un peu brouillon..

Thierry.






News Groups
Le #5698341
Merci pour ta réponse,

Je peux effectivement utiliser la définition de paramétres à l'objet
commande, c'est d'ailleurs ce que fais dans certains cas.
Mais dans le cas présent je veux éviter, je m'explique plus clairement que
dans le post précédent :

En fait j'ai un formulaire indépendant dans lequel je saisie des valeurs
pour une vingtaine de controles et la validation de la saisie par un bouton
execute une instruction INSERT dont les valeurs sont celles des controles du
Forms (l'insertion se faisant dans plusieurs Tables avec intégrités
référentielles entre elles).
Au lieu de créer dynamiquement l'instruction SQL, j'ai choisi de créer une
procédure stcokée avec en paramétres d'entrée les valeurs à inserer dans mes
tables :
MaProcedure (@ParamA,@ParamB,@ParamC,)
AS
...
BEGIN TRAN
INSERT MaTableA(ChampA,ChampB,ChampC,...ChampN...)
VALUES (@ParamA,@ParamB,@ParamC,)
IF @@ERROR <> 0 ROLLBACK TRAN
INSERT MaTableB(ChampA,ChampB,ChampC,...ChampS...)
VALUES (@ParamA,@ParamB,@ParamC,)
...
Hors cela me donne une vingtaine de paramétres !! > q.Parameters("@Du") Me("A")
q.Parameters("@Au") = Me("B")
..

q.Parameters("@N") = Me("N")


donc pour éviter de déclarer ces paramétres au niveau ADO, j'ai lu dans des
docs et l'aide DAO d'Access, la syntaxe de la méthode Execute :
command.Execute RecordsAffected, Parameters, Options
Avec :
Parameters Facultatif. Tableau Variant de valeurs de paramètres passées
avec une instruction SQL. (Les paramètres de sortie ne renvoient pas des
valeurs correctes s'ils sont transmis dans cet argument.)

Si j'applique l'arguments Parameters à mon cas, j'ai un message d'erreur ?!
°°MaCommande.Execute intAffect, (ValeurA,ValeurB,ValeurC,...ValeurN)

Donc je ne sais si on peut l'utiliser avec des Procédures Stockées ou
seulement avec une instruction SQL paramétrée du type :
INSERT MaTableA(ValeurA,ChampB,ChampC..)
VALUES (?,?,?..)..

Je cherche donc de l'aide et des infos sur cela ??

Merci encore de vos réponses,
Thierry.





"Charles ERNST" news: #
dim q As New ADODB.Command
q.ActiveConnection = CurrentProject.Connection
q.CommandType = adCmdStoredProc
q.CommandText = "[NOM DE VOTRE PROCEDURE]"
q.Parameters("@Du") = Me("Du")
q.Parameters("@Au") = Me("Au")
q.execute



"News Groups" 41deb591$0$29888$
Bonjour,
Je suis sous Access 2002 - Projet ADP / SQL Server 2000.

J'essaye d'utiliser la Méthode Execute de ADO :
°°° MaCommande.Execute intAffected, Array("Toto"), adExecuteNoRecords
Afin d'executer une Procédure stockée de type "UPDATE.." ayant un
parametre
d'entrée @Prenom
Or l'utilisation de "Array(..)" pour fournir les valeurs de paramétre
entraine une erreur d'éxécution !!!

Quelqu'un peut-il m'aider, ?
Est ce que le passage des paramétres par ce biais ne vaut que pour les
instruction SQL paramétrées
type "UPDATE ..WHERE (MonChamp = ?)" ?

Merci de votre et désolé si la demande est un peu brouillon..

Thierry.










Publicité
Poster une réponse
Anonyme