OVH Cloud OVH Cloud

Procedures stockées

3 réponses
Avatar
gwamagui
salut =E0 tous,

Voici mon pb en VB.

Comment ex=E9cuter depuis une application VB une proc=E9dure=20
stock=E9e (sql 2000), en lui passant des param=E8tres (2) et=20
en recup=E9rant une donn=E9e (format=E9e dans la proc=E9dure=20
stock=E9e).

Bonne Journ=E9e.

3 réponses

Avatar
Patrice Lamarche
Bonjour,

voici un exemple de code

Dim oConn As Connection
Dim oCmd As Command
Dim rs As Recordset

Set rs = New Recordset
Set oConn = New Connection
Set oCmd = New Command

oConn.Open "DSN=LOCALHOST"

oCmd.CommandText = "NomDeMaStoreProc"
oCmd.CommandType = adCmdStoredProc
oCmd.Parameters.Append oCmd.CreateParameter("Param1", adVarChar,
adParamInput, 50, "Value")
oCmd.Parameters.Append oCmd.CreateParameter("Param2", adVarChar,
adParamInput, 50, "Value")
Set oCmd.ActiveConnection = oConn
Set rs = oCmd.Execute()


Cordialement

Patrice
"gwamagui" wrote in message
news:0a3f01c35c12$2fec2e00$
salut à tous,

Voici mon pb en VB.

Comment exécuter depuis une application VB une procédure
stockée (sql 2000), en lui passant des paramètres (2) et
en recupérant une donnée (formatée dans la procédure
stockée).

Bonne Journée.
Avatar
Patrice Lamarche
Bonjour,

dans le type de parametre tu peux mettre adParamOutput pour spécifié un
parametre de sortie

Dim strValue as string

oCmd.Parameters.Append oCmd.CreateParameter("Param3",
adVarChar,adParamOutput, 50, strValue)

Cordialement,

Patrice

"gwamagui" wrote in message
news:9a7001c35c1b$77280650$
Merci,

Oui mais comment déclarer et récupérer le(s) paramètre(s)
de sortie ?
- code coté VB
- code coté SQL S 2000


-----Message d'origine-----
Bonjour,

voici un exemple de code

Dim oConn As Connection
Dim oCmd As Command
Dim rs As Recordset

Set rs = New Recordset
Set oConn = New Connection
Set oCmd = New Command

oConn.Open "DSN=LOCALHOST"

oCmd.CommandText = "NomDeMaStoreProc"
oCmd.CommandType = adCmdStoredProc
oCmd.Parameters.Append oCmd.CreateParameter("Param1",


adVarChar,
adParamInput, 50, "Value")
oCmd.Parameters.Append oCmd.CreateParameter("Param2",


adVarChar,
adParamInput, 50, "Value")
Set oCmd.ActiveConnection = oConn
Set rs = oCmd.Execute()


Cordialement

Patrice
"gwamagui" wrote in message
news:0a3f01c35c12$2fec2e00$
salut à tous,

Voici mon pb en VB.

Comment exécuter depuis une application VB une procédure
stockée (sql 2000), en lui passant des paramètres (2) et
en recupérant une donnée (formatée dans la procédure
stockée).

Bonne Journée.


.



Avatar
gwamagui
He oui je vais une fois de plus vous solliciter,

Mon paramètre me rtourne 0

voici mon code coté VB:
' 'Les paramètres sont dans la collection
Parameters de l'objet Command :
' Dim oParam As ADODB.Parameter
' Dim oRs As ADODB.Recordset
' Dim Cmd As ADODB.Command
' Set Cmd = New ADODB.Command
' Cmd.CommandType = adCmdStoredProc
' 'Cmd.CommandText
= "NumeroFactureComptant" 'NumeroFactures
' Cmd.CommandText = "NumeroFactures"
' Set Cmd.ActiveConnection = connMemento 'cnn
est un objet Adodb.Connection
' Dim lRetour As String
'
' 'Définition du paramètre retournant la valeur
renvoyée par la procédure stockée
' Set oParam = Cmd.CreateParameter
("RETURN_VALUE", adVarChar, adParamReturnValue, 50,
lRetour)
' Cmd.Parameters.Append oParam
'
' Set oParam = Cmd.CreateParameter("IFacture",
adInteger, adParamInput, 4, 2)
' Cmd.Parameters.Append oParam
'
' 'Execution de la procédure stockée
' Set oRs = Cmd.Execute
' sNumFacture = lRetour
'
' 'Affichage de la valeur renvoyée par la
procédure stockée
' MsgBox Cmd.Parameters.Item
("RETURN_VALUE").Value
' MsgBox "Facture N°: " & sNumFacture

du cote SQL Serveur 2000:

CREATE PROCEDURE NumeroFactureComptant AS

Declare Mon_Curseur scroll cursor for
Select IdFacture FROM FACTURE WHERE IDTYPEVENTE = 2
Open Mon_Curseur
Declare @NombreFacture int
Declare @iIdFacture int
Declare @sNumFacture varchar
Set @NombreFacture = 0
Fetch Next From Mon_curseur Into @iIdFacture
While (@@Fetch_Status=0)

BEGIN
Set @NombreFacture = @NombreFacture + 1
--@@ROWCOUNT
Fetch Next From Mon_curseur Into @iIdFacture
End

--Set @NombreFacture = @@ROWCOUNT + 1

Declare @MyStr varchar
Declare @AnneeCours varchar

/*'Formatage du nombre, récupération du dernier
chiffre de l'année en cours SUBSTRING */
Set @AnneeCours = Right(GetDate(), 1)
-- Set @AnneeCours =' 3'
--Set @AnneeCours = SUBSTRING(DateTime, 7, 1)
--Set @AnneeCours = SUBSTRING(DATEPART(yy,Date),2, 1)
--Set @AnneeCours = Right(DATEPART(yy,'03/12/2003'),1)


-- Set @MyStr = (@NombreFacture, "0####")
if (len(@NombreFacture) = 1)
begin
Set @MyStr = '0000' + CAST(@NombreFacture as
varchar)
end
Set @sNumFacture = 'M' + @AnneeCours + @MyStr

RETURN @sNumFacture

Error_Exit:
RETURN 'Toto'

Close Mon_Curseur
Deallocate Mon_Curseur
GO

OU SE SITUE LE BUG ??????

Merci



-----Message d'origine-----
Bonjour,

dans le type de parametre tu peux mettre


adParamOutput pour spécifié un
parametre de sortie

Dim strValue as string

oCmd.Parameters.Append oCmd.CreateParameter("Param3",
adVarChar,adParamOutput, 50, strValue)

Cordialement,

Patrice

"gwamagui" wrote in message
news:9a7001c35c1b$77280650$
Merci,

Oui mais comment déclarer et récupérer le(s) paramètre(s)
de sortie ?
- code coté VB
- code coté SQL S 2000


-----Message d'origine-----
Bonjour,

voici un exemple de code

Dim oConn As Connection
Dim oCmd As Command
Dim rs As Recordset

Set rs = New Recordset
Set oConn = New Connection
Set oCmd = New Command

oConn.Open "DSN=LOCALHOST"

oCmd.CommandText = "NomDeMaStoreProc"
oCmd.CommandType = adCmdStoredProc
oCmd.Parameters.Append oCmd.CreateParameter("Param1",


adVarChar,
adParamInput, 50, "Value")
oCmd.Parameters.Append oCmd.CreateParameter("Param2",


adVarChar,
adParamInput, 50, "Value")
Set oCmd.ActiveConnection = oConn
Set rs = oCmd.Execute()


Cordialement

Patrice
"gwamagui" wrote in message
news:0a3f01c35c12$2fec2e00$
salut à tous,

Voici mon pb en VB.

Comment exécuter depuis une application VB une procédure
stockée (sql 2000), en lui passant des paramètres (2) et
en recupérant une donnée (formatée dans la procédure
stockée).

Bonne Journée.


.





.