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 :

Récupérer le texte d'une query avec paramètres remplacés


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut Récupérer le texte d'une query avec paramètres remplacés
    bonjour,

    voila je fais une requete avec des parametres (ADOquery, MSSQL2000) sous delphi 2006 comme ceci

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO transacs ([Transaction Number]) VALUES (:_transac_id)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     _Query2.Parameters.ParamByName('_transac_id').value:=2;
    je voulais savoir s'il y avait moyen de recuperer la requete avec les parametres remplacés ? car si je fait _query2.text j'ai
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO transacs ([Transaction Number]) VALUES (:_transac_id)
    alors que j'aimerai recuperer :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO transacs ([Transaction Number]) VALUES (2)
    pour le sauvegarder dans un fichier texte....

    une idee ?

    merci

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Salut;

    utilise la propriétés Params, c'est une liste des paramètres passés à ta requête, elle a commence par zéro. Le paramètre 1 est Params[0] ainsi de suite.

    Bonne chance.

  3. #3
    Membre émérite Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO transacs ([Transaction Number]) VALUES (:_transac_id)
    Les commandes SQL sont parsées à partir de la propriété SQL (TStrings) du composant.
    Côté client, le composant se chargera de repérer les paramètres s'ils existent et de créer la liste des paramètres en conséquence.
    S'il y a des paramètres dans la requête, la requête va être préparée sur le serveur de telle sorte à recevoir un ou plusieurs paramètres.
    Cette méthode est interessante pour une insertion massive d'enregistrement car la requête est préparée une seule fois sur le serveur.

    Si la requête SQL est écrite de façon litérale comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO transacs ([Transaction Number]) VALUES (2)
    La préparation de la commande va demander plus de temps car l'instruction devra être interprétée en totalité à chaque fois contrairement à la requête paramétrée.
    En conclusion, la commande SQL (TStrings) va être interprêtée (Prepare) une seule fois sur le serveur sauf si son contenu est modifié par code.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    donc je peux pas recuperer la requete une fois les parametres remplacés ..?
    il vaut mieux que j'utilise pas de parametre et j'ecrive directementmes variable dans la requete...

  5. #5
    Membre émérite Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Par défaut
    donc je peux pas recuperer la requete une fois les parametres remplacés ..?
    - Oui

    il vaut mieux que j'utilise pas de parametre et j'ecrive directement mes variable dans la requete...
    - Oui, mais ce sera au détriment des performances, tout dépend du volume d'enregistrement concerné.

    Si c'est pour faire un log des commandes passées au serveur, j'utiliserais plutôt l'événement BeforeOpen du composant,
    et je récupérais les paramètres de la requête dans le fichier log, pour bien dissocier les process, ça se discute.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    dans le before open, qd je recupere le parametre, j'ai :date ou 30/10/2008 ?

Discussions similaires

  1. récupérer le texte d'une option d'un select
    Par taka10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/10/2006, 18h47
  2. [XSLT] Récupérer le texte d'une "documentation"
    Par ploxien dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/06/2006, 10h58
  3. Réponses: 3
    Dernier message: 11/05/2006, 17h47
  4. [Report] Ouvrir un report une query source paramétrée
    Par Julien Dufour dans le forum Access
    Réponses: 5
    Dernier message: 27/03/2006, 16h23
  5. test d'une requête avec paramètre
    Par hervé14670 dans le forum Access
    Réponses: 1
    Dernier message: 12/01/2006, 22h45

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