Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2035 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  Passage de paramètres à une procédure

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Passage de paramètres à une procédure

n°914890
Le Mage
Posté le 04-12-2004 à 20:14:11  profilanswer
 

Bonjour,
j'ai un problème de passage de paramètres dans un vbscript.
Dans ma page(principale), j'exécute une requête dont les résultats vont dans un recordset. Je regarde s'il est vide et sinon j'appelle une procédure qui affiche le contenu du recordset.
MAIS j'ai une erreur de type à l'appel de la fonction (alors qu'on peut pas préciser les types).
A l'aide !
 
Voilà la fonction qui est dans un .asp à part

Code :
  1. <% Language=VBScript %>
  2. <%
  3. Sub AfficherProduits(rs)
  4. ...
  5. End Sub


 
et mes appels

Code :
  1. set rs = Server.CreateObject("ADODB.Recordset" )
  2. requete = "select * from PRODUIT WHERE Id_cat = '"&Request.Form("code_cat" )&"' ORDER BY Titre_prod"
  3. rs.Open requete, oconn, 3, 3
  4. AfficherProduits(rs)

mood
Publicité
Posté le 04-12-2004 à 20:14:11  profilanswer
 

n°915446
bob007
Posté le 06-12-2004 à 09:10:23  profilanswer
 

heu je ne sais pas, essai avec
test = AfficherProduits(rs)  
juste pour voir

n°915480
bob007
Posté le 06-12-2004 à 10:41:46  profilanswer
 

bon heu je ne sais pas ce que j'avais ce matin, mais bon. Oublie ce que j'ai dit et essai avec:
AfficherProduits "rs"
 
Voila! ciaoo

n°915500
alien_nan
Posté le 06-12-2004 à 11:00:55  profilanswer
 

Essaies :
 
AfficherProduits rs
 
Il me semble qu'il ne faut pas mettre de parentheses lors d'un appel d'une fonction en ASP
 
:hello:

n°915551
bob007
Posté le 06-12-2004 à 11:48:08  profilanswer
 

tout à fait des doubles quotes pour une sub! pas de parenthèses!!!

n°915702
Le Mage
Posté le 06-12-2004 à 13:46:57  profilanswer
 

J'ai essayé avec et sans parenthèses => aucun changement...
Le problème vient peut ê du type recordset qui est particulier (passage par adobd), non ?

n°916152
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2004 à 18:42:33  profilanswer
 

call Afficher(rs)
 
C'est plus propre et plus rapide.

n°916153
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2004 à 18:43:12  profilanswer
 

Et vire le 3,3 histoire de voir (laisse l'ASP gérer son type de curseur dans un premier temps, c'est source de bug)
 
Sinon, t'as un message d'erreur ? C'est quoi ?

n°916222
Le Mage
Posté le 06-12-2004 à 19:26:38  profilanswer
 

le call marche pas non plus, je pense finalement si ct une erreur d'appel, ca mettrait pas une erreur de type...
 
 
Erreur d'exécution Microsoft VBScript erreur '800a000d'  
 
Type incompatible: 'AfficherProduits'
 
je vais essayer en virant le 3,3


Message édité par Le Mage le 06-12-2004 à 19:27:10
n°916225
Le Mage
Posté le 06-12-2004 à 19:30:19  profilanswer
 

sans le 3,3 ca marche pas non plus

mood
Publicité
Posté le 06-12-2004 à 19:30:19  profilanswer
 

n°916359
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2004 à 21:44:33  profilanswer
 

Poste ton code entier (du moins, les parties concernées)
 
Parceque sans plus d'infos, là je vois pas, et je pense que je ne suis pas le seul ;)

n°916371
geni@soft
Posté le 06-12-2004 à 21:51:00  profilanswer
 

heu essaye ca => Option Explicit  
10 contre 1 que tu trouveras ton erreur :):):):):)

n°916410
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2004 à 22:28:13  profilanswer
 

Il risque d'en trouver plus d'une :D

n°916424
Le Mage
Posté le 06-12-2004 à 22:43:06  profilanswer
 

apparemment le pb vient de la fonction, il me dit variable indéfinie à l'appel !
 
Inclusion :

Code :
  1. <% @Language=VBScript %>
  2. <% Option Explicit %>
  3. <% Server.Execute("fonctions.asp" ) %>


 
Création du recordset et appel de la fonction

Code :
  1. set oconn = Server.CreateObject("ADODB.Connection" )
  2. oconn.Open "alias", "nom", "pass"
  3. set rs = Server.CreateObject("ADODB.Recordset" )
  4. requete = "select * from PRODUIT WHERE sel_prod=1 ORDER BY Titre_prod"
  5. rs.MoveFirst()
  6. AfficherProduits(rs)


 
Contenu de "fonctions.asp"

Code :
  1. Deb. Fichier
  2. <%
  3. 'Le recordset ne doit pas être vide
  4. Sub AfficherProduits(rs)
  5. .
  6. .
  7. .
  8. End Sub
  9. %>
  10. Fin Fichier


 
Erreur :
Erreur d'exécution Microsoft VBScript erreur '800a01f4'  
 
Variable non définie: 'AfficherProduits'  
 
/iup2/util2/boutique/consultprod.asp, ligne 78

n°916427
Le Mage
Posté le 06-12-2004 à 22:44:09  profilanswer
 

Arjuna a écrit :

Il risque d'en trouver plus d'une :D


ce sont mes premières heures d'ASP, je fais des erreurs si je veux  :na:


Message édité par Le Mage le 06-12-2004 à 22:44:32
n°916430
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2004 à 22:46:31  profilanswer
 

Le Mage a écrit :

Création du recordset et appel de la fonction

Code :
  1. set oconn = Server.CreateObject("ADODB.Connection" )
  2. oconn.Open "alias", "nom", "pass"
  3. set rs = Server.CreateObject("ADODB.Recordset" )
  4. requete = "select * from PRODUIT WHERE sel_prod=1 ORDER BY Titre_prod"
  5. rs.MoveFirst()
  6. AfficherProduits(rs)




1) T'as pas mis le "rs.open requête, connection"
2) Le Server.Execute ça fait pas un include.
 
Un include ça se fait comme ça :
 
<!-- #include file="fonctions.asp" -->

n°916431
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2004 à 22:47:19  profilanswer
 

Le Mage a écrit :

ce sont mes premières heures d'ASP, je fais des erreurs si je veux  :na:


Nan, mais c'est qu'avec le "Option Explicit", il faut faire un Dim de TOUTES les variables.
 
Bon, je retourne à mon avion, je vais finir par me perdre à débuguer de l'ASP en phase d'approche d'un aéroport :D

n°916433
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2004 à 22:49:49  profilanswer
 

C'est le cas, je me suis paumé :D
 
Pis je suis dans les nuages, c'est pas terrible pour repérer où il est :D
 
Heureusement qu'il y a des balises radio pour se repérer :)
 
Vive l'ILS, je suis enfin retourné dans le cône d'approche :) Reste plus qu'à poser la bête :bounce:
 
PS: c'était totalement hors sujet :D


Message édité par Arjuna le 06-12-2004 à 22:51:42
n°916435
Le Mage
Posté le 06-12-2004 à 22:51:00  profilanswer
 

la requete g oublié de la recopier mais l'include c possible que ca aide.
Merci.
Ca fait quoi alors execute() ?
Je l'ai utilisée pr inclure de l'html ca a marché...


Message édité par Le Mage le 06-12-2004 à 22:52:26
n°916438
Le Mage
Posté le 06-12-2004 à 22:55:47  profilanswer
 

Ca marche avec les bonnes inclusions !
1000 mercis :jap: et -1000 mercis aux profs qui expliquent pas tout


Message édité par Le Mage le 06-12-2004 à 22:56:33
n°916442
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2004 à 23:00:41  profilanswer
 

Le Execute, ça sert à... Exécuter le contenu d'une autre page, mais de façon "remote". Les variables ne sont pas partagées, sauf cette du serveur (Application et Session) il me semble. C'est à vérifier dans la MSDN. En tout cas, je ne m'en suis jamais servi (de là à dire que ça sert à rien... :D)

n°916443
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2004 à 23:01:50  profilanswer
 

http://www.devguru.com/Technologie [...] ecute.html
 
Ils ne parlent pas du scope des variables. Pour moi, c'est séparé, à moins que celà ne concerne que les fonctions.
En tout cas, comme ils disent, ça execute bêtement la page en question, puis ça la quitte. Un peu à la façon d'une fonction, lorsqu'on l'appel, tout ce qui a été déclaré à l'intérieur de cette page doit être perdu. Je ne sais pas si ça affecte les variables globales par contre.
En tout cas, comme si en C++ tu crées un objet à l'intérieur d'une fonction, l'objet est perdu quand tu en ressorts. Pour les fonctions, ça semble pareil.


Message édité par Arjuna le 06-12-2004 à 23:04:44
n°916444
Le Mage
Posté le 06-12-2004 à 23:02:58  profilanswer
 

d'accord!
moi je cherchais juste une inclusion :)

n°916696
dassal
Posté le 07-12-2004 à 09:44:08  profilanswer
 

eh t'as pas oublier un include de la page fonction.asp dans consultprod.asp

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  Passage de paramètres à une procédure

 

Sujets relatifs
passage de cmd a popen[WMI] Acceder aux parametres hardware d'un PC
Modifier le curseur de la souris lors du passage entre 2 frames?Passage d'une variable d'un serveur à un autre ??
Passage de variables VB vers C++[JAVA ]Impression automatique avec paramètres spéciaux
appel procedure ac tableauVotre avis sur la façon de faire: passage de variable
url et passage de parametreAppel procedure stockee avec websphere
Plus de sujets relatifs à : Passage de paramètres à une procédure


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR