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 :

DbExpress pb de praramètre


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 DbExpress pb de praramètre
    Bonjour,

    j'utilise des composants DBExpress (D7) pour me connecter à ma base FireBird.
    J'ai un SQLConnection, un SQLQuery, Un provider, un ClientDataset, un Datasource, un DbGrid, un edit et un bouton.
    Le tout est bien connecter à ma base.
    Si je met un Param avec une valeur dans l'inspecteur d'objet, cela fonctionne, par contre si j'essai de passer une valeur à mon Param, rien ne se passe.

    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
      TForm1 = class(TForm)
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        Edit1: TEdit;
        Button1: TButton;
        SQLQueryMvt: TSQLQuery;
        SQLConnection1: TSQLConnection;
        DataSetProvider1: TDataSetProvider;
        ClientDataSet1: TClientDataSet;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      SQLQueryMvt.Close;
      SQLQueryMvt.ParamByName('Id').AsInteger := StrToIntDef(Edit1.Text, 0);
      SQLQueryMvt.Open;
    end;
    Voici ma requête
    Code SQL : 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
     
    select
      MVT.N_IDMVTSTOCKMP,      
      typmvtstockmp.s_lbltypmvtstockmp,
      utilisateur.s_nomutilisateur,
      MVT.F_QTEMVTSTOCKMP,      
      MVT.D_MVTSTOCKMPLUNDISEMAINE,
      MVT.D_MVTSTOCKMPJMAH,     
      MVT.D_IJMAHMVTSTOCKMP,    
      MVT.F_QTEMPOULOTEPLAPRESMVT
    from mvtstockmp MVT
      join typmvtstockmp on typmvtstockmp.n_idtypmvtstockmp = MVT.n_idtypmvtstockmp
      join utilisateur on utilisateur.n_idutilisateur = MVT.n_idutilisateur
    where
      MVT.n_idstockmpmvtstockmp = :Id
    order by
      MVT.D_MVTSTOCKMPJMAH desc, MVT.N_IDMVTSTOCKMP desc

    pourquoi je n'arrive pas à faire fonctionner mes paramètres ?

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Essaye avec le ParamCheck de ta requête à True pour voir...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with SQLQueryMvt do
      begin
        Close;
        ParamByName('Id').AsInteger := StrToIntDef(Edit1.Text, 0);
        ParamCheck := True;
        Open;
      end;
    end;
    @+ Claudius

  3. #3
    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
    Non, j'ai déjà essayé mais pas mieux

  4. #4
    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
    Par contre, avec le code suivant, cela fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      ClientDataSet1.Active := False;
      SQLQueryMvt.ParambyName('Id').AsInteger := StrToIntDef(Edit1.Text, 0);
      ClientDataSet1.Active := True;

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

Discussions similaires

  1. [Kylix] dbExpress
    Par _dack_ dans le forum EDI
    Réponses: 1
    Dernier message: 02/04/2003, 23h53
  2. [Kylix] Problème de virgule/DBExpress
    Par jeanphy dans le forum EDI
    Réponses: 5
    Dernier message: 12/02/2003, 16h29
  3. [Kylix] kylix + dbexpress pour oracle!!
    Par RezzA dans le forum EDI
    Réponses: 6
    Dernier message: 14/01/2003, 18h33
  4. [Kylix] dbexpress & postgresql
    Par deniscm dans le forum EDI
    Réponses: 2
    Dernier message: 13/01/2003, 14h47
  5. [Kylix] dbexpress pour mysql4.0.1
    Par chico dans le forum EDI
    Réponses: 2
    Dernier message: 06/06/2002, 09h43

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