begin process at 2010 02 09 23:11:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Base de données

 > 

MySQL

 > 

Mise à jour DBgrid à partir d'une requête SQL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Mise à jour DBgrid à partir d'une requête SQL

lundi 5 mai 2008 à 09:58:32 | Mise à jour DBgrid à partir d'une requête SQL

letrom

Bonjour tout le monde,

J'ai un fiche avec les composants suivants :
    Ttable (Name : StockOrsud , TableName : stock_orsud.db)
    TdataSource (DataSet : StockOrsud, Name : DataSource1)
    TDBgrid (DataSource : DataSource1)
    Tquery (DataSource : Datasource1)

A la création de ma fiche, le DBGrid m'affiche bien le contenu de stock_orsud.db

Ensuite j'ai ajouté un TradioGroup (avec 3 boutons) et je veux lorsque l'on sélectionne un des boutons, une requête SQL soit effectuée et que le DBGrid m'en affiche le résultat.

        procedure TForm1.RadioGroup1Click(Sender: TObject);
        begin
             If RadioGroup1.ItemIndex=1 then
             begin
                  with query1 do
                  begin
                       close;
                       SQL.Clear;
                       SQL.add('select * from stock_orsud where Quantite < 2000');
                       try open;
                       except
                             showmessage('erreur');
                       end;
                  end;
             end;
             DbGrid1.Update;
        end;

Et malheureusement le DBGrid ne se modifie pas. J'ai évidemment fait des recherches avant de vous demander de l'aide mais tout ce que j'ai trouvé ne m'a pas fait avancer.

Je vous remercie par avance de vos lumières.

A+
lundi 5 mai 2008 à 18:38:24 | Re : Mise à jour DBgrid à partir d'une requête SQL

cantador

Membre Club

Bonjour letrom,
il peut y avoir bcp de choses..
déjà, est ce que le prog passe sur l'open (met un point d'arrêt) ?

et à la place de DbGrid1.Update;
mets query1.Refresh;

on verra la suite..

cantador

mardi 6 mai 2008 à 08:50:25 | Re : Mise à jour DBgrid à partir d'une requête SQL

letrom

Bonjour cantador et merci pour ta réponse

Malheureusement le fait de mettre query1.Refresh; ne modifie pas le contenu de mon DBGrid et en mettant un point d'arrêt dur "open", le prog y passe bien.

J'attends d'autres idées et bien sur je cherche de mon côté.

SVP aidez-moi !!!

Letrom
mardi 6 mai 2008 à 10:19:27 | Re : Mise à jour DBgrid à partir d'une requête SQL

Rematrix

Réponse acceptée !
C normale tu utilise qu'un seul dataset, tu doit mettre une pour Ttable et une pour Tquery, et le DBgrid relier avec dataset de Tquery pour qu'il s'affiche le résultat des requets, et évite close et open, met plus tôt active false et active true.

Matrix
mardi 6 mai 2008 à 10:29:45 | Re : Mise à jour DBgrid à partir d'une requête SQL

letrom

Salut Matrix,

merci beaucoup pour ta réponse, ça marche.

bonne journée

Letrom
mardi 6 mai 2008 à 15:53:17 | Re : Mise à jour DBgrid à partir d'une requête SQL

cantador

Membre Club

Bonjour letrom,

voilà un exemple très simple utilisant :
                                      1 compo ADOCoonexion
                                      1 compo ADOQuery
                                      1 compo DataSource
                                      1 DBGrid
                                      1 RadioGroup (avec 3 positions)

La table est 'Orders' de la base :
C:\Program Files\Fichiers communs\Borland Shared\Data\dbdemos.mdb

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    RadioGroup1: TRadioGroup;
    ADOQuery1OrderNo: TFloatField;
    ADOQuery1CustNo: TFloatField;
    ADOQuery1SaleDate: TDateTimeField;
    ADOQuery1ShipDate: TDateTimeField;
    ADOQuery1EmpNo: TIntegerField;
    ADOQuery1ShipToContact: TWideStringField;
    ADOQuery1ShipToAddr1: TWideStringField;
    ADOQuery1ShipToAddr2: TWideStringField;
    ADOQuery1ShipToCity: TWideStringField;
    ADOQuery1ShipToState: TWideStringField;
    ADOQuery1ShipToZip: TWideStringField;
    ADOQuery1ShipToCountry: TWideStringField;
    ADOQuery1ShipToPhone: TWideStringField;
    ADOQuery1ShipVIA: TWideStringField;
    ADOQuery1PO: TWideStringField;
    ADOQuery1Terms: TWideStringField;
    ADOQuery1PaymentMethod: TWideStringField;
    ADOQuery1ItemsTotal: TFloatField;
    ADOQuery1TaxRate: TFloatField;
    ADOQuery1Freight: TFloatField;
    ADOQuery1AmountPaid: TFloatField;
    procedure FormCreate(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedureTForm1.FormCreate(Sender: TObject);
begin
  ADOQuery1.Open;
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  try

    with ADOquery1.SQL do
    begin
      ADOquery1.close;
      case RadioGroup1.ItemIndex of
        0:
          begin
            Clear;
            Add('Select * from orders ');
            Add('Where PaymentMethod = ''Visa'' ');
          end;

        1:
          begin
            Clear;
            Add('Select * from orders ');
            Add('Where PaymentMethod = ''Credit'' ');
          end;

        2:
          begin
            Clear;
            Add('Select * from orders ');
            Add('Where PaymentMethod = ''MC'' ');
          end;
      end;

      ADOquery1.open;
    end;
  except

    showmessage('erreur');
  end;
end;
end.

Sans refresh, sans update et çà marche nickel

cantador



Cette discussion est classée dans : end, sql, requête, dbgrid, stock


Répondre à ce message

Sujets en rapport avec ce message

Problème avec le réaffichement d'un DbGrid (avec requête SQL) [ par Lennemi ] Dans mon dataModule j'utilise 2 type de tables :adoBudget(Tadotable) et adoSQLBudget(TadoQuery)J'utilise un DbGrid pour afficher une requête SQL de ad Requête SQL et ADO [ par mathieu57100 ] bonjour, j'ai un ptit prob avec mon appli, c'est ma 1ere ave une base de donnée...j'ai un TADOQuery qui a bine un DATAsource de spécifié et une connec Problème affichage requete SQL dans DBGrid [ par San35 ] Bonjour, J'ai une requete SQL basée sur plusieurs champs de plusieurs tables (avec jointures). Je travaille sur une base Access et avec l'objet ADOQue Problème affichage de requete sql dans dbgrid [ par San35 ] Bonjour, J'ai une requete SQL basée sur plusieurs champs de plusieurs tables (avec jointures). Je travaille sur une base Access et avec l'objet ADOQue Insertion de valeur dans une requête SQL!!! [ par Mask ] Au secours!!... Je viens de me mettre au delphi, après le VB...bah ouais histoire de tester la concurrence.. et je n'arrive pas à trouver la syntaxe affichage lors d'une requete sql [ par katrin ] Bonjour a tt le monde,j espere que qqun pourra m aider....g un probleme d'affichage dans ma dbgrid, lorsque j execute ma requete sql (que se soit un a DbListbox [ par ProphetKy ] Voila mon probleme, j'une table de client, c'est client sont affcihé dans une DBlistbox, mais lorsque je tape dans une edit des lettres, la listbox di MasterSource avec TQuery [ par psycomel ] Bonjour, Anciennement dans mon code, deux DBGRID étaient liés par la propriété masterSource du 2ième DBGRID.En effet le datasource du 2ième DBGRID éta Quelle requête SQL Access pour vérifier si un nom existe dans le champs nom d'une table ? [ par colorid ] Je repose la question précédente autrementJe dispose d'une table "Toto" qui possède un champ "Toto.Nom" (VARCHAR(32))Je veux vérifier que nom "Name" ( SQL... erreur [ par cmeme ] Merci encore pour ton aide: je vais commenter le probleme. En réalité, j'ai plusieurs bouton: Ajouter, Sélectionner, Modifier, Supprimer. Ce que


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales