OVH Cloud OVH Cloud

question ADO ?

1 réponse
Avatar
jeorme
Bonjour,
Je ne sais pas si c'est le bon forum pour mon souci

Voici deux code qui lance une PS sur sqlserver à partir d'une page web.
Ex1:

strConnexion = "Provider=SQLOLEDB.1;Initial Catalog=MaBase;Data
Source=MonServeur"
Set objConn = server.createobject("ADODB.Connection")
Set objCommand = server.createobject("ADODB.command")

objConn.open strConnexion, "MonLogin", "MonPassword"

objCommand.ActiveConnection = objConn
objCommand.CommandType = adCmdStoredProc
objCommand.CommandText = "maj_comp"
objCommand.Parameters.Append objCommand.CreateParameter("@code", adChar,
adParamInput,3 , "235")
objCommand.Parameters.Append objCommand.CreateParameter("@employe", adChar,
adParamInput,6, "045771")
objCommand.Execute
objConn.close
set objConn = nothing
set objcommand = nothing

Ca ne marche pas !!!!


Ex 2:

strConnexion = "Provider=SQLOLEDB.1;Initial Catalog=MaBase;Data
Source=MonServeur"
Set objConn = server.createobject("ADODB.Connection")

employe = "045771"
code = "234"
chsql = "execute maj_comp @code = '" &code& "', @employe = '"& employe &"' "

objConn.open strConnexion, "sa", ""
objconn.execute chsql
objConn.close
set objConn = nothing

Ca ça marche !!!

Pourquoi avoir un objet command si ça marche pas ?


Merci à tous

1 réponse

Avatar
Yanos El Guerilleros
Salut,

Une procédure stockée doit toujours avoir comme premier paramètre
"return_value" ("@return_value" sur SQL2K) qui est la valeur de retour. Ca
doit ressembler à ca si a mémoire est bonne

objCommand.Parameters.Append objCommand.CreateParameter("return_value",
adVarInteger, adParamReturnValue,4 , 0)

Mais avec MSSQL on peut utiliser la rafraichissement des paramètres d'une
commande

objCommand.Parameters.Refresh

provoque la création de TOUS les paramètres d'après la définition de la
procédure stockée, c'est un peu plus lent car ADO doit interroger la base
avant.

A++

Yanos

jeorme wrote:
Bonjour,
Je ne sais pas si c'est le bon forum pour mon souci

Voici deux code qui lance une PS sur sqlserver à partir d'une page
web. Ex1:

strConnexion = "Provider=SQLOLEDB.1;Initial Catalog=MaBase;Data
Source=MonServeur"
Set objConn = server.createobject("ADODB.Connection")
Set objCommand = server.createobject("ADODB.command")

objConn.open strConnexion, "MonLogin", "MonPassword"

objCommand.ActiveConnection = objConn
objCommand.CommandType = adCmdStoredProc
objCommand.CommandText = "maj_comp"
objCommand.Parameters.Append objCommand.CreateParameter("@code",
adChar, adParamInput,3 , "235")
objCommand.Parameters.Append objCommand.CreateParameter("@employe",
adChar, adParamInput,6, "045771")
objCommand.Execute
objConn.close
set objConn = nothing
set objcommand = nothing

Ca ne marche pas !!!!


Ex 2:

strConnexion = "Provider=SQLOLEDB.1;Initial Catalog=MaBase;Data
Source=MonServeur"
Set objConn = server.createobject("ADODB.Connection")

employe = "045771"
code = "234"
chsql = "execute maj_comp @code = '" &code& "', @employe = '"&
employe &"' "

objConn.open strConnexion, "sa", ""
objconn.execute chsql
objConn.close
set objConn = nothing

Ca ça marche !!!

Pourquoi avoir un objet command si ça marche pas ?


Merci à tous