![]() |
|
|||||||
| Java JSP C# Java JSP C++ C# Delphi C Visual Basic |
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|||
|
slm arkadaşlar;
amacım yapacağım programın istenilen fieldlar verilince o fieldları barındıran veritabanı dosyası kendisi oluşturması. örneğin: bazı programlar ilk çalıştırıldığında daha hiçbir veri olmadığı için veri tabanı da olmadığından "veri tabanı dosyası yok. oluşturulsun mu?" gibi seçenekler sunuyor. sanırım demek istrediğimi anlatmışımdır. böylece programı taşırken yanında veri tabanı dosyalarını da taşımak zorunda kalmayacağım. aslında ondan da önemlisi yeni bir mal geldiğinde o malın cinsine ait özellikleri barındıran bir veri tabanı oluşturabileceğim. bir bilgisayar firmasını düşünün. hep aynı donanım çesitlerini (anakart, cdrom vs) barındıracak değil. mesela anakart.dbf'de anakartları özelliği bulunur (marka,model,FSB vs.) ama ya yeni bir ürün çıktığında? mesela firma artık sadece bilgisayar ürünlerini değil de elektronik ürünleri de satcaksa o zaman bir de fieldları kullanıcı tarafından girilecek yeni bir dbf dosyası lazım. işte benim derdim de bu. yardımcı olursanız sevinmekle kalmayıp, büyük bi dertten de kurtulmuş olurum. byes.. |
|
|||
|
procedure createDbTable(FileName:string);
var Table1:TTABLE; begin Table1:=TTable.Create(Application); Try with Table1 do begin Active := false; DatabaseName := Directory; TableName := filename; TableType := ttParadox; With FieldDefs do Begin Clear; Add('SIRA', ftNumeric, 0, False); Add('GELIRAD', ftString, 50, False); End; With IndexDefs do Begin Clear; Add('', 'SIRA', [ixPrimary,ixUnique]); Add('GELIRADX', 'GELIRAD', [ixCaseInsensitive]); End; CreateTable; End; except On EDatabaseError do ShowMessage('Tablo oluşumunda hata!...'); end; end; |
|
|||
|
Bu daha kısa bir örnek olur zannedersem :
. . . Function Degisken(degadi,degtur:string;uzn,desim:integer) : String; Var st2:string; Begin ST2:=degadi; if degtur='C' Then St2:=St2+' CHAR('+inttostr(uzn)+')' Else if degtur='N' Then St2:=St2+' NUMERIC('+inttostr(uzn) Else if degtur='F' Then St2:=St2+' FLOAT('+inttostr(uzn) Else if degtur='L' Then St2:=St2+' BOOLEAN' Else if degtur='D' Then St2:=St2+' DATE' Else if degtur='T' Then St2:=St2+' TIME' Else if degtur='M' Then St2:=St2+' BLOB('+inttostr(uzn)+',1)'; if degtur='N') Or (if degtur='F') Then if desim>0 Then St2:=St2+','+inttostr(Desim)+')' Degisken:=ST2; { Result:=ST2; şeklindede olur} End; Begin Query1.Databasename:='c:\stok'; {c sürücüsünde açılmış bir alt dizin} Query1.SQL.Clear; Query1.SQL.Add('CREATE TABLE "yeni.dbf"); Query1.SQL.Add('('); Query1.SQL.Add(Degisken('adi','C',30,0)+','); Query1.SQL.Add(Degisken('soyadi','C',30,0)+','); Query1.SQL.Add(Degisken('kaytar','D',0,0)+','); Query1.SQL.Add(Degisken('maas','F',14,0)+','); Query1.SQL.Add(Degisken('gozlukno','F',5,3)+','); Query1.SQL.Add(')'); GDM.Query1.ExecSQL; {index oluşturma...} Query1.SQL.Clear; {ADI na indexleme } Query1.SQL.Add('CREATE INDEX ADI ON "yeni.dbf" (ADI)'); Try Query1.ExecSQL; except {except işlemleri}; end; Query1.SQL.Add('CREATE INDEX SOYADI ON "yeni.dbf" (SOYADI)'); {SOYAD ına indexleme } Try Query1.ExecSQL; except {except işlemleri}; end; End; Daha yalın ve kolay anlaşılır..hata kontrolüne daha müsait bir yapıu olmasından dolayı ben SQL tercih ediyorum.. Kolay gelsin... |
![]() |
| Seçenekler | |
| Stil | |
|
|
Benzer Konular
|
||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| Veritabanı arıyorum | Zion | Script Satışı Siparişi | 0 | 2006-06-11 05:10 |
| mp3 veritabanı | ploop | Reklam ve Reklam Networkleri | 8 | 2006-04-17 18:47 |
| veritabanı. asp bilen:( | kenan56 | Webmaster Genel Konular | 17 | 2005-03-14 10:44 |
| fox pro veritabanı | ROZI | MySQL Veritabanı SQL | 0 | 2003-10-13 07:54 |
| Ah veritabanı!!!! | Anonymous | Java JSP C# | 4 | 2002-08-22 05:44 |