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

  FORUM HardWare.fr
  Programmation
  ASP

  Stockage d'objet dans l'objet Application

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Stockage d'objet dans l'objet Application

n°251825
MarvinLeRo​uge
In Colt We Trust
Posté le 22-11-2002 à 20:50:20  profilanswer
 

Salut,  
 
Voilà mon problème :  
1) Je fais une requète SQL  
2) Je stocke les résultats de cette requète dans des tableaux  
3) Je veux stockker ces tableaux dans l'objet Application  
 
C'est sur le 3 que j'ai un gros pb :  
- J'ai essayé en utilisant des objets Scripting.Dictionary définis dans le global.asa juste au dessus de mon code : ca marche pas (erreur inconnue). Et dans un bouquin que j'ai, ils semblent sous-entendre que l'objet Dictionary n'est pas fait pour marcher avec l'objet Application, mais ils n'entrent pas dans les détails.  
 
- J'ai essayé en créant un objet Array (en JS) et en faisant un Application ("X" ) = maVariableArray;. Ca marche pas non plus (l'objet Application n'accepte que les objets ayant le comportement apartment).  
 
 
Je cherche donc un moyen de stocker soit des tableaux simples, soit des tableaux associatifs, dans l'objet Application pour pouvoir les récupérer dans toutes mes pages.  
 
Pliz help


---------------
Dans le monde, il n'y a que 10 sortes de personnes : ceux qui savent compter en binaire et ceux qui ne savent pas
mood
Publicité
Posté le 22-11-2002 à 20:50:20  profilanswer
 

n°252800
MarvinLeRo​uge
In Colt We Trust
Posté le 25-11-2002 à 11:22:19  profilanswer
 

Voici mon code :
 
Comme promis, voici le code :
 

Citation :


<OBJECT RUNAT="SERVER" SCOPE="APPLICATION" ID="objTabMarque" PROGID="Scripting.Dictionary">
</OBJECT>
<OBJECT RUNAT="SERVER" SCOPE="APPLICATION" ID="objTabMoCidMarque" PROGID="Scripting.Dictionary">
</OBJECT>
<OBJECT RUNAT="SERVER" SCOPE="APPLICATION" ID="objTabMoCLibelleMoC" PROGID="Scripting.Dictionary">
</OBJECT>
 
<script language="JScript"  runat="Server">
function Application_OnStart ()
{
 // Ouvrir une connexion à la base
 var DBConn;
 DBConn = Server.CreateObject("ADODB.Connection" );
 DBConn.ConnectionTimeout = 15;
 DBConn.CommandTimeout = 30;
 DBConn.CursorLocation = 3;
 DBConn.Open("DSN=MonDSN;UID=MonUID;PASSWORD=MonPass" );
 
 // Requètes
 var sqlMarque, sqlMoC;
 sqlMarque = "SELECT Ma.idMarque, Ma.LibelleMarque ";
 sqlMarque+= "FROM Marque Ma, ModeleCourt MoC, Modele Mo, Type Ty, Vehicule Ve ";
 sqlMarque+= "WHERE Ve.CapID = Ty.CapID AND Ty.idModele = Mo.idModele ";
 sqlMarque+= "AND Mo.idModeleCourt = MoC.idModeleCourt AND MoC.idMarque = Ma.idMarque ";
 sqlMarque+= "ORDER BY LibelleMarque";
 
 sqlMoC = "SELECT MoC.idModeleCourt, MoC.LibelleModeleCourt, MoC.idMarque ";
 sqlMoC+= "FROM ModeleCourt MoC, Modele Mo, Type Ty, Vehicule Ve ";
 sqlMoC+= "WHERE Ve.CapID = Ty.CapID AND Ty.idModele = Mo.idModele AND Mo.idModeleCourt = MoC.idModeleCourt";
 
 // RecordSet
 var idMarque, idModeleCourt, libelleMarque, libelleModeleCourt;
 rsMarque = Server.CreateObject("ADODB.Recordset" );
 rsMarque.Open (sqlMarque, DBConn, 3, 3);
 while (!rsMarque.eof)
 {
  idMarque = parseInt (rsMarque ("idMarque" ));
  libelleMarque = new String (rsMarque ("libelleMarque" ));
  objTabMarque.Add (idMarque, libelleMarque);
  rsMarque.moveNext ();
 }
 rsMarque.close ();
 
 rsModeleCourt = Server.CreateObject("ADODB.Recordset" );
 rsModeleCourt.Open (sqlMoC, DBConn, 3, 3);
 while (!rsModeleCourt.eof)
 {
  idModeleCourt = parseInt (rsModeleCourt ("idModeleCourt" ));
  idMarque = parseInt (rsModeleCourt ("idMarque" ));
  libelleModeleCourt = new String (rsModeleCourt ("libelleModeleCourt" ));
  objTabMoCidMarque.Add (idModeleCourt, idMarque);  
  objTabMoCLibelleMoC.Add (idModeleCourt, libelleModeleCourt);  
  rsModeleCourt.moveNext ();
 }
 rsModeleCourt.close ();
}
</script>


---------------
Dans le monde, il n'y a que 10 sortes de personnes : ceux qui savent compter en binaire et ceux qui ne savent pas
n°252811
HappyHarry
Posté le 25-11-2002 à 11:38:06  profilanswer
 

et il est ou ton set session("blabla" )=tonobjet ?

n°252916
MarvinLeRo​uge
In Colt We Trust
Posté le 25-11-2002 à 14:09:33  profilanswer
 

Ce n'est pas un objet Session mais un objet Application.
 
Les 3 objets (de même type) sont définis dans les balises <object> au début du code.


---------------
Dans le monde, il n'y a que 10 sortes de personnes : ceux qui savent compter en binaire et ceux qui ne savent pas
n°253006
MarvinLeRo​uge
In Colt We Trust
Posté le 25-11-2002 à 15:28:10  profilanswer
 

Salut,
 
J'ai fait quelques tests supplémentaires :
 
1) J'ai essayé en convertissant les clés en String
Si on fait :
  idMarque = parseInt (rsMarque ("idMarque" ));
  libelleMarque = new String (rsMarque ("libelleMarque" ));
  objTabMarque.Add (idMarque, libelleMarque);
Ca provoque une "Erreur d'exécution inconnue" alors que si on fait:
  idMarque = new String (rsMarque ("idMarque" ));
  libelleMarque = new String (rsMarque ("libelleMarque" ));
  objTabMarque.Add (idMarque, libelleMarque);
Ca marche, donc apparemment, il faut bien des clés String.
 
2) Apparemment, ca remplit bien un objet Dictionary, mais il ne semble pas exister dans le contexte Application. Si on essaye d'accéder à Application ("objTabMarque" ), l'objet n'est pas défini.
  var test = objTabMarque.Keys ();
  var test2 = Application ("objTabMarque" ).Keys ();
 
La première ligne marche, pas la deuxième.


---------------
Dans le monde, il n'y a que 10 sortes de personnes : ceux qui savent compter en binaire et ceux qui ne savent pas
n°253195
MarvinLeRo​uge
In Colt We Trust
Posté le 25-11-2002 à 17:55:45  profilanswer
 

Salut,
 
J'ai eu une partie de la réponse sur un forum Microsoft : les objets ainsi définis sont des variables globales de portée Application, mais qui ne sont pas dans l'objet Application. Maintenant je peine pour afficher çà à partir d'un tableau dans le quel je récupère :
 
monTableau = objTabMarque.Keys().toArray();
 
Quand on affiche le contenu du tableau, la longueur est bonne, mais l'affichage donne vide.


---------------
Dans le monde, il n'y a que 10 sortes de personnes : ceux qui savent compter en binaire et ceux qui ne savent pas
n°253707
MarvinLeRo​uge
In Colt We Trust
Posté le 26-11-2002 à 09:03:56  profilanswer
 

Ca y est ca marche !!!  :D  
En fait il suffisait de faire un toString sur la clé et l'item avant l'ajout. Sinon il n'interprète plus l'objet String. :whistle:


---------------
Dans le monde, il n'y a que 10 sortes de personnes : ceux qui savent compter en binaire et ceux qui ne savent pas

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

  Stockage d'objet dans l'objet Application

 

Sujets relatifs
serialize, unserialize et programmation objetprob de compilation fichier objet/non objet
Probleme pour faire une application console avec delphi!Stockage de lignes d'un fichier dans un tableau
Envoie des coordonnées d'un objet avec SendDataQuel language pour ce type d' application intranet ????
un coup de main pour créer un objet ......[GTK]Accéder à un objet dans un conteneur...
Récupérer l'objet Page courant ds une classe[java] comment faire une application en plein ecran ?
Plus de sujets relatifs à : Stockage d'objet dans l'objet Application


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