|
Çalışma Anında Veritabanı ve Tablo Oluşturma
ÇALIŞMA ANINDA VERİTABANI ve TABLO OLUŞTURMA
Veritabanı olarak interbase kullanan
arkadaşların çok işine yarayacağını düşündüğüm için bu makaleyi yazmak istedim.
Bismillah
Formun üzerine bir IBDatabase, bir IBTransaction ve bir IBSQL Nesnesi koyun.
IBSQL nesnesi yerine IBQuery de olabilir. Ama aşağıda anlatacaklarım IBSQl
nesnesi üzerine olacaktır.
IBDatabase Nesnesi üzerine gelin ve params bölümüne aşağıdaki satırları girin.
USER 'SYSDBA'
PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1254
Yukardaki satırlar dikkat ederseniz Database nesnesini herhangi bir database'e
bağlarken verdiğimiz parametrelerden yazdıklarımızdan farklı.
Default Character set satırı tercihe bağlıdır. Database inizin Character setini
Türkçe olarak tanımlamak istiyorsanız yukardaki gibi WIN1254 olarak ayarlamanız
gerekmektedir.
Forma bir buton koyarak onclick olatına aşağıdaki satırları yazın:
Şayet veritabanı adını Bir edit bileşeninden almak istiyorsanız:
Procedure TOlustur.SpeedButton1Click(Sender: TObject);
var
Yol:String;
Begin
Yol:=GetCurrentDir+'\'+Edit1.Text+'.GDB'; //Veritabanı adı hazırlanıyor
//Database ayarlanıyor
IBDatabase1.DataBaseName:=Yol;;
IBDatabase1.SQLDialect:=3;
IBDatabase1.LoginPrompt:=False;
//Database Oluşturuluyor
IBDatabase1.CreateDatabase;
//Database oluşturuldu artık table,view,generator ve stored procedure
oluşturmaya geçebiliriz.
//Parametreler yenileniyor Normal bağlantı parametrelerine dönülüyor.
IBDatabase1.Connected:=False;
IBDatabase1.Params.Values['User_Name']:='SYSDBA';
IBDatabase1.Params.Values['PassWord']:='masterkey';
IBDatabase1.Params.Values['lc_ctype']:='WIN1254';
//Database Connect ediliyor
IBDatabase1.Connected:=True;
//Transaction Active ediliyor..
IbTransaction1.Active:=True;
//Table,index, view,generator ve stored procedurelerden 1 er tane örnek
vereceğim
//Table oluşturuluyor
Try
IBSQL1.Close;
IBSQL1.SQL.Clear;
IBSQL1.SQL.Add('CREATE TABLE "VASIF" ("KNO" DOUBLE PRECISION NOT NULL,');
IBSQL1.SQL.Add('"VASIFLAR" VARCHAR(50) CHARACTER SET WIN1254 COLLATE
PXW_TURK,');
IBSQL1.SQL.Add('"YEVMIYE" DOUBLE PRECISION,');
IBSQL1.SQL.Add('"TRH" TIMESTAMP,');
IBSQL1.SQL.Add('PRIMARY KEY ("KNO"))');
IBSQL1.Prepare;
IBSQL1.ExecQuery; //IBQuery kullanıyorsanız ExecQuery yerine ExecSQL
yazacaksınız..
Finally
IBSQL1.Close;
end;
//İndex oluşturuluyor
Try
IBSQL1.Close;
IBSQL1.SQL.Clear;
IBSQL1.SQL.Add('CREATE INDEX VASIFLARX ON BELGE ("VASIFLAR")');
IBSQL1.Prepare;
IBSQL1.ExecQuery; //IBQuery kullanıyorsanız ExecQuery yerine ExecSQL
yazacaksınız..
Finally
IBSQL1.Close;
end;
//View oluşturuluyor
Try
IBSQL1.Close;
IBSQL1.SQL.Clear;
IBSQL1.SQL.Add('CREATE VIEW "TOPLA"
("KNO","YIL","AY","DN","ODESASGUN","ODESASMAT",');
IBSQL1.SQL.Add('"GELIRVRGMAT","GELIRVERGISI","PIRIM") AS ');
IBSQL1.SQL.Add('SELECT
KIMLIK.KNO,BORDRO.YIL,BORDRO.AY,BORDRO.DN,BORDRO.ODESASGUN,');
IBSQL1.SQL.Add('BORDRO.ODESASMAT,BORDRO.GELIRVRGMAT,BORDRO.GELIRVERGISI,');
IBSQL1.SQL.Add('(BORDRO.SSKISVEREN+BORDRO.ISSIZKURUM+BORDRO.SSKISCI+BORDRO.ISSIZISCI)
FROM BORDRO,KIMLIK');
IBSQL1.SQL.Add('WHERE KIMLIK.KNO=BORDRO.DETAYNO');
IBSQL1.Prepare;
IBSQL1.ExecQuery; //IBQuery kullanıyorsanız ExecQuery yerine ExecSQL
yazacaksınız..
Finally
IBSQL1.Close;
end;
//Generator oluşturuluyor
Try
IBSQL1.Close;
IBSQL1.SQL.Clear;
IBSQL1.SQL.Add('CREATE GENERATOR "VASIF_GEN"');
IBSQL1.Prepare;
IBSQL1.ExecQuery; //IBQuery kullanıyorsanız ExecQuery yerine ExecSQL
yazacaksınız..
Finally
IBSQL1.Close;
end;
//Stored Procedure oluşturuluyor autoinc field için
IBSQL1.Close;
IBSQL1.SQL.Clear;
IBSQL1.SQL.Add('CREATE PROCEDURE "PROC_VASIF"');
IBSQL1.SQL.Add('RETURNS');
IBSQL1.SQL.Add('(');
IBSQL1.SQL.Add(' "NUM" INTEGER');
IBSQL1.SQL.Add(')');
IBSQL1.SQL.Add('AS');
IBSQL1.SQL.Add('BEGIN');
IBSQL1.SQL.Add('NUM = GEN_ID(VASIF_GEN,1);');
IBSQL1.SQL.Add('END');
IBSQL1.Prepare;
IBSQL1.ExecQuery; //IBQuery kullanıyorsanız ExecQuery yerine ExecSQL
yazacaksınız..
Finally
IBSQL1.Close;
end;
IBDatabase1.Connected:=False;
İşte bu kadar...
Yukardaki table view oluşturma gibi işlemlerde birer tane örnek verilmiştir.
Bunları sırasıyla
procedureler içine alarak veritabanınızı runtime olarak oluşturabilirsiniz...
Kolay gelsin.......
bimeks borland component database delphi delphi.net delphi dersleri firebird help interbase makale oracle
seminer software sybase veritabanı web
|
|
|