Ana içeriğe atla

Zengin yedek kulubesi - 2

Şimdi dbexpress ile ufak bir örnek yapacaz. Bu örnekteki amaç tek bir uygulama ile iki farklı veritabanına aynı yapı içerisinde kayıt eklemek, düzenlemek ve silmek... bunun için gerekli olan alet edevatımız şu şekilde : 1- Firebird 1.5 Kullanacağımız birinci veritabanı sunucusu 2- IBExpert Firebird yönetim aracı 3- MySql 4.1 Kullanacağımız ikinci veritabanı sunucusu 4- MySql Front MySql yönetim aracı 5- dbExpress driver for MySQL (http://crlab.com/dbx/download.html) Delphi 6 ile gelen mysql sürücüleri ile mysql 4.1 ile bi türlü bağlantı kuramadım. Bende bunu yükledim. Oluşturmamız gereken tablomuz oldukça basit
CREATE TABLE KURUMLAR (
    KURUMID   INTEGER,
    KURUMADI  VARCHAR(20)
);

Mysql için database adını tedarik olarak oluşturdum.
Çalışma anında programın görüntüsü
Programı yavaş yavaş inşaa ediyoruz.
Tasarım anında programın görünümü
1- SQLConnection1 : Veritabanı sunucusuna bağlanmamızı sağlayan bileşen. 2- SQLTable1 : Veritabanındaki tablolara bağlanacak bileşenimiz. 3- DataSetProvider1 : SqlTable1 bileşenimizde ki verileri ClientDataset üzerine taşımamıza yardım edecek olan bileşen. 4- ClientDataSet1 : Verileri grid üzerinde göstermek ve diğer işlemleri yapmak için gerekli olan bileşenimiz. 5- SQLMonitor1 : Arka planda neler oluyor ? Programı inşaa etmeye başlayalım. İlk önce Firebirde ve Mysql bağlanmak için gerekli olan bağlantıları oluşturalım.

Firebird bağlantısını gerçekleştiren kod
procedure TForm1.Button7Click(Sender: TObject);
begin
SQLConnection1.Close;
SQLConnection1.CloseDataSets;
ClientDataSet1.Close;
SQLConnection1.ConnectionName :=  'dbExFirebird';
SQLConnection1.DriverName     :=  'interbase';
SQLConnection1.GetDriverFunc  :=  'getSQLDriverINTERBASE';
SQLConnection1.LibraryName    :=  'dbexpint.dll';
SQLConnection1.VendorLib      :=  'GDS32.DLL';
SQLConnection1.Params.Clear;
SQLConnection1.Params.Add('DriverName=Interbase');
SQLConnection1.Params.Add('BlobSize=-1');
SQLConnection1.Params.Add('CommitRetain=False');
SQLConnection1.Params.Add('Database=F:\Developers\Delphi\Samples\'+
'Database\dbExpress\Ornek4\data.fdb');
SQLConnection1.Params.Add('ErrorResourceFile=');
SQLConnection1.Params.Add('LocaleCode=0000');
SQLConnection1.Params.Add('Password=masterkey');
SQLConnection1.Params.Add('RoleName=RoleName');
SQLConnection1.Params.Add('ServerCharSet=WIN1254');
SQLConnection1.Params.Add('SQLDialect=1');
SQLConnection1.Params.Add('Interbase TransIsolation=ReadCommited');
SQLConnection1.Params.Add('User_Name=sysdba');
SQLConnection1.Params.Add('WaitOnLocks=True');
SQLConnection1.Open;
ClientDataSet1.Open;
Caption := cntBaslik + ' - Veritabanı :' + cntFirebird;
StatusBar1.Panels[1].Text := cntFirebird;

end;

Bu da mysql bağlantısını yapan kodlarımız
procedure TForm1.Button8Click(Sender: TObject);
begin
SQLConnection1.Close;
SQLConnection1.CloseDataSets;
ClientDataSet1.Close;
SQLConnection1.ConnectionName :=  'dbExMySql';
SQLConnection1.DriverName     :=  'MySQL (Core Lab)';
SQLConnection1.GetDriverFunc  :=  'getSQLDriverMySQL';
SQLConnection1.LibraryName    :=  'dbexpmda.dll';
SQLConnection1.VendorLib      :=  'libmysql.dll';
SQLConnection1.Params.Clear;
SQLConnection1.Params.Add('DirverName=MySQL (Core Lab)');
SQLConnection1.Params.Add('BlobSize=-1');
SQLConnection1.Params.Add('HostName=localhost');
SQLConnection1.Params.Add('DataBase=tedarik');
SQLConnection1.Params.Add('User_Name=root');
SQLConnection1.Params.Add('Password=123');

SQLConnection1.Open;
ClientDataSet1.Open;
Caption := cntBaslik + ' - Veritabanı :' + cntMySql;
StatusBar1.Panels[1].Text := cntMySql;
end;

---> Program şu anda kayıt ekleme, silme, düzenleme işlemlerini gayet güzel yapıyor. Gerçi bağlantılar falan biraz hamal işi oldular ama ilk örnek için gayet başarılı sayılır bence :) Örnek projeyi buradan indirebilirsiniz.

Yorumlar

Bu blogdaki popüler yayınlar

Leyse li'l-insâni illâ mâ seâ

"Leyse li'l-insâni illâ mâ seâ" derken Hudâ; Anlamam hiç meskenetten sen ne beklersin daha? Mehmet Akif Ersoy / Durmayalim Leyse li'l-insâni illâ mâ seâ : Necm Süresi 39. Ayet. [İnsan için ancak çalıştığı vardır.] Meskenet: 1 . Miskinlik, beceriksizlik. 2 . Yoksulluk, fakirlik. (Türk Dil Kurumu) Olay zaten yeterince acik. Yan gelip yatma kardesim. Calis. Bu misralar yazildigi donemde bu anlami tasiyordu fakat zaman ilerledikce baska bir gercegi de gozler onune seriyor.Gerci bu gercek cok kapsamli bir kac satirla anlatilabilecek bir sey degil kaldiki benim bilgim de buna yeterli degil zaten. Ben giris cumlelerini verebilirim gerisini arastirmak yaziyi okuyanlara kalmis. (Matrix gibi bisey oldu bu yaw. Neo'nun kahinle bulusup yanindan ayrildiktan sonra Morpheus ile konusma sahnesi.) Yani kisaca sunu demek istiyorum. Ben bu misrayi ilk okudugumda hic birsey anlamadim. Bu misralari anlayabilmek icin kuran mealine ve turkce sozluklere bakmak zorunda k...

BMO'yu Bekliyorumdur

Bilgisayar Mühendisleri Odası Yönetmeliğinin 91. maddesine göre bir iş yerinde en az üç oda üyesi varsa ilgili işyerine işyeri temsilcisi atanabilir. TÜRK MÜHENDİS VE MİMAR ODALARI BİRLİĞİ BİLGİSAYAR MÜHENDİSLERİ ODASI ANA YÖNETMELİĞİ İşyeri ve iş bölgesi temsilcilikleri MADDE 91 – (Başlığı ile birlikte değişik:RG-2/10/2014-29137) (1) En az üç üyenin bulunduğu işyerlerinde veya iş bölgelerinde oda-üye ilişkilerini geliştirmek amacı ile oda yönetim kurulu kararı ile işyeri ve iş bölgesi temsilcilikleri kurulabilir. İşyeri ve iş bölgesi temsilcisi ve yardımcıları şube yönetim kurulu ya da şube yok ise oda yönetim kurulu kararı ile atanır ve görevden alınır. İşyeri ve iş bölgesi temsilcilerinin görevleri oda yönetim kurulu tarafından belirlenir. İşyerinde oda - üye ilişkilerini daha etkili hale getirebilmek için odaya başvurdum ve çalıştığım işyerine beni ya da yönetim kurulunun uygun göreceği başka bir üye arkadaşın işyeri temsilcisi olarak belirlenmesini talep ettim. (Bu ta...