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 :

Recherche dans un volume dans un ado connection


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 13
    Points
    13
    Par défaut Recherche dans un volume dans un ado connection
    bonjours voici mon probleme
    j'ai un volume dans un edit1
    j'ai une adoconnection, adotable et data source et db grille bien configurer dans lequel j'ai ma base de donnee .
    Mon probleme c'est que le volume correspondant a mon edit1 n'est pas une valeur exacte donc si je la cherche via un if adotable1.locate('volume1',edit1)elle ne sera pas trouver .
    j'aimerais trouver une commande qui me permet de m'arreter au volume inferieur le plus proche de mon edit1 dans ma base de donner qui me renverra dans un edit2
    merci de votre aide

  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
    Salut.
    Utilise une requête SQL avec un caractère joker genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select volume1 from TableVolume where volume1 like 'VOL%'
    A+
    On progresse .....

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Andry Voir le message
    Salut.
    Utilise une requête SQL avec un caractère joker genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select volume1 from TableVolume where volume1 like 'VOL%'
    A+
    je comprend pas quelle composants utiliser pour une requête sql svp ?

  4. #4
    Membre averti Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 392
    Points
    392
    Par défaut
    Citation Envoyé par moldock Voir le message
    je comprend pas quelle composants utiliser pour une requête sql svp ?
    Un TADOQuery posé sur ta fiche, par ex. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var AdoQry : TADOQuery;
     
    With AdoQry do
      begin
        // tu fermes le TADOQuery
        Close; 
        // tu affectes ta "question" à AdoQry.SQL
        SQL.Text := 'SELECT volume1 FROM TableVolume WHERE volume1 LIKE :Pvolume1';
        // tu renseignes le paramètre variable dépendant de ton Edit1 avec le caractère générique % comme te l'a indiqué Andry
        ParamCheck := True;
        Parameters.ParamByName('Pvolume1').Value := Edit1.Text + '%';
        // tu ouvres / lances ta requète
        active := True;
      end;
    Il te faut ensuite récupérer la réponse et l'affecter à ta DBGrid déjà bien configurée

    Il te faut "initialiser" ton TADOQuery avant de t'en servir avec une chaine de connexion soit en brut dans l'inspecteur d'objet (en le reliant par exemple à ton TADOConnection) soit par code dans le OnCreate de ta form.

    Le code que je t'ai indiqué peut (doit ?) être placé dans une procedure Button1Click si tu souhaites que la requête soit exectutée lors d'un clic sur Button1.

    Il faut ensuite récupérer les résultats de la requête avec un dataset ...

    NB : je suppose dans la réponse que ton champ s'appelle volume1 et la valeur à rechercher est dans ton Edit1.
    "Je n'ai jamais rencontré d'homme si ignorant qu'il n'eut quelque chose à m'apprendre."
    Galilée

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 13
    Points
    13
    Par défaut message erreur sql missing ?
    Citation Envoyé par archonte Voir le message
    Un TADOQuery posé sur ta fiche, par ex. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var AdoQry : TADOQuery;
     
    With AdoQry do
      begin
        // tu fermes le TADOQuery
        Close; 
        // tu affectes ta "question" à AdoQry.SQL
        SQL.Text := 'SELECT volume1 FROM TableVolume WHERE volume1 LIKE :Pvolume1';
        // tu renseignes le paramètre variable dépendant de ton Edit1 avec le caractère générique % comme te l'a indiqué Andry
        ParamCheck := True;
        Parameters.ParamByName('Pvolume1').Value := Edit1.Text + '%';
        // tu ouvres / lances ta requète
        active := True;
      end;
    Il te faut ensuite récupérer la réponse et l'affecter à ta DBGrid déjà bien configurée

    Il te faut "initialiser" ton TADOQuery avant de t'en servir avec une chaine de connexion soit en brut dans l'inspecteur d'objet (en le reliant par exemple à ton TADOConnection) soit par code dans le OnCreate de ta form.

    Le code que je t'ai indiqué peut (doit ?) être placé dans une procedure Button1Click si tu souhaites que la requête soit exectutée lors d'un clic sur Button1.

    Il faut ensuite récupérer les résultats de la requête avec un dataset ...

    NB : je suppose dans la réponse que ton champ s'appelle volume1 et la valeur à rechercher est dans ton Edit1.


    j'ai fait tous ce qui est marquer et j'obtien un message d'erreur sgl missing lorsque j'essaye d'activer le adoquery a true
    De plus mes données reel son
    1 le nom de ma table est volumetotalbac
    2 le volume que je recherche dans ma table est edit1.text
    3 la colone dans lequel s'effectue ma recherche se nomme volume1
    quequ'un pourait il m'aidait a compiller avec mes donnee svp en m'indiquant svp la procedure complete avec les composans a metre sur la fiche et les manipe a faire
    merci encore .
    j'ai regarder des tutaux tres difficile .

  6. #6
    Membre averti Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 392
    Points
    392
    Par défaut
    Indique nous ton code pour que l'on puisse t'aider ...
    Ceci dit : le code indiqué doit être mis dans le OnClick d'un bouton puisque c'est l'utilisateur qui renseigne d'abord le Edit1 puis lance la recherche.

    Je pense que tu dois mettre la propriété Active de ton TADOQuery à false dans l'inspecteur d'objet. Tu la fais passer à true comme indiqué à l'execution.

    j'ai fait tous ce qui est marquer et j'obtien un message d'erreur sgl missing lorsque j'essaye d'activer le adoquery a true
    De plus mes données reel son
    1 le nom de ma table est volumetotalbac
    2 le volume que je recherche dans ma table est edit1.text
    3 la colone dans lequel s'effectue ma recherche se nomme volume1
    quequ'un pourait il m'aidait a compiller avec mes donnee svp en m'indiquant svp la procedure complete avec les composans a metre sur la fiche et les manipe a faire
    merci encore .
    j'ai regarder des tutaux tres difficile .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL.Text := 'SELECT * FROM volumetotalbac WHERE volume1 LIKE :Pvolume1';
    Le signe * te récupère tous les champs de tes enregistrements pour lesquels volume1 vaut :Pvolume1, si tu souhaites ne récupérer que le nom de l'artiste et une date, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL.Text := 'SELECT artiste, date_publication FROM volumetotalbac WHERE volume1 LIKE :Pvolume1';
    "Je n'ai jamais rencontré d'homme si ignorant qu'il n'eut quelque chose à m'apprendre."
    Galilée

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 13
    Points
    13
    Par défaut j'obtien tout un tas d'erreur de compillation voici mon code
    Citation Envoyé par archonte Voir le message
    Indique nous ton code pour que l'on puisse t'aider ...
    Ceci dit : le code indiqué doit être mis dans le OnClick d'un bouton puisque c'est l'utilisateur qui renseigne d'abord le Edit1 puis lance la recherche.

    Je pense que tu dois mettre la propriété Active de ton TADOQuery à false dans l'inspecteur d'objet. Tu la fais passer à true comme indiqué à l'execution.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL.Text := 'SELECT * FROM volumetotalbac WHERE volume1 LIKE :Pvolume1';
    Le signe * te récupère tous les champs de tes enregistrements pour lesquels volume1 vaut volume1, si tu souhaites ne récupérer que le nom de l'artiste et une date, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL.Text := 'SELECT artiste, date_publication FROM volumetotalbac WHERE volume1 LIKE :Pvolume1';

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 13
    Points
    13
    Par défaut j'obtien tout un tas d'erreur de compillation voici mon code
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, DB, ADODB, Mask, DBCtrls, Grids, DBGrids;

    type
    TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBEdit1: TDBEdit;
    ADOConnection1: TADOConnection;
    Edit1: TEdit;
    Button1: TButton;
    ADOTable1: TADOTable;
    ADOQuery1: TADOQuery;
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;
    AdoQry : TADOQuery;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    With AdoQry do
    begin
    // tu fermes le TADOQuery
    Close;
    SQL.Text := 'SELECT * FROM volumetotalbac WHERE volume1 LIKE volume1';
    ParamCheck := True;
    Parameters.ParamByName('Pvolume1').Value := Edit1.Text + '%';
    // tu ouvres / lances ta requète
    active := True;

    end;

    end.

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/06/2012, 16h13
  2. Une image dans un Jpanel dans un Jpanel dans un Jframe
    Par ThomasH dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 09/12/2009, 20h23
  3. Réponses: 2
    Dernier message: 07/09/2009, 16h12
  4. Réponses: 1
    Dernier message: 03/09/2009, 15h33
  5. Recherche d'un String dans un String ?
    Par apen2k2 dans le forum Langage
    Réponses: 9
    Dernier message: 14/04/2003, 11h08

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