[DELPHI] dBgrid

dBgrid [DELPHI] - Delphi/Pascal - Programmation

Marsh Posté le 17-02-2004 à 17:53:03    

J'ai trouvé comment utiliser mysql avec delphi (grande victoire pour moi :p )
 
http://www.fichtner.net/delphi/mysql.delphi.phtml
 
Depuis ce matin, je bloque, je cherche a afficher le resultat de m'a requete dans un dbgrid mais pas moyen. J'ai écumé google et tous les site delphi, mais je n'ai pas trouvé d'explication clair sur comment le fair
 
7 heures de recherche plus tard, je me tourne vers vous car je commence a craquer :)
 
voici mon code :
 

Code :
  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls, mySQL,inifiles, Unit4, Grids, DBGrids, DB;
  6. type
  7.   TForm1 = class(TForm)
  8.     DBGrid1: TDBGrid;
  9.     dts: TDataSource;
  10.     procedure FormCreate(Sender: TObject);
  11.   private
  12.     { Déclarations privées }
  13.   public
  14.     { Déclarations publiques }
  15.   end;
  16.   function connexion(ip,username,password,base,resultat:string):string;
  17. var
  18.   Form1: TForm1;
  19.   read: array of string;
  20.   FichierIni : TIniFile;
  21.   mysql : PMYSQL;
  22.   myrow : PMYSQL_ROW;
  23.   myres : PMYSQL_RES;
  24.   mycout : longword;
  25.   ligne:string;
  26.   I: Word;
  27. implementation
  28. function connexion(ip,username,password,base,resultat:string):string;
  29.     begin
  30.       mysql := mysql_init(nil);
  31.           if mysql_real_connect(mysql, PAnsiChar(ip), PAnsiChar(username), PAnsiChar(password), PAnsiChar(base), 0, nil, 0) <> nil then
  32.              begin
  33.               end
  34.                else
  35.                 begin
  36.                 showmessage('La connexion a mysql a échoué');
  37.                 end;
  38.       end;
  39. {$R *.dfm}
  40. procedure TForm1.FormCreate(Sender: TObject);
  41. begin
  42.     FichierIni:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'config.ini');
  43.     SetLength(read, 5);
  44.     read[0]:=FichierIni.ReadString('mysql','ip','0');
  45.     read[1]:=FichierIni.ReadString('mysql','username','n');
  46.     read[2]:=FichierIni.ReadString('mysql','password','n');
  47.     read[3]:=FichierIni.ReadString('mysql','base','n');
  48.     connexion(read[0],read[1],read[2],read[3],read[4]);
  49.     mysql_query(mysql, pChar('select * from phpbb_smilies'));
  50.     myres := mysql_store_result(MySQL);
  51.     mycout := mysql_num_fields(myres);
  52.     myrow := mysql_fetch_row(myres);
  53.    while myrow <> nil do begin
  54.          for I := 0 to mycout - 1 do begin
  55.               //myrow[i];  
  56.               end;
  57.      myrow := mysql_fetch_row(myres);
  58.   end;
  59. end;
  60. end.


 
Si quelqu'un pouvait m'expliquer clairement comment utiliser un dbgrid dans le code ci dessus, je lui en serais extremement reconnaisant

Reply

Marsh Posté le 17-02-2004 à 17:53:03   

Reply

Marsh Posté le 17-02-2004 à 18:43:58    

Pour me connecter à une base MySQL depuis Delphi, je me sers personnellement des drivers ODBC MySQL que tu peux DL sur le site officiel. Une fois ceci fait, tu te créé un DSN sur ton serveur de base et le tiour est joué : tu peux alors utiliser tes composants ADO comme si c'était une base Access.
 
Pour ce qui est de ta DBGrid, tu pose un ADOConnect, un ADOTable ou ADOQuery, un DataSource. Ensuite, tu connecte ta base MySQL par le ADOConnect en te servant de ton DSN, tu réalise tes sélection avec L'ADOTable ou ADOQuery en utilisant l'ADOConnect, tu fais pointer le DataSource sur l'ADOTable ou ADOQuery, et enfin taDBGrid sur le DataSource.
 
Voila, pour ma part c'est comme ça que je procède.

Reply

Marsh Posté le 17-02-2004 à 19:10:14    

Je te remerciede t'as réponse, si personne n'a d'autre solution je passerais par l'ado meme si je preferais eviter

Reply

Marsh Posté le 17-02-2004 à 20:05:16    

Pourquoi t'aime pas ADO ? Je trouve très simple et plutot rapide...

Reply

Marsh Posté le 18-02-2004 à 00:40:50    

lincam a écrit :

Je te remerciede t'as réponse, si personne n'a d'autre solution je passerais par l'ado meme si je preferais eviter  


 
passe par les composants dbexpress


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed