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

Composants VCL Delphi Discussion :

Problème avec la méthode LoadFromFile de la propriété SQL d'un TADOQuery


Sujet :

Composants VCL Delphi

  1. #1
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 095
    Points : 1 531
    Points
    1 531
    Billets dans le blog
    5
    Par défaut Problème avec la méthode LoadFromFile de la propriété SQL d'un TADOQuery
    Salut à tous

    Voilà j'ai écrit le code suivant
    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
    20
    21
    22
     
    procedure TBDDPresimMainForm.BtnIdentifClick(Sender: TObject);
    var
      QID:TADOQuery;
    begin
      QID:= TADOQuery.Create(nil);
      QID.Connection:=LaConnection;
      if fileexists(CheminRequete+'Identification.txt') then
       begin
        QID.SQL.LoadFromFile(CheminRequete+'Identification.txt');
        QID.Parameters.GetParamList(Liste,LesParam);
        QID.Parameters.ParamByName('usr').Value:=EDNom.Text;
        QID.Parameters.ParamByName('psw').Value:=EDMotDePasse.Text;
        QID.Open;
        if not(QID.Eof) then
         begin
          ID:=QID.FieldValues['Prenom'];
          LesPages.ActivePage:=PageMaintenance;
         end;
       QID.Free;
     end;
    end;
    Le fichier "Identification.txt" contient la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      SELECT Prenom FROM t_utilisateurs WHERE Nom=:usr AND MotDePasse=MD5(:psw)
    Le programme me met une exception comme quoi le paramètre "usr" n'existe pas.
    Après avoir éliminé les sources d'erreurs évidentes (Genre le nom du fichier n'est pas bon), j'ai fini par examiner le contenu de la requête après l'avoir chargé. Et là elle contient tout un tas de caractères inaffichables.

    Quelqu'un a t'il une idée de pourquoi LoadFromFile fait n'importe quoi

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Après le chargement dynamique d'une requête je te conseil de faire un ParamCheck := True, comme cela tu es sûr qu'il cherchera à détecter les paramètres de la requête.

    Après tu peux faire un test en chargeant ton fichier dans une TStringList.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    procedure TBDDPresimMainForm.BtnIdentifClick(Sender: TObject);
    var
      QID:TADOQuery;
      lst : TStringList;
    begin
      QID:= TADOQuery.Create(nil);
      QID.Connection:=LaConnection;
      if fileexists(CheminRequete+'Identification.txt') then
       begin
        lst := TStringList.create;
        try
          lst.LoadFromFile(CheminRequete+'Identification.txt');
          QID.SQL.Text := lst.text;
        finally
          lst.free;
        end;
        QID.ParamCheck := True;
        QID.Parameters.GetParamList(Liste,LesParam);
        QID.Parameters.ParamByName('usr').Value:=EDNom.Text;
        QID.Parameters.ParamByName('psw').Value:=EDMotDePasse.Text;
        QID.Open;
        if not(QID.Eof) then
         begin
          ID:=QID.FieldValues['Prenom'];
          LesPages.ActivePage:=PageMaintenance;
         end;
       QID.Free;
     end;
    end;

  3. #3
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 095
    Points : 1 531
    Points
    1 531
    Billets dans le blog
    5
    Par défaut
    En passant par une TStringList ça fonctionne . Mais j'aimerais bien comprendre pourquoi SQL.LoadFromFile (ou SQL.LoadFromStream j'ai essayé aussi) ne fonctionnent pas

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

Discussions similaires

  1. [Runtime] Problème avec la méthode 'exec'
    Par regisba dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 25/08/2006, 13h36
  2. Problème avec la méthode request.form()
    Par sam.fet dans le forum ASP
    Réponses: 2
    Dernier message: 11/08/2006, 17h11
  3. [POO] Problème avec setInterval/méthodes d'écriture
    Par Lpu8er dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/07/2006, 15h37
  4. problème avec la méthode getElementById() dans Firefox
    Par matrouba dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/12/2005, 08h55
  5. Problème avec la méthode pack()
    Par tomca dans le forum Langage
    Réponses: 5
    Dernier message: 15/09/2005, 10h58

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