IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Nom de variable = nom de colonne sql


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    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
    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.

    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.

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    Bonjour

    tu peux utiliser la fonction execute

    de mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    execute(f.name & " = """ & RS("f.Name") & """")
    (sur les dernières versions de vbscript uniquement)


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " 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.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    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
    Par défaut
    É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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] nom de colonne variable dans la requête SQL
    Par tete-jaune dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/06/2014, 11h19
  2. Nom de variable = nom de fonction
    Par Julien DJU dans le forum MATLAB
    Réponses: 2
    Dernier message: 03/07/2007, 10h30
  3. transformation variable -> nom de variable
    Par Capucile dans le forum C#
    Réponses: 3
    Dernier message: 25/04/2007, 14h30
  4. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 18h02
  5. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo