Rechercher : dans
Par :

Procédure stockée en SQL Serveur

Dernière réponse le 3 avr 2008 à 11:42:35 denis, le 9 aoû 2004 à 22:03:51 
 Signaler ce message aux modérateurs

Help please

comment résoudre cette énigme ?

procédure stockée : create procedure test
as
declare @flag integer
update ... (c'est une requête update)
set @flag=1
select @flag
go

cette procédure fonctionne parfaitement en l'appelant depuis php ou avec le query analyser (comprendre la requête est exécutée et la valeur "1" est retournée)...

mais en VB, casse-tête... impossible de récupérer la valeur --> message d'erreur : impossible d'exécuter bla bla quand le recordset est fermé...

et mon code VB est :

set rset = cn.execute "test"
msgbox rset.fields(0).value

--> ça bloque sur cette dernière ligne...

C'est pour mon mémoire, je bloque depuis 4 jours et j'en ai MARRRRRRRE !

Please help

Denis

1

nicolasnicolas, le 20 fév 2007 à 17:23:57

Dans mon analysur de requete :


declare @plop int
select @plop

me retoure une colonne qui a comme nom "Aucun nom de colonne"


declare @plop int
select @plop as plop1

me retourne une colonne avec un nom.... (plop1)

Il se peux que le fait qu'il n'y a pas de nom a ta colonne gene ton recordset ....


C'est une piste ...

Répondre à nicolasnicolas

2

 lefaucheux, le 3 avr 2008 à 11:42:35

Si ton UPDATE s'est bien passé , il peut te retourner le nombre de lignes modifiées , non ?

faire une fonction appelé "exeRequete(byval requete as string) as integer" dans une classe

dim scConnect as sqlconnection = opensql()
dim objetSQLcommand as new sqlcommand
dim result as integer =0

objetSQLcommand.commandtext = requete
objetSQLcommand.connection = scconnect
result = objetSQLcommand.ExecuteNonQuery()
sqlClose(scConnect)
return result

requete etant "exec NomDeTaProcedure"

si ton result>1 alors l'update a eu lieu.

est ce que ca t'aide ?

Répondre à lefaucheux