Anasayfa > delphi > DirectMySQL122 Delphi ile MySQL’e doğrudan bağlanın

DirectMySQL122 Delphi ile MySQL’e doğrudan bağlanın


Bu yazıda DirectMySQL122 paketi yardımı ile  MySQL ve Delphi bağlantısını inceleyelim.

MySQL ile uğraşanlar için en çok sıkıntı duyulan nokta veri tabanı bağlantısının bir ara yazılım ile çözülmüş olmasıdır.

Normalde MySQL bir Server’da çalışırken MyODBC gibi bir yazılım ile bu bilgilerin erişimi sağlanır.

Bu paket ile herhangi bir yazılım yüklemeden sadece komut yardımı ile MySQL bağlantısını sağlıyabiliyoruz.

Nasıl mı? Hemen başlayalım;

 

Öncelikle aşağıdakine benzer bir form tasarlıyalım;

form_mysql_directly_01

 Bu forma dikkat ederseniz herhangi bir DBGRID vs.. gibi veri tabanı için tasarlanmış olan component bulunmuyor.

Şimdi de kodlamaya başlıyalım;

 

unit main;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,
  uMySqlVio, uMysqlCT, uMysqlClient, uMysqlHelpers,      // eklediklerimiz...
  Grids, StdCtrls;
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    edt_HOST: TEdit;
    edt_PORT: TEdit;
    edt_USER: TEdit;
    edt_PWD: TEdit;
    btn_Connect: TButton;
    edt_DBNAME: TEdit;
    btn_SendReques: TButton;
    Edit1: TEdit;
    StringGrid1: TStringGrid;
    Label6: TLabel;
    Edit2: TEdit;
    procedure ShowMySQLResults;                     // neticeleri gosteren rutin
    procedure btn_ConnectClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btn_SendRequesClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
    MySQL: TMySQLClient;
    MyResult: TMySQLResult;
    Executed, Stored : Boolean;
implementation
{$R *.dfm}
procedure TForm1.btn_ConnectClick(Sender: TObject);                // baglaniyoruz..
begin
  if not MySQL.Connected then
    begin
      try
        MySQL.Host     := edt_HOST.Text;
        MySQL.port     := strtoint( edt_PORT.text );
        MySQL.user     := edt_USER.Text;
        MySQL.password := edt_PWD.Text;
        MySQL.Db       := edt_DBNAME.Text;
        MySQL.connect;
      finally
        if MySQL.Connected then Edit2.Text := 'MySQL Veri vabanına bağlanıldı...'
          else Edit2.Text := 'MySQL Veri tabanı bağlantısı kayıp!!';
      end;
    end
    else
    begin
      try
        MySQL.reconnect;
      finally
        Edit2.Text := 'MySQL Veri vabanına bağlanıldı...';
      end;
    end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  MySQL := TMySQLClient.create;                              // form olusurken elimizde tutalim...
end;
procedure TForm1.btn_SendRequesClick(Sender: TObject);
begin
  if not Executed then
    begin
      MyResult := MySQL.query(Edit1.Text,true,Executed);
      if Executed then
        begin
          Executed := false;
          ShowMySQLResults;
        end;
    end;
end;
procedure TForm1.ShowMySQLResults;
var
  n,x: integer;
begin
  for n:=1 to StringGrid1.RowCount do
    StringGrid1.Rows[n].Clear;
  StringGrid1.Refresh;
  StringGrid1.RowCount := MyResult.RowsCount+1;
  StringGrid1.ColCount := MyResult.FieldsCount;
  n:=0;
  while n < MyResult.FieldsCount do
    begin
      StringGrid1.Cells[n,0] := MyResult.FieldDef(n).name ;             // field name leri yaziyoruz.
      inc(n);
    end;
  n:=0;
  while n < MyResult.RowsCount do
  begin
    for x:=0 to MyResult.FieldsCount-1 do
      StringGrid1.Cells[x,n+1] := MyResult.FieldValue(x);               // value leri yaziyoruz.
    inc(n,1);
    MyResult.Next;
    Continue;
  end;
  try
    MyResult.Free;
  except
  end;
end;
end.

Programı çalıştırdığımızda daha önce saklanmış olan veri tabanındaki bilgileri şu şekilde listeliyoruz;

 

form_mysql_directly_02 

Bu projeye ait dosyaları; http://mehmetulukaya.4shared.com adresinden indirebilirsiniz.

Kategoriler:delphi
  1. Henüz yorum yapılmamış.
  1. Ocak 22, 2016, 3:50 pm

Görüşlerinizi belirtin

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s