powered by HastaBlog
 
MySQL, Delphi ve Zeos Bileþenleri | Kategori: Programlama
Yazlma: 11.01.2007 | Okunma: 3241 | Yorumlanma: 3
MySQL, Delphi ve Zeos Bileþenleri

  Bir kaç yýl evveline kadar að uygulamalarýnda SQL-Server, ORACLE, Interbase baþlýca olmak üzere bildik veri tabanlarýný kullanýrdým. Bugünse bir web tasarýmý iþinde tanýþýp kaynaþtýðým MySQL benim için ister að, ister web isterse lokal uygulamalarda olsun kullandýðým vazgeçilmez bir standart oldu. Belki tüm teferruatý
ile MySQL'e hakim olmamý gerektiren bir zorunluluk olmadýðýndan, yada MySQL buna fýrsat vermeden benim tüm teferruatýma hakim olduðundan þimdi hangi projeye elimi atsam tek favorim MySQL.

  Tabi benim gibi yazýlýmcýyým diye geçinip birden fazla dillede haþýr neþir olmak durumundaysanýz MySQL ile ilgili güncel bilgileride takip etmek zorundasýnýz.

  Bu makalade MySQL veri tabanlarýnýn Delphinin tüm sürümleri için nasýl kullanýlabileceðini basitçe anlatacak ve bize delphi ortamýnda MySQL kullanýmýný kolaylaþtýran Zeos bileþenlerinin bazýlarýndan bahsedeceðim. MySQL ile uygulama geliþtimek için Zeos bileþenleriyle sýnýrlý deðilsiniz. Alternatifler bu makalenin dýþýnda yer almaktadýr.


Zeos MySQL Bileþenleri

  Öncelikle http://www.zeoslib.net veya http://sourceforge.net/project/showfiles.php?group_id=35994
adresinden ücretsiz edinebileceðiniz Zeos bileþenlerini indirmenizi ve her daim elinizin altýnda bulundurmanýzý öneririm.

  Ýnternetten indirdiðimiz ve bir klasör altýnda topladýðýmýz bileþenleri delphi ortamýna yüklemek için sýrasýyla aþaðýdaki iþlemleri yapýyoruz.
  • Bileþenlerle birlikte gelen ve lib klasörü altýnda bulanan DLL dosyalarýný  windows sistem klasörü altýna kopyalýn.Bütün DLL dosyalarý olmasa bile en azýndan kullandýðýnýz MySQL sürümüne baðlý olanlarý kopyalamalýsnýz. Örneðin benim sistemimde hem MySQL 4.1.10a-nt hemde MySQL 5.0 sürümü olduðundan libmysql41.DLL dosyasý system32 klasörümde kopyalanmýþ durumda.
  • Kullandýðýnýz delphi versiyonuna uygun klasör altýna yerleþtirilmiþ package dosyalarýný bulun.
  • Delphi bileþen yükleme diyalog penceresine gelerek veya ZeosDbo.bpg dosyasýný çift týklayarak aþaðýdaki dosyalarý yazýldýðý sýrada derleyin.
    • ZCore.bpl
    • ZParseSql.bpl
    • ZPlain.bpl
    • ZDbc.bpl
  • Derleme iþlemi sonunda herhangi bir hata almanýz durumuda delphi Source Search seçeneklerini ayarlayýp tekrar deneyin. Normalde hiç bir hata iletisiyle karþýlaþmamanýz gerekir. Bileþen yükleme ekranýnda Install seçeneðiyle derlenmiþ bileþenleri VCL'ye kaydettirin.
  • Doðru yükleme iþlemi sonunda VCL bileþen paletinize Zeos Access sekmesi oluþturulmuþ ve ilgili bileþenler bu sekmeye yerleþtirilmiþ olarak görünmelidir.

MySQL Veri Tabanýyla Basit Bir Örnek Uygulama Tasarýmý

  Öncelikle pratik kazanmak amacýyla uygulamýzda kullanmak üzere Ornek isimli veri tabaný ve kodlar isimli tek bir tablo tasarlayalým. kodlar tablosunun yapýsý aþaðýdaki gibi olsun.

Kodlar : 
CREATE TABLE kodlar (

  id bigint(20) unsigned NOT NULL auto_increment,
  kod blob,
  tarih date default NULL,
  PRIMARY KEY  (id),
  UNIQUE KEY id (id),
  KEY id_2 (id)
  ) ENGINE=InnoDB DEFAULT CHARSET=latin5;
 

     Delphide yeni bir proje baþlatalým. Proje ana formu üzerine aþaðýdaki Zeos bileþenlerini koyarak kullanacaðýmýz bileþenleri projemize dahil edelim.

  • TZConnection bileþeni
  • TZQuery bileþeni
  • TDataSource
  • TDBGrid
    MySQL Ornek veri tabanýna baðlantý için kullanacaðýmýz TZConnection nesnesinin aþaðýdaki özelliklerini anlatýldýðý biçimde Object Inspector üzerinde deðiþtirelim.

  AutoCommit      : True
  Catalog             : Ornek
  Connected         : False
  DataBase          : Ornek
  HostName         : localhost
  LoginPrompt      : false
  Password          : MySql root kullancýsýnýn þifresi
  Port                  : 3306
  Protocol            : mysql-4.1 - 4.1 ve üstü Mysql versiyonlarý için
  User                 : root
  ReadOnly          : false
 
  TZConnection nesnesi için bazý özellikleri irdeleyelim.
 
  AutoCommit : Veriler üzerinde yapýlan ekleme ve düzeltme iþlemlerinin veri tabanýna  otomatik post edilip edilmeyeceði           

  Catalog          : Kullanýlacak veri tabaný katalog ismi
  Connected      : Baðlantý kur - Baðlantýyý kes
  DataBase        : Veri tabaný ismi
  HostName       : Veri tabaný servisinin çalýþtýðý bilgisayar.(IP adresi)
  LoginPrompt   : Oturum açma iþleminde kullanýcýdan þifre girmesi istenecekmi
  Password       : Oturum açma iþleminde kullanýlacak þifre
  Port               : MySQL srvisinin haberleþme port adresi. Varsayýlan 3306'dýr.
  Protocol         : Connection nesnesinin kullanacaðý veri tabaný prokolünün adý
  User              : Oturum açmak için kullanýcý adý
  Readonly       :  Veri tabaný salt okunur moddamý çalýþacak
 
  Bir sorgu kümesi elde etmek için kullanacaðýmýz TZQuery bieleþenin özelliklerini Object Inspector üzerinde aþaðýdaki gibi ayarlalým.

  Connection     : ZConnection1
  ReadOnly       : False
  SQL               : Select * from kodlar
 
  Yukarýda anlatýlan özellikleri ayarlamakla Veri tabanýmýzý ve kodlar adlý tablomuzu kullanmak için ayarlamýþ olduk. Forma yerleþtirdiðiniz DataSource bileþenin DataSet özelliðine ZQuery1 deðerini verip, Dbgrid nesnesinin DataSource özelliðinede DataSource1 olarak ayarladýðýnýzda veri tablo üzerinde yerel ve diðer tablolarla yaptýðýmýz her tür iþlemi yapabiliriz. TZQuery bileþenin active özelliðini true yaptýðýnýzda tasarým kipinde verilen dbgrid içinde listelendiðini görürsünüz.

  Önemli hatýrlatma : SQL Hizmet birimi veri tabanlarý uzak bilgisayar üzerinde konuþlu olacaklarýndan DbGrid benzeri bileþenlerle kayýtlarýn listelenmesi tavsiye edilen bir tutum deðildir.

  ZQuery bileþenin diðer özellik ve yöntemleri standart TQuery bileþeni ile aynýdýr. VCL paletinde Zeos Access sekmesine ZQuery'den baþka birde TZReadOnlyQuery  bileþeni yerleþtirilir. Adýndan anlaþýlacaðý üzere salt okunur modda sorgulama iþlemleri yapmak ve performansý artýrmak için tasarlanmýþtýr. Bir baþka Zeos bileþeni olan TZTable bileþenide TTable ile ayný iþi yapmak üzere tasarlanmýþtýr.

  Makaleyi Çalýþma anýnda bir TZReadOnlyQuery bileþeni oluþturup kullanan bir yöntemi yazarak bitirmek istiyorum.
 
//* ID.si verilen kaydýn Kategori ve UstID'sini bul *//
Procedure TForm_Banka_Verisi_Ekle.GetKategoriIsmi(Const ID : Integer;Out UstID:Integer;Out KategoriIsmitring);

  Var
      Q : TZReadOnlyQuery;
begin
  try
      Q := TZReadOnlyQuery.Create(Self);
      Q.Connection := dm.ZConnection1;
      Q.Sql.Add('Select id,ust_id,kategori from kategoriler where id ='+#39+IntToStr(ID)+#39);
      Q.Open;
      if Not Q.Eof then
    begin
       UstID        := Q.Fields[1].AsInteger;
       KategoriIsmi := Q.Fields[2].AsString;
    end;
  finally
   Q.Close;
   Q.Free;
  end;
end;//* GetKategoriIsmi *//
 

    Zeos bileþenlerinin bu makalede kapsamýnda anlatýlmayan özellik ve yöntemleri ile MySQL ile ilgili bilgilerinizi ve ipuçlarýný bizimle paylaþmanýz dileðiyle hepinize çalýþmalarýnýzda baþarýlar dilerim.

Kaynak: Ceviz.net



Bu Kategorideki Yazlar:

< Yapay Zeka || Virus sildim makinamdan! >




Yazan: Boreas | Tarih: 27.06.2007
Doðru boreas'ým ilgin içinde teþekkür ederim.
Yazan: Trogram | Tarih: 21.06.2007
Lazarus 0.9.20 üzerine ZEOSDBO-6.6.1_beta.zip kurup MySQL ve MsSQL'e baðlanýp test etme imkaným oldu. Windows için tabii. Bunu özellikle belirtiyorum çünkü senin özellikle Linux için yazdýðýný daha önce web'deki yazýlarýndan okumuþtum. Hatta Boreas Linux'un ilk versiyon kurulum CD'si hala CD çantamda duruyordur. Tabi sen doðru Boreas'san.
Yazan: Boreas | Tarih: 21.06.2007
Merhaba Lazarus'da zeos bileþenlerini kullanmayý baþarabildin mi onu merak ettim
 

Güvenlik (3)
Lagara Lugara (15)
Pardus (2)
Programlama (13)
Sokak Yarýþlarý (2)


Rapid Roll Extra (5904)
MySQL, Delphi ve Zeos Bileþenleri (3241)
FARK EDÝLMEYEN EFSANE DÝL “OBJECT PASCAL” (2829)
Rubik (Zeka) Küpü (2697)
1161 Adet .DLLl Dosyasýnýn Açýklamasý (2616)
Virus sildim makinamdan! (2505)
Sokak Yarýþlarý Projesi 0.3 (2420)
Cepte Blog (2314)
Doðum Günüm (2257)
IBM developerWorks (2241)



Diðer yarým...
Free Pascal Lazarus Project
Pardus
RSS Desteði



Pardus... Özgürlük Ýçin...

powered by Hasta Blog v2

Sayý Bul  Net Send Panel  Bayrak - ATA  Kara Kurdele  Rapid Roll Extra  Balik Adam