Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2012, 01h47   #1
Invité de passage
 
Homme
Développeur Web
Inscription : janvier 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2012
Messages : 2
Points : 0
Points : 0
Par défaut Nom de variable = nom de colonne sql

Bonjour,

Je voudrais créer une petite procédure qui va chercher le nom des colonnes d'une table mssql et qui les utilise comme nom de variable.

Je m'explique.

Citation:
TableA
Ref, Nom, Prenom, Age, ...
1, Durand, Charles, 32
2, Dupont, Dominique, 26
3, Bontemps, Jacques, 46
...
Et je voudrais utiliser dans ma procédure asp des variables ayant le nom des colonnes sans bien sur devoir recopier le nom des colonnes.

Citation:
Nom =
Prenom =
Age =
...
Ci-dessous le concept mais bien sûr ça ne peut pas fonctionner comme cela.

Code :
1
2
3
4
5
6
Set RS=Server.Createobject("ADODB.Recordset")
RS.Open "SELECT * FROM TableA WHERE Ref ='"&Session("Ref")&"'", adoConn, 3, 3
for each f in RS.Fields
   f.Name = RS("f.Name")
next
RS.close:set RS=nothing

Resultat
Si Session("Ref") = 1 on devrait avoir
Nom = "Durand"
Prenom = "Charles"
Age = 32

Ceci permettrait d'assigner toutes les variables même en cas de table évolutive.

J'espère être assez clair. ;-)

Merci pour votre aide.

Eric
EricGardien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 08h26   #2
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 546
Points : 1 546
Bonjour

tu peux utiliser la fonction execute

de mémoire :
Code :
1
2
execute(f.name & " = """ & RS("f.Name") & """")
(sur les dernières versions de vbscript uniquement)
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 08h50   #3
Invité de passage
 
Homme
Développeur Web
Inscription : janvier 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2012
Messages : 2
Points : 0
Points : 0
Évidemment après avoir googlé, forumé,... pendant des heures ;-) c'est après avoir posté que j'ai trouvé une solution avec Dictionary.

Mais ta solution Roro06 est très intéressante car elle ne rallonge pas le nom des variables.

Plus qu'à savoir laquelle des deux occupe le moins de ressources et est la plus rapide. ;-)

Merci beaucoup.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[<%'Get values
 
Set RS=Server.Createobject("ADODB.Recordset")
RS.Open "SELECT * FROM TableA WHERE Ref='"&Session("Ref")&"'", connStr, 3, 3
Dim VarA
set VarA = Server.CreateObject("Scripting.Dictionary")
for each f in RS.Fields
	VarA.Add f.name, RS(f.name) 'solution dictionnary
	execute(f.name & " = """ & RS(f.Name) & """") 'solution roro06
next
 
Response.Write VarA.Item("Nom")
Response.Write VarA.Item("Prenom")
Response.write Nom
Response.write Prenom
 
RS.close:set RS=nothing
 
%>]

PS : j'avais mis des "" à RS(f.name) qui n'ont bien sur pas de raison d'être. Corrigé dans l'exemple.

Merci.
EricGardien est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h24.


 
 
 
 
Partenaires

Hébergement Web