tablo adlarına ulaşmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

tablo adlarına ulaşmak

Mesaj gönderen pentiumkivanc »

Merhaba, Ben ado kullanarak mssql veritabanına ulaşmayı sağlayan bir program yazıyorum. Interbase de ibquery i açtığınızda yan tarafta tablo adları ve seçtiğiniz tabloya ait alanlar çıkıyordu amacım bunu programım içerisinden ve ado altında yapmak. Bunun için formun üzerine iki tane listbox koydum. örneğin listbox1 tablo adlarını listbox2 de ona bağlı alanları sorgulayacak.
Ancak veritabanındaki tablolara ulaşmak için

Kod: Tümünü seç

adoconnection1.gettablenames(listbox1.items) 
yaptığımda tablo adları owner bilgileri olmadan geliyor. Bense bunların örneğin dbo, stok v.s owner lara bağlı olarak örneğin stok.users,stok.hareket gibi gelmesini istiyorum.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Kod: Tümünü seç

SELECT DISTINCT  name,ID FROM sysobjects
WHERE ((xtype=''U'')OR(xtype=''V''))   and status>-1
Tabloların isimlerini ve idlerini verir.

Kod: Tümünü seç

SELECT NAME FROM SYSCOLUMNS WHERE ID=1
idsi 1 olan tablonun alanlarını verir.
doganzorlu
Kıdemli Üye
Mesajlar: 395
Kayıt: 22 Tem 2004 09:15
Konum: İzmir
İletişim:

Mesaj gönderen doganzorlu »

Selam,

Şayet oracle kullanıyorsanız;

SELECT * FROM all_tables WHERE owner = 'xxx'

xxx kullanıcı (ya da diğer bir deyişle schema) ismidir.

Tüm schema ları almak içinse;

SELECT select owner||'.'||table_name tableobject FROM all_tables

Kolay gelsin.
Doğan Zorlu, İzmir

------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Bu gibi durumlar için (yani sadece table'lar filan için değil) diğer View Index, Primary Key, SP, Function gibi şeylere ulaşmak için SQL'in standardlarında INFORMATION_SCHEMA diye bir nesne var.

Internetten aratırsanız veya MSDN varsa (MS-SQL Server'ın dokumanları arasında var.)

Örneğin

Kod: Tümünü seç

SELECT * FROM INFORMATION_SCHEMA.TABLES

Kod: Tümünü seç

SELECT * FROM INFORMATION_SCHEMA.VIEWS
gibi gibi bir sürü bilgiyi alabiliyorsunuz.

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

Çok teşekkür ederim hepside merak ettiğim şeylerdi

Kod: Tümünü seç

SELECT * FROM INFORMATION_SCHEMA.TABLES
ile gelen sorgudan listbox1.Items.Add(adoquery1table_schema.Value+'.'+adoquery1table_name.Value);
şeklinde yaptım oldu. Herkese tekrar teşekkürler..
Cevapla