IBExtact Ve IBScript

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

IBExtact Ve IBScript

Mesaj gönderen Fatih! »

IBExtact
Öncelikle Belirteyim Bu Bileşenler hakkında internette pek bilgiye rastlayamadım. 2-3 doküman buldum onlarda ne İngilizce nede Türkçeydi. Arapça ve Japoncada değildi onları nerde görsem tanırım :)
Bu bileşenle Veritabanını oluşturan nesnelerin SQL kodlarına ulaşabiliriz. Kayıtlara bile. Database ve Transaction özelliklerini söylememe gerek yok sanırım.
IBExtract1.ExtractObject(param1,param2);
Yukarıdaki kod Extact işlemini uygulayan komuttur. 1. parametreye hangi nesne veya nesleri oluşturacağını ikinci parametreye 1.parametrede verilen nesnenin hangi özelliklerinin SQL kodunu çıkaracağımızı belirtebilriz. Örneğin 1. parametreye tablo yazıp ikinci parametreyede index yazarsak tablolara ait index oluşturma kodlarını listeleyecektir.
Birinci parametrenin alabileceği değerler aşağıdadır. Her iki parametreyede birden fazla öğe aktarabilirsiniz.

Kod: Tümünü seç

eoDatabase > veritabanını alır.  ikinci parametreye bir şey yazmazsanız veritabanını toptan alır.
eoDomain > ikinci parametreye tabo ismi göstermezseniz tüm domainleri alır.bunu çok sevdim çünkü domainlerim standarttır. Artık her vt oluşturduğumda domainleri tek tek oluşturmam heral. Sizinle beraber öğrendiğim için daha kullanmadım.
eoTable > Tablolar 
eoView > View ( Görünümler )
eoProcedure > Stored Procedureler
eoFunction > UDFler
eoGenerator > Generatorlar
eoException > Exceptionlar
eoBLOBFilter  > Bloblardan fazla anlamıyorum 
eoRole  > Roleler
eoTrigger > Triggerlar 
eoForeign > Foreign Keyler
eoIndexes > indexler  
eoChecks > Kısıtlamalar 
eoData  > Kayıtlar.
Hepsinin açıklamaları aynı olduğu için detaya girmedim. Parametreye birden fazla değer atanacaksa aralarına virgül eklenmeli.
İkinci parametrenin alabileceği değerler aşağıda.

Kod: Tümünü seç

etDomain, etTable, etRole, etTrigger, etForeign,  etIndex, etData, etGrant, etCheck
IncludeSetTerm özelliği ise Sp de anlattığım SET TERM sözcüğünün sorguda yer alıp almayacağı. Ben True yaptım. False halini denemedim.
Alınan SQL cümlesini aşağıdaki şekilde bir dosyaya kaydedebilirsiniz.

Kod: Tümünü seç

IBExtract1.Items.SaveToFile('d:\a.txt');
Aşağıdaki şekildede memoya atabilirsiniz

Kod: Tümünü seç

MEMO1.Text:= IBExtract1.Items.Text;
Gelelim Örneklere
1 )

Kod: Tümünü seç

IBExtract1.ExtractObject(eoDatabase);  //vtyi al
MEMO1.Text:= IBExtract1.Items.Text; //memoya at
2)

Kod: Tümünü seç

IBExtract1.ExtractObject(eoTable, 'EMPLOYEE'); //EMPLOYEE tablosunu al
IBExtract1.Items.SaveToFile('d:\a.txt'); //dosyaya kaydet
3)

Kod: Tümünü seç

IBExtract1.ExtractObject(eoTable, 'EMPLOYEE', [etDomain, etForeign, etIndex, etGrant]);  // Employe Tablosunu Ve Belirtilen Özelliklerini Çıkar
4)

Kod: Tümünü seç

IBExtract1.ExtractObject(eoTable); //vt’den tüm tabloları  al
5)

Kod: Tümünü seç

IBExtract1.ExtractObject(eoData, 'CUSTOMER'); //customer tablosundan kayıtları al
6)

Kod: Tümünü seç

IBExtract1.ExtractObject(eoProcedure, 'SHIP_ORDER’);  //SHIP_ORDER SP’sini al
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

IBScript
Herhangi bir sonuç döndürmeyen SQL Cümlelerini çalıştırmak için kullanabileceğiniz ideal bir bileşen. Mesela ben kullanıcı oluşturduktan sonra o kullanıcıya yetki verilmesini sağlayan grant komutunu bu bileşen aracılığı ile çalıştırırım. Veritabanı,tablo vb, nesneleri yaratmak için kullandığımız SQL kodlarını buraya ekleyip

Kod: Tümünü seç

IBScript1.ExecuteScript;
komutu ile scripti çalıştırıyoruz. SQL Cümlenizi bileşenin script özelliğine atamalısınız. Aşağıdaki seçeneklerden biriyle Run-Time ( Çalışma zamanında ) SQL Cümlenizi bileşenin Script özelliğine atayabilirsiniz.

Kod: Tümünü seç

IBScript1.Script.LoadFromFile('scriptin .çinde bulunduğu dosya adı ve yolu'); //dosyadaki metni scripte ekler
IBScript1.Script.Text:=Memo1.Text; //memodaki metni scripte ekler
IBScript1.Script.Add('SQL Cümlesi'); //Script özelliğinin sonuna cümleyi ekler
aşağıda örnek bir kullanımı inceleyebilirsiniz.

Kod: Tümünü seç

IBScript1.Script.Clear; // script özelliğini temizle
IBScript1.Script.LoadFromFile('d:\a.txt'); //dosyadaki metni scripte ekle
IBScript1.ExecuteScript; //çalıştır
Cevapla