Veritabanındaki tabloları ve içeriklerini listeletme(Yardım)

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
legend
Üye
Mesajlar: 3
Kayıt: 02 Oca 2008 02:45

Veritabanındaki tabloları ve içeriklerini listeletme(Yardım)

Mesaj gönderen legend »

Merhaba Arkadaşlar;

Aldığım proje ödevine göre bilgisayarımdaki herhangi bir veritabanına(firebird veya interbase) kullanıcı adı ve şifre ile bağlanıp; bu veritabanındaki tabloları bir memoda (veya daha başka bir araç ile) listeletip, bu tablolardan birini tıklayarak, tabloların içindeki kolonların adını, bu alanların veritipini ve boyutunu ayrı bir bölümde tablo halinde listeletmek istiyorum.

Delphi hakkında çok bilgim yok. Nasıl yapacağım hakkında yardımcı olursanız, yardımlarınızı da ayrıntılı bir şekilde verirseniz çok sevinirim. Teşekkürler!...

NOT : Nasıl birşey olcağını anlayamayan olursa projenin taslağını koyabilirim!..
En son legend tarafından 08 Oca 2008 07:13 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

herhangi vt den kastın mysqlmi ms sql server mı fb mi accessmi.

VTYS sistemlerinin en buyuk özelliği

vt lerin
tabloların
alanların

liste ve yapısının da bir vt de tutulmasıdır.

bakınız codd un 12 kuralı. kısaca mümkündür ama hangi db..
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
legend
Üye
Mesajlar: 3
Kayıt: 02 Oca 2008 02:45

Mesaj gönderen legend »

Firebird için olacak!..

Tam olarak nasıl yapacağımı bilmiyorum, yol gösterirseniz çok iyi olur!...

Şöyle bir şey olacak;

Resim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

viewtopic.php?t=9123

Kolay gelsin.
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

Şöyle birşey işinizi görür mü, geliştirmeye açık ve basit bir program
Resim
Download
http://rapidshare.com/files/81963388/Sq ... r.rar.html
Forma birer adet database, transaction, dataset, datasource, stringgrid, memo, buton, opendialog ile 2 adet combobox ekleyin.
Database, transaction,dataset,datasource bağlantılarını yapın.
Aşağıdaki eventleri oluşturun.
Yalnız kodlar fibplus'a göre olup, eğer kod tanımında problem olursa siz bunları interbase bileşenlerine göre değiştirin.

Kod: Tümünü seç

procedure TAnaform.Btn_DataClick(Sender: TObject);
begin
     If OD.Execute Then // Opendialog
        Edt_Data.Text:=OD.FileName;

     If VT.Connected Then VT.Connected:=False;
     VT.DatabaseName:=Edt_Data.Text;
     VT.ConnectParams.UserName:='SYSDBA';
     VT.ConnectParams.Password:='masterkey';
     Try
        Vt.Connected:=TRue;
     Except
        Showmessage('Veritabanı açılamadı...');
     End;

     If VT.Connected Then TS.Active:=TRue;
     VT.GetTableNames(Cbx_Table.Items, False);
     Cbx_Table.ItemIndex:=0;
end;

procedure TAnaform.Btn_KapatClick(Sender: TObject);
begin
     close;
end;

procedure TAnaform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     VT.Connected:=False;
end;

procedure TAnaform.FormShow(Sender: TObject);
begin
     Grid.Cells[0,0]:='ALAN ADI';
     Grid.Cells[1,0]:='TİPİ';
     Grid.Cells[2,0]:='UZUNLUĞU';
end;

procedure TAnaform.Cbx_TableChange(Sender: TObject);
var
     I,X:Integer;
     S:Variant;
begin
     VT.GetFieldNames(Cbx_Table.Text,Cbx_Alan.Items,True);
     Cbx_Alan.ItemIndex:=0;
     Grid.RowCount:=Cbx_Alan.Items.Count+1;
     IF DS.Active tHEN DS.Close;
     DS.SQLs.SelectSQL.Text:='Select * from '+Cbx_Table.Items[Cbx_Table.Itemindex];
     DS.Open;
     For I:=0 To Cbx_Alan.Items.Count-1 do begin
         Grid.Cells[0,I+1]:=DS.FieldDefs.Items[I].Name;
         S:=DS.FieldDefs.Items[I].datatype;
         X:=S;
         Grid.Cells[1,I+1]:=AlanTipi(X);
         Grid.Cells[2,I+1]:=inttostr(DS.FieldDefs.Items[I].Size);
     End;
end;

function TAnaform.AlanTipi(Gelen:Integer):String;
Begin
     Case Gelen Of
          1:Result:='VARCHAR';
          2:Result:='SMALLINTEGER';
          3:Result:='INTEGER';
          4:Result:='4-----';
          5:Result:='5-----';
          6:Result:='DOUBLE PRECISION';
          7:Result:='7----';
          8:Result:='BIGINTEGER';
          9:Result:='DATE';
         10:Result:='TIME';
         11:Result:='TIMESTAMP';
         12:Result:='12-----';
         13:Result:='13-----';
         14:Result:='14-----';
         15:Result:='BLOB BINARY';
         16:Result:='BLOB TEXT';
      Else
            Result:='TANIMSIZ';
     End;
end;
legend
Üye
Mesajlar: 3
Kayıt: 02 Oca 2008 02:45

Mesaj gönderen legend »

Sağol, nasıl yapacağımı hiç bilmiyordum biraz kafamda şekillendi. İşime yarar bunlar!...

Interbase ' e göre değiştirirken neler yapmalıyım?
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

Yukardaki kodu ib nesneleri ile oluşturduysanız problem yok...
Cevapla