OVH Cloud OVH Cloud

SQL Serveur 2000 + VB.NET

4 réponses
Avatar
Sebastien
Bonjour,

je cherche a executer une fonction ce trouvans sur mon SQL Serveur 2000
depuis VB.NET,

La fonction qui ce trouve sur le serveur :

use db_EE

go

ALTER FUNCTION FUN_AR_REF_COUNT(@AR_REF nvarchar(10)) RETURNS INT as
BEGIN
/* Prend en parametre le debut de l'article, et retourne le nombre */
RETURN (SELECT COUNT(cbMarq) FROM F_ARTICLE where AR_REF Like '' + @AR_REF
+ '%')
END


j'essaye de fair un cmd.ExecuteNonQuery() mais sa ne marche pas, est ce que
qq connaitrai la procedure a suivre , le but est de recevoir la valeur que
retourne cette fonction ?

merci
et bonne prog,
Sebastien,

4 réponses

Avatar
Julien Bakmezdjian [MS]
Bonjour,

SqlCommand.ExecuteScalar n'est-il pas plus adapté ?

Cordialement,

Julien Bakmezdjian


"Sebastien" a écrit dans le message de news:
42f1e05a$0$15051$
Bonjour,

je cherche a executer une fonction ce trouvans sur mon SQL Serveur 2000
depuis VB.NET,

La fonction qui ce trouve sur le serveur :

use db_EE

go

ALTER FUNCTION FUN_AR_REF_COUNT(@AR_REF nvarchar(10)) RETURNS INT as
BEGIN
/* Prend en parametre le debut de l'article, et retourne le nombre */
RETURN (SELECT COUNT(cbMarq) FROM F_ARTICLE where AR_REF Like '' + @AR_REF
+ '%')
END


j'essaye de fair un cmd.ExecuteNonQuery() mais sa ne marche pas, est ce
que qq connaitrai la procedure a suivre , le but est de recevoir la valeur
que retourne cette fonction ?

merci
et bonne prog,
Sebastien,



Avatar
Sébastien
Bonjour,

J'essaye de l'utiliser mais il me met une erreur ... je comprend pas ...
j'ai l'impression que sa marche pour des requettes sql mais pas pour des
fonctions ...

ou il y a un truc pour declarer les fonctions et retourner la valeur ?


ma fonction pour executer le code

Public Function ExecuteScalar(ByVal pCommandTexte As String) As Object

Dim lEnr As Data.OleDb.OleDbCommand

Try

If BaseDonne.State = ConnectionState.Closed Then BaseDonne.Open()

lEnr = New Data.OleDb.OleDbCommand(pCommandTexte, BaseDonne)

Return lEnr.ExecuteScalar()

Catch ex As Exception

'MsgBox(ex.Message)

Throw New Exception("Une erreur est survenu lors de l'execution de la
requette." & vbCrLf & vbCrLf & ex.Message)

Finally

lEnr = Nothing

End Try

End Function



et comment je l'apelle,

Dim lSql As String

lSql = "dbo.FUN_AR_REF_UNIQUE('" & pAR_REF & "')"

Return nsBaseSage.clBaseDonne.ExecuteScalar(lSql)



merci


a+
seb

"Julien Bakmezdjian [MS]" a écrit dans le
message de news:
Bonjour,

SqlCommand.ExecuteScalar n'est-il pas plus adapté ?

Cordialement,

Julien Bakmezdjian


"Sebastien" a écrit dans le message de news:
42f1e05a$0$15051$
Bonjour,

je cherche a executer une fonction ce trouvans sur mon SQL Serveur 2000
depuis VB.NET,

La fonction qui ce trouve sur le serveur :

use db_EE

go

ALTER FUNCTION FUN_AR_REF_COUNT(@AR_REF nvarchar(10)) RETURNS INT as
BEGIN
/* Prend en parametre le debut de l'article, et retourne le nombre */
RETURN (SELECT COUNT(cbMarq) FROM F_ARTICLE where AR_REF Like '' +
@AR_REF + '%')
END


j'essaye de fair un cmd.ExecuteNonQuery() mais sa ne marche pas, est ce
que qq connaitrai la procedure a suivre , le but est de recevoir la
valeur que retourne cette fonction ?

merci
et bonne prog,
Sebastien,







Avatar
Julien Bakmezdjian [MS]
Bonjour,

2 points sont à vérifier :
- Avez-vous bien positionner la propriété CommandType de lEnr à
CommandType.StoredProcedure ?
- Vous devez passer les paramètres de la procédure grâce à la propriété
Parameters de lEnr (le constructeur de lEnr contient simplement le nom de la
procédure).

Un exemple complet est disponible à cette adresse :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconusingstoredprocedureswithcommand.asp
(premier example VB.NET de la section OleDb).

Cordialement,

Julien Bakmezdjian

"Sébastien" <Aucun> a écrit dans le message de news:

Bonjour,

J'essaye de l'utiliser mais il me met une erreur ... je comprend pas ...
j'ai l'impression que sa marche pour des requettes sql mais pas pour des
fonctions ...

ou il y a un truc pour declarer les fonctions et retourner la valeur ?


ma fonction pour executer le code

Public Function ExecuteScalar(ByVal pCommandTexte As String) As Object

Dim lEnr As Data.OleDb.OleDbCommand

Try

If BaseDonne.State = ConnectionState.Closed Then BaseDonne.Open()

lEnr = New Data.OleDb.OleDbCommand(pCommandTexte, BaseDonne)

Return lEnr.ExecuteScalar()

Catch ex As Exception

'MsgBox(ex.Message)

Throw New Exception("Une erreur est survenu lors de l'execution de la
requette." & vbCrLf & vbCrLf & ex.Message)

Finally

lEnr = Nothing

End Try

End Function



et comment je l'apelle,

Dim lSql As String

lSql = "dbo.FUN_AR_REF_UNIQUE('" & pAR_REF & "')"

Return nsBaseSage.clBaseDonne.ExecuteScalar(lSql)



merci


a+
seb

"Julien Bakmezdjian [MS]" a écrit dans le
message de news:
Bonjour,

SqlCommand.ExecuteScalar n'est-il pas plus adapté ?

Cordialement,

Julien Bakmezdjian


"Sebastien" a écrit dans le message de news:
42f1e05a$0$15051$
Bonjour,

je cherche a executer une fonction ce trouvans sur mon SQL Serveur 2000
depuis VB.NET,

La fonction qui ce trouve sur le serveur :

use db_EE

go

ALTER FUNCTION FUN_AR_REF_COUNT(@AR_REF nvarchar(10)) RETURNS INT as
BEGIN
/* Prend en parametre le debut de l'article, et retourne le nombre */
RETURN (SELECT COUNT(cbMarq) FROM F_ARTICLE where AR_REF Like '' +
@AR_REF + '%')
END


j'essaye de fair un cmd.ExecuteNonQuery() mais sa ne marche pas, est ce
que qq connaitrai la procedure a suivre , le but est de recevoir la
valeur que retourne cette fonction ?

merci
et bonne prog,
Sebastien,











Avatar
Sebastien
merci je vais tester sa !

"Julien Bakmezdjian [MS]" a écrit dans le
message de news:
Bonjour,

2 points sont à vérifier :
- Avez-vous bien positionner la propriété CommandType de lEnr à
CommandType.StoredProcedure ?
- Vous devez passer les paramètres de la procédure grâce à la propriété
Parameters de lEnr (le constructeur de lEnr contient simplement le nom de
la procédure).

Un exemple complet est disponible à cette adresse :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconusingstoredprocedureswithcommand.asp
(premier example VB.NET de la section OleDb).

Cordialement,

Julien Bakmezdjian

"Sébastien" <Aucun> a écrit dans le message de news:

Bonjour,

J'essaye de l'utiliser mais il me met une erreur ... je comprend pas ...
j'ai l'impression que sa marche pour des requettes sql mais pas pour des
fonctions ...

ou il y a un truc pour declarer les fonctions et retourner la valeur ?


ma fonction pour executer le code

Public Function ExecuteScalar(ByVal pCommandTexte As String) As Object

Dim lEnr As Data.OleDb.OleDbCommand

Try

If BaseDonne.State = ConnectionState.Closed Then BaseDonne.Open()

lEnr = New Data.OleDb.OleDbCommand(pCommandTexte, BaseDonne)

Return lEnr.ExecuteScalar()

Catch ex As Exception

'MsgBox(ex.Message)

Throw New Exception("Une erreur est survenu lors de l'execution de la
requette." & vbCrLf & vbCrLf & ex.Message)

Finally

lEnr = Nothing

End Try

End Function



et comment je l'apelle,

Dim lSql As String

lSql = "dbo.FUN_AR_REF_UNIQUE('" & pAR_REF & "')"

Return nsBaseSage.clBaseDonne.ExecuteScalar(lSql)



merci


a+
seb

"Julien Bakmezdjian [MS]" a écrit dans le
message de news:
Bonjour,

SqlCommand.ExecuteScalar n'est-il pas plus adapté ?

Cordialement,

Julien Bakmezdjian


"Sebastien" a écrit dans le message de news:
42f1e05a$0$15051$
Bonjour,

je cherche a executer une fonction ce trouvans sur mon SQL Serveur
2000 depuis VB.NET,

La fonction qui ce trouve sur le serveur :

use db_EE

go

ALTER FUNCTION FUN_AR_REF_COUNT(@AR_REF nvarchar(10)) RETURNS INT as
BEGIN
/* Prend en parametre le debut de l'article, et retourne le nombre */
RETURN (SELECT COUNT(cbMarq) FROM F_ARTICLE where AR_REF Like '' +
@AR_REF + '%')
END


j'essaye de fair un cmd.ExecuteNonQuery() mais sa ne marche pas, est ce
que qq connaitrai la procedure a suivre , le but est de recevoir la
valeur que retourne cette fonction ?

merci
et bonne prog,
Sebastien,