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

Bases de données Delphi Discussion :

requeteur avec parametres


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 173
    Points : 104
    Points
    104
    Par défaut requeteur avec parametres
    Bonjour,

    j'aimerais réaliser un requêteur en partant d'un fichier contenant une requête avec des paramètes. Je suis en Delphi 7 et j'utilise des ADO pour attaquer une base Oracle 10G.

    A la lecture de la requête contenue dans le fichier, je voudrais créer les contrôles correspondant aux paramètres

    exemple:
    Je charge le fichier contenant cette requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select slibelle "Nom"
    ,  Sprenom "prénom"
    from personne
    where datenaissance < :DateNaissance
      and taille > :TailleMin
    J'aimerais récupérer le nom des paramètres et leur type de façon à créer un DateTimePicker pour le premier et un edit pour le second.

    Si qqun a une idée ou à déjà réalisé quelquechose de semblable, merci d'avance de vos réponses

  2. #2
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    J'avais déjà réalisé un truc pareil.
    J'avais utilisé un fichier Ini pour enregistrer la requête et le type des paramètres. Ensuite je lis le fichier ini et
    - extrait la partie SQL
    - extrait la partie paramètre (nom et type)
    C'est lors de l'exécution que j'affiche une fenêtre qui vas afficher les contrôles pour la saisie des paramètres en fonction de leur type.
    On progresse .....

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut
    Andry, comment tu fait ça, le type de ta variable n'est pas écrit dans la requête.

    Comment tu arrives à detecter le type de données avec un champ un paramètre :TailleMin ?

    A moins de stocker chaque nom de champ avec son type, je ne vois pas comment faire. Et si c'est cette technique que tu as utilisé, ça veux dire qu'il faut mettre à jour le fichier stokant ces informations à chaque fois que tu modifie la structure de la base ! C'est une usine à gaz et pas très simple à maintenir !

  4. #4
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Pour chaque colonne de ton résultat tu récupères le TField.DataType .
    Jettes un coup d'oeil à ce petit soft qui utilise ADO / D7 et qui permet (entre autres) de visualiser les type des champs d'une base via ADO.
    http://sourceforge.net/projects/axbase/

  5. #5
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Citation Envoyé par popo Voir le message
    Andry, comment tu fait ça, le type de ta variable n'est pas écrit dans la requête.
    Comment tu arrives à détecter le type de données avec un champ un paramètre :TailleMin ?
    J'ai une unité qui permet de parser une requête et d'en récupérer les les champs, les conditions, les groupages, les paramètres, etc.
    Pour ce qui est du type de paramètre, c'est l'opérateur qui le sélectionne depuis un combo. Bien sur, le nom du paramètre et le type sont enregistrés dans le fichier INI

    Citation Envoyé par popo Voir le message
    A moins de stocker chaque nom de champ avec son type, je ne vois pas comment faire. Et si c'est cette technique que tu as utilisé, ça veux dire qu'il faut mettre à jour le fichier stokant ces informations à chaque fois que tu modifie la structure de la base ! C'est une usine à gaz et pas très simple à maintenir !
    Généralement, la structure de la base de donnée ne change pas tous les jours. En plus, dans mon créateur/interpréteur de requête, je fais juste afficher uniquement les vues (avec des noms de colonnes plus parlant) mais pas les tables.
    On progresse .....

  6. #6
    Membre régulier
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 173
    Points : 104
    Points
    104
    Par défaut
    Merci de la réponse.

    le TField.DataType reste à ftUnknown pour le paramètre.

    Je suis parti sur le même principe. Un fichier .param qui répertorie l'ensemble des paramètres, le texte que je veux afficher, le type de paramètre et d'autre infos pour aller chercher la valeur à partir d'un requete SQL.

    Il est clair qu'il ne faut pas que les types changent et qu'il faut que la personne qui fait les requêtes fournisse le fichier des parametres en même temps.

    MaReq.sql
    MaReq.param

    avec MaReq.sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select slibelle "Nom"
    ,  Sprenom "prénom"
    from personne
    where datenaissance < :DateNaissance
      and taille > :TailleMin
    et

    MaReq.param
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DateNaissance|Entrez la date de naissance|date|0
    TailleMin|Entrez la taille mini|Integer|0

  7. #7
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Le mien ressemble à ceci
    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
     
    [HEADER]
    Title=The Title
    Desc=Description
    ParamCount=1
    [SQL]
    S0=SELECT 
    S1=  CHAMPS1,
    S2=  CHAMPS2
    S3=FROM TABLE
    S4=WHERE
    S5=  CHAMPS1 >= :PARAM1
    S6=ORDER BY
    S7=  CHAMPS2 DESC
    [PARAMETERS]
    Name1=PARAM1
    Desc1=Description Of Param1
    Type1=Integer
    On progresse .....

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2005, 16h52
  2. [Runtime]Commande avec paramètre
    Par greg1602 dans le forum Général Java
    Réponses: 19
    Dernier message: 15/11/2005, 14h20
  3. fonction avec parametre
    Par donny dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/06/2005, 11h31
  4. Réponses: 6
    Dernier message: 23/05/2005, 08h33
  5. [XSL] xsl:sort avec parametre et condition
    Par elraton dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/01/2005, 20h59

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