Delphi Can
Veritabanı Dosyasındaki Dataları Listeleme - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Veritabanı Dosyasındaki Dataları Listeleme (/showthread.php?tid=5179)



Veritabanı Dosyasındaki Dataları Listeleme - bnyamin86 - 15-08-2020

Arkadaşlar iyi akşamlar programda kullandığım yıllara göre oluşturulmuş veritabanları var ve bu veritabanları data adlı klasöre kayıt ediliiyor. Yardım etmenizi istediğim konu ise programa giriş formuna veri tabanı seçim butonu koydum bu butona tıkladığımda dbgridde bu veritabanlarının listelenmesini istiyorum ben istediğim veritabanına bağlanmak için çift tıkalyıp seçim yaparak bu veritabanına nasıl bağlanabilirim. Yardımlarınız için şimdiden teşekkür ediyorum.


Veritabanı Dosyasındaki Dataları Listeleme - shooterman - 16-08-2020

Selamlara
Öncelikle kullanmış olduğunuz veritabanları nedir. Klasörlerde nasıl bir yapıya sahiptir. Bunları bir anlatın. Akabinde, ilk önereceğim çözüm, başka bir tablo yaparak bu databaselerin yolunu buraya tanımlamak ve çağırmak. MYSQl ya da MSSQL tarzı bir veritabanı ise bu yollar izlenebilir.


Cvp: Veritabanı Dosyasındaki Dataları Listeleme - cinarbil - 16-08-2020

(15-08-2020, Saat: 22:19)bnyamin86 Adlı Kullanıcıdan Alıntı: Arkadaşlar iyi akşamlar programda kullandığım yıllara göre oluşturulmuş veritabanları var ve bu veritabanları data adlı klasöre kayıt ediliiyor. Yardım etmenizi istediğim konu ise programa giriş formuna veri tabanı seçim butonu koydum bu butona tıkladığımda dbgridde bu veritabanlarının listelenmesini istiyorum ben istediğim veritabanına bağlanmak için çift tıkalyıp seçim yaparak bu veritabanına nasıl bağlanabilirim. Yardımlarınız için şimdiden teşekkür ediyorum.

@wiseman nın dediği gibi sql olduğunu varsayarak

forma 
adoquery, adoconnection,combobox  koy  database  bağla

procedure TForm1.FormCreate(Sender: TObject);
begin
sorgu_firmalar.sql.Add('select * from master.dbo.sysdatabases');   // bu sorgu ile tüm databases listesini al.
// sorgu_firmalar.sql..Add('SELECT name FROM sys.databases WHERE name NOT IN (''master'',''model'',''msdb'',''tempdb'')'); // bununla sistem dosyaları hariç liste alır

while not sorgu_firmalar.Eof do
   begin
     // sql de çalışma yılı varmı ona bakıyor
     cbx_firmalar.Items.Add(sorgu_firmalar.FieldByName('FILENAME').AsString); // firmaları combobox ekle
   end;
sorgu_firmalar.Close; // sorguyu kapat

end;

daha sonra cbx_firmalr onchange, onclick veya  cbx_firmalar.itemindex v.s gibi olaylar ile istediğin firmayı kullan


Cvp: Veritabanı Dosyasındaki Dataları Listeleme - bnyamin86 - 16-08-2020

(16-08-2020, Saat: 00:06)wiseman Adlı Kullanıcıdan Alıntı: Selamlara
Öncelikle kullanmış olduğunuz veritabanları nedir. Klasörlerde nasıl bir yapıya sahiptir. Bunları bir anlatın. Akabinde, ilk önereceğim çözüm, başka bir tablo yaparak bu databaselerin yolunu buraya tanımlamak ve çağırmak. MYSQl ya da MSSQL tarzı bir veritabanı ise bu yollar izlenebilir.

Çok özür diliyorum eksik bilgi verdiğim için kullandığım veritabanı firebird veritabanı dosyaları programın kurulu olduğu dizinde data klasörü içinde fdb uzantılı dosyalara halinde duruyor.yapmak istediğim konusunda aşağıda fotoğraf paylaştım. yardımlarınız için teşekkür ediyorum.

Resimlerde görüldüğü gibi veritabanı yazan yere üç noktaya tıkladığımda veritabanlarının listesi geliyor ben istediğim veritabanına çift tıkladığımda ilgili alana ekleniyor ve bağlantısı otomatik yapılıyor.

[attachment=1304][attachment=1305][attachment=1306]



Veritabanı Dosyasındaki Dataları Listeleme - bnyamin86 - 17-08-2020

Affınıza sığınarak yardımlarınızı bekliyorum.


Cvp: Veritabanı Dosyasındaki Dataları Listeleme - cinarbil - 17-08-2020

(17-08-2020, Saat: 18:09)bnyamin86 Adlı Kullanıcıdan Alıntı: Affınıza sığınarak yardımlarınızı bekliyorum.


procedure TForm2.Button1Click(Sender: TObject);

var
sr:TSearchRec;
begin
cCombobox1.Clear;
FindFirst('C:\Cinar\Sundoor\data\*.*',faAnyFile,sr); //C:\Cinar\Sundoor\data  dosyaların durduğu dizin  fbd firebird uzantısı sendeki farklı ise değiştir

repeat
 if (sr.Name<>'.') and (sr.Name<>'..') then
   combobox1.items.Add(ExtractFileName (sr.Name)); // combobox dosya adını ekle
until FindNext(sr)<>0;

FindClose(sr);
end;

yukarıdaki kodlar dizindeki firebird database isimlerini combobox alır 
sende onclick olayında database bağlanırsın ezbere yazdım deneyemedim ama genel fikir verir

Test edildi. Tamam


Veritabanı Dosyasındaki Dataları Listeleme - bnyamin86 - 17-08-2020

Cevabınız için teşekkür ediyorum sayın ÇınarBil deneyip sonucu size bildireceğim.

Evet şimdi oldu yardımınız için teşekkür edyorum sayın Çinarbil Hocam