Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

2 réponses
Avatar
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.

2 réponses

Avatar
Charles ERNST
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" a écrit dans le message de news:
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.






Avatar
News Groups
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" a écrit dans le message de
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" a écrit dans le message de news:
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.