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 !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Zoury
Salut!
regarde ce lien : http://groups.google.com/groups?selm=uVvyKfXGDHA.2964%40tk2msftngp13.phx.gbl
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Classique Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/ "dini6031" a écrit dans le message de news:
Bonsoir,
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
Salut!
regarde ce lien :
http://groups.google.com/groups?selm=uVvyKfXGDHA.2964%40tk2msftngp13.phx.gbl
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic Classique
Le français se refait une beauté, parlons en :
http://www.orthographe-recommandee.info/
"dini6031" <dini6031@yahoo.com> a écrit dans le message de
news:e3kfkAlfEHA.2544@TK2MSFTNGP10.phx.gbl...
Bonsoir,
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 !
regarde ce lien : http://groups.google.com/groups?selm=uVvyKfXGDHA.2964%40tk2msftngp13.phx.gbl
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Classique Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/ "dini6031" a écrit dans le message de news:
Bonsoir,
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
dini6031
Merci... Le code que tu montres ressemble à celui que j'ai vu sur la doc de VB hier... même résultat... j'ai essayé avec un paramètre de type returnvalue et un output... il n'en veut pas dès lors que j'utilise une "update query"... Et encore 1x, no prob pour site web (appel via php)...
Si tu as encore 1 proposition...?
Ce n'est qd même pas possible que cela soit pas possible... ?
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Classique Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/ "dini6031" a écrit dans le message de news: > Bonsoir, > > 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 > > > >
Merci...
Le code que tu montres ressemble à celui que j'ai vu sur la doc de VB
hier... même résultat... j'ai essayé avec un paramètre de type returnvalue
et un output... il n'en veut pas dès lors que j'utilise une "update
query"...
Et encore 1x, no prob pour site web (appel via php)...
Si tu as encore 1 proposition...?
Ce n'est qd même pas possible que cela soit pas possible... ?
Denis
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:eYft7UlfEHA.1652@TK2MSFTNGP09.phx.gbl...
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic Classique
Le français se refait une beauté, parlons en :
http://www.orthographe-recommandee.info/
"dini6031" <dini6031@yahoo.com> a écrit dans le message de
news:e3kfkAlfEHA.2544@TK2MSFTNGP10.phx.gbl...
> Bonsoir,
>
> 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
>
>
>
>
Merci... Le code que tu montres ressemble à celui que j'ai vu sur la doc de VB hier... même résultat... j'ai essayé avec un paramètre de type returnvalue et un output... il n'en veut pas dès lors que j'utilise une "update query"... Et encore 1x, no prob pour site web (appel via php)...
Si tu as encore 1 proposition...?
Ce n'est qd même pas possible que cela soit pas possible... ?
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Classique Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/ "dini6031" a écrit dans le message de news: > Bonsoir, > > 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 > > > >
Zoury
tu peux me montrer ce que tu as essayé ?
Le code que tu montres ressemble à celui que j'ai vu sur la doc de VB hier... même résultat...
tu veux dire que tu obtiens l'erreur sur le recordset fermé ?
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/
tu peux me montrer ce que tu as essayé ?
Le code que tu montres ressemble à celui que j'ai vu sur la doc de VB
hier... même résultat...
tu veux dire que tu obtiens l'erreur sur le recordset fermé ?
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
Le français se refait une beauté, parlons en :
http://www.orthographe-recommandee.info/
Le Mon, 09 Aug 2004 22:34:27 +0200, dini6031 a écrit :
Bonsoir,
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
Salut
tu ne préciees pas l'état de ta connexion au moment de remplir ton recordset (enfin .... d'executer ta commande comme a priori tu es sous VB6); si le recordset est fermé c'est que la connexion est fermée. Préfères le tout ligne de code que l'utilisation éventuelle des data environnement et autres fadaises qui en général mettaient bien la m.... dans VB6 :o))
'pour rafraichir l'état de la connexion if connex.windowsstate=1 then connex.close connex.open -- et traitement du recordset temporisation exploitationd des données --messagebox.show( ......
JP
Le Mon, 09 Aug 2004 22:34:27 +0200, dini6031 a écrit :
Bonsoir,
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
Salut
tu ne préciees pas l'état de ta connexion au moment de remplir ton
recordset (enfin .... d'executer ta commande comme a priori tu es sous
VB6); si le recordset est fermé c'est que la connexion est fermée.
Préfères le tout ligne de code que l'utilisation éventuelle des data
environnement et autres fadaises qui en général mettaient bien la m....
dans VB6 :o))
'pour rafraichir l'état de la connexion
if connex.windowsstate=1 then connex.close
connex.open
-- et traitement du recordset
temporisation
exploitationd des données --messagebox.show( ......
Le Mon, 09 Aug 2004 22:34:27 +0200, dini6031 a écrit :
Bonsoir,
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
Salut
tu ne préciees pas l'état de ta connexion au moment de remplir ton recordset (enfin .... d'executer ta commande comme a priori tu es sous VB6); si le recordset est fermé c'est que la connexion est fermée. Préfères le tout ligne de code que l'utilisation éventuelle des data environnement et autres fadaises qui en général mettaient bien la m.... dans VB6 :o))
'pour rafraichir l'état de la connexion if connex.windowsstate=1 then connex.close connex.open -- et traitement du recordset temporisation exploitationd des données --messagebox.show( ......
JP
dini6031
Merci msieur JP... voici le code "complet" et un mot d'explication...
j'ai abandonné l'idée du data environment... fonctionnait bien MAIS... si tu arrêtes le service SQL server, tu as un message popup (provient du driver oledb) et tu ne peux pas gérer cette "erreur" (plus de connexion) toi même... ce popup apparaît AVANT la gestion par "on error"... !
SI TU AS 1 IDEE... ? pour l'instant, j'ai "chipoté" : je lance mon traitement (sans update query), je récupère la valeur de retour dans le rset, et je lance une nouvelle procédure en donnant ce paramètre... mais c'est con... je vais devoir changer toutes mes procédures...
Voici mon code à tout hasard... (c'est pour mon mémoire, et j'ai perdu 3 jours à trouver l'origine du problème, plus 2 jours pour tenter de le contourner)
1) vérifier l'existence du user (quand il se connecte) --> si n'existe pas, @flag=0 2) vérifier que le password est correct --> @flag=1 3) vérifier que le user est "activé" (champ de type booléen) --> si pas activé @flag=2
4) si le password est mauvais, un champ (nombre d'essais) est incrémenté de 1 (requête "update") 5) si le user et password sont bons et que le user est activé, champ "nbre d'essais" est mis à 0
merci de m'avoir lu.
@bientôt j'espère Denis
create procedure CheckUserValid @Usr varchar(10), @Pwd varchar(10) as
declare @flag tinyint select @flag=count(*) from sql.usrs where [user_id] like @Usr if (@flag!=0) begin set @flag=0 select @flag=count(*) from sql.v_usrs where [user_id] like @Usr and [Password] like @Pwd if(@flag=0) update sql.usrs set try=try+1 where [user_id] like @Usr else begin set @flag=0 select @flag=count(*) from sql.usrs_web where [user_id] like @Usr and [Password] like @Pwd and Active=1 if (@flag=0) set @flag=2 else update sql.usrs set try=0 from sql.usrs where [user_id] like @Usr end end select @flag GO
et voici pour le code VB...
Private Sub Command1_Click() Dim rst As New ADODB.Recordset Dim strConnect As String Dim strSQL As String
Le Mon, 09 Aug 2004 22:34:27 +0200, dini6031 a écrit :
> Bonsoir, > > 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
Salut
tu ne préciees pas l'état de ta connexion au moment de remplir ton recordset (enfin .... d'executer ta commande comme a priori tu es sous VB6); si le recordset est fermé c'est que la connexion est fermée. Préfères le tout ligne de code que l'utilisation éventuelle des data environnement et autres fadaises qui en général mettaient bien la m.... dans VB6 :o))
'pour rafraichir l'état de la connexion if connex.windowsstate=1 then connex.close connex.open -- et traitement du recordset temporisation exploitationd des données --messagebox.show( ......
JP
Merci msieur JP...
voici le code "complet" et un mot d'explication...
j'ai abandonné l'idée du data environment... fonctionnait bien MAIS... si tu
arrêtes le service SQL server, tu as un message popup (provient du driver
oledb) et tu ne peux pas gérer cette "erreur" (plus de connexion) toi
même... ce popup apparaît AVANT la gestion par "on error"... !
SI TU AS 1 IDEE... ?
pour l'instant, j'ai "chipoté" : je lance mon traitement (sans update
query), je récupère la valeur de retour dans le rset, et je lance une
nouvelle procédure en donnant ce paramètre... mais c'est con... je vais
devoir changer toutes mes procédures...
Voici mon code à tout hasard... (c'est pour mon mémoire, et j'ai perdu 3
jours à trouver l'origine du problème, plus 2 jours pour tenter de le
contourner)
1) vérifier l'existence du user (quand il se connecte) --> si n'existe
pas, @flag=0
2) vérifier que le password est correct --> @flag=1
3) vérifier que le user est "activé" (champ de type booléen) --> si pas
activé @flag=2
4) si le password est mauvais, un champ (nombre d'essais) est incrémenté
de 1 (requête "update")
5) si le user et password sont bons et que le user est activé, champ
"nbre d'essais" est mis à 0
merci de m'avoir lu.
@bientôt j'espère
Denis
create procedure CheckUserValid @Usr varchar(10), @Pwd varchar(10)
as
declare @flag tinyint
select @flag=count(*) from sql.usrs where [user_id] like @Usr
if (@flag!=0)
begin
set @flag=0
select @flag=count(*) from sql.v_usrs where [user_id] like @Usr and
[Password] like @Pwd
if(@flag=0)
update sql.usrs set try=try+1 where [user_id] like @Usr
else
begin
set @flag=0
select @flag=count(*) from sql.usrs_web where [user_id] like @Usr
and [Password] like @Pwd and Active=1
if (@flag=0)
set @flag=2
else
update sql.usrs set try=0 from sql.usrs where [user_id] like
@Usr
end
end
select @flag
GO
et voici pour le code VB...
Private Sub Command1_Click()
Dim rst As New ADODB.Recordset
Dim strConnect As String
Dim strSQL As String
"jeanphicrosoft" <jeanphicrosoft@hotmail.com> a écrit dans le message de
news:pan.2004.08.10.17.10.33.476908@hotmail.com...
Le Mon, 09 Aug 2004 22:34:27 +0200, dini6031 a écrit :
> Bonsoir,
>
> 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
Salut
tu ne préciees pas l'état de ta connexion au moment de remplir ton
recordset (enfin .... d'executer ta commande comme a priori tu es sous
VB6); si le recordset est fermé c'est que la connexion est fermée.
Préfères le tout ligne de code que l'utilisation éventuelle des data
environnement et autres fadaises qui en général mettaient bien la m....
dans VB6 :o))
'pour rafraichir l'état de la connexion
if connex.windowsstate=1 then connex.close
connex.open
-- et traitement du recordset
temporisation
exploitationd des données --messagebox.show( ......
Merci msieur JP... voici le code "complet" et un mot d'explication...
j'ai abandonné l'idée du data environment... fonctionnait bien MAIS... si tu arrêtes le service SQL server, tu as un message popup (provient du driver oledb) et tu ne peux pas gérer cette "erreur" (plus de connexion) toi même... ce popup apparaît AVANT la gestion par "on error"... !
SI TU AS 1 IDEE... ? pour l'instant, j'ai "chipoté" : je lance mon traitement (sans update query), je récupère la valeur de retour dans le rset, et je lance une nouvelle procédure en donnant ce paramètre... mais c'est con... je vais devoir changer toutes mes procédures...
Voici mon code à tout hasard... (c'est pour mon mémoire, et j'ai perdu 3 jours à trouver l'origine du problème, plus 2 jours pour tenter de le contourner)
1) vérifier l'existence du user (quand il se connecte) --> si n'existe pas, @flag=0 2) vérifier que le password est correct --> @flag=1 3) vérifier que le user est "activé" (champ de type booléen) --> si pas activé @flag=2
4) si le password est mauvais, un champ (nombre d'essais) est incrémenté de 1 (requête "update") 5) si le user et password sont bons et que le user est activé, champ "nbre d'essais" est mis à 0
merci de m'avoir lu.
@bientôt j'espère Denis
create procedure CheckUserValid @Usr varchar(10), @Pwd varchar(10) as
declare @flag tinyint select @flag=count(*) from sql.usrs where [user_id] like @Usr if (@flag!=0) begin set @flag=0 select @flag=count(*) from sql.v_usrs where [user_id] like @Usr and [Password] like @Pwd if(@flag=0) update sql.usrs set try=try+1 where [user_id] like @Usr else begin set @flag=0 select @flag=count(*) from sql.usrs_web where [user_id] like @Usr and [Password] like @Pwd and Active=1 if (@flag=0) set @flag=2 else update sql.usrs set try=0 from sql.usrs where [user_id] like @Usr end end select @flag GO
et voici pour le code VB...
Private Sub Command1_Click() Dim rst As New ADODB.Recordset Dim strConnect As String Dim strSQL As String
Le Mon, 09 Aug 2004 22:34:27 +0200, dini6031 a écrit :
> Bonsoir, > > 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
Salut
tu ne préciees pas l'état de ta connexion au moment de remplir ton recordset (enfin .... d'executer ta commande comme a priori tu es sous VB6); si le recordset est fermé c'est que la connexion est fermée. Préfères le tout ligne de code que l'utilisation éventuelle des data environnement et autres fadaises qui en général mettaient bien la m.... dans VB6 :o))
'pour rafraichir l'état de la connexion if connex.windowsstate=1 then connex.close connex.open -- et traitement du recordset temporisation exploitationd des données --messagebox.show( ......