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 :

[Débutant] Dbexpress / Trace SQL / Paramêtres absents


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut [Débutant] Dbexpress / Trace SQL / Paramêtres absents
    Bonjour,

    Lorsque j'execute des réquêtes SQL avec les composants Dbexpress, et que je pose une trace SQL ou que j'utilise le composant SQL Monitor, je n'arrive pas à récupperer les valeurs passées en paramêtres.

    J'obtiens des ?? en place des valeurs.

    Connaissez vous un moyen de contourner ce problème ?

    En vous remerciant.

    ---------------------------------------------------------------------
    Ma config * Delphi 7.1 Entreprise / SQL Serveur 2000 / Windows 2000
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Bonjour,

    Même si vous n'avez pas de solutions, avez vous le même phénomène lorsque
    vous mettez une trace SQL sur des requêtes paramêtrées avec Dbexpress?

    Merci
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 465
    Points : 241
    Points
    241
    Par défaut
    Salut, je ne sais pas si je peuts t'aider...
    mais qu'appelle tu une trace sur SQL ? Veuts tu faire un suivi de valeur ?
    a+

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Bonsoir,

    Habituellement, j'utilise le BDE pour accéder ma base de données SQLServer,
    et lorsque je veux contrôler mes requêtes ,j'utilise le générateur de profils de SQLServer en lançant une trace qui va intercepter tous les requêtes passer au moteur.
    Les requêtes apparaissent alors dans la trace avec les paramètres passés en clair.

    Pour des besoins lié au déploiement de mon développement en cours, j'ai besoin d'utiliser les composants Dbexpress.
    Et avec ces composants, je n'arrive pas à intercepter les paramètres passés aux requêtes.

    J'ai également essayer d'utiliser le composant (dbexpress) SQLMonitor, qui
    intercepte également les échanges avec le gestionnaire de la bdd, les paramètres n'apparaissent pas en clair également.

    Merci pour ton aide

    A+
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 465
    Points : 241
    Points
    241
    Par défaut
    Je ne pense pas pouvoir t'aider beaucoup...
    Néanmoins dans le livre de Paul Toth et Olivier Dahan, ils citent que :
    pour le TSQLMonitor , la lecture des évenements SQL s'effectue par la propriété TraceList.
    Et que TSQLMonitor enregistre son propre callback dans la propriété TraceCallbackEvent de l'objet TSQLConnection auquel il est relié.
    Si vous avez déjà affecté votre propre callback, TSQLMonitor ne fonctionnera pas...

    Il y a également un composant TIBSQLMonitor (donc sous interbase ou firebird..) qui trace également les requêtes exécutées.
    La sélection des ordres à tracer s'effectue dans ce cas au niveau du TIBDatabase par le biais de la propriété TraceFlags.

    *Citations tirés de l'ouvrage d'Olivier Dahan et Paul Toth qui ont sorti un excellent ouvrage sur Delphi7.

    Comme cité je ne t'aide pas des masses, mais si tu essayait à tout hasard de passer par les composants interbase ? et notament le TIBSQLMonitor qui serait peut être plus performant ?

    a+

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Bonsoir,

    Ma base étant une base SQL Server, je vais rester sur les composants Dbexpress.
    Je te remercie, pour tes recherches. Je vais creuser un peu du coté du SQL Monitor, mais pour le moment je vais construire mes requêtes sans paramêtres
    (je vais résoudre les valeurs avant la construction) afin que les requetes apparaissent en clair dans les traces.

    ainsi

    with TSQLDataSet.Create(nil) do
    begin
    try
    SQLConnection:=SQLConnectionMaBase;
    CommandType:=ctQuery;
    CommandText:='delete matable where champ_A < :Mon_Paramametre';
    Params[0].AsInteger:=Valeur_Integer;
    ExecSQL();
    finally
    free;
    end;
    end;

    deviendra

    with TSQLDataSet.Create(nil) do
    begin
    try
    SQLConnection:=SQLConnectionXTMSD;
    CommandType:=ctQuery;
    CommandText:='delete matable where champ_A <'+inttostr(Valeur_Integer);
    ExecSQL();
    finally
    free;
    end;
    end;

    Merci

    A+

    ----------------------------------------------------------------------
    Ma config * Delphi 7.1 Entreprise / SQL Serveur 2000 / Windows 2000
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

Discussions similaires

  1. Requête Sql Paramétrée [ Débutant ]
    Par bon4000 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/09/2007, 16h30
  2. [Débutant] DbExpress / "Erreur SQL : Erreur du mappage d'erreurs."
    Par pitango dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/05/2006, 09h53
  3. dbexpress : delete avec paramètre
    Par KRis dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/06/2005, 10h04
  4. [OUTIL]Outil de trace SQL entre 1 client et 1 serveur
    Par Laurent Dardenne dans le forum Oracle
    Réponses: 12
    Dernier message: 15/04/2005, 19h44
  5. [Débutant] Pb avec les paramètres dans lien dynamique
    Par hackwell69 dans le forum Struts 1
    Réponses: 2
    Dernier message: 21/02/2005, 11h33

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