Seçilen Veri Tabanına Göre Bağlantı Sağlanması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
bnyamin
Üye
Mesajlar: 44
Kayıt: 01 Mar 2019 12:55

Seçilen Veri Tabanına Göre Bağlantı Sağlanması

Mesaj gönderen bnyamin »

Kod: Tümünü seç

procedure TForm2.JvXPButton1Click(Sender: TObject);
var
 DataDirectory: string;
 DBFile: string;
begin
 DataDirectory := TPath.Combine(TPath.GetLibraryPath(), 'data');
 if not TDirectory.Exists(DataDirectory) then Exit();
 if listbox1.ItemIndex = -1 then Exit();
 
 DBFile := TPath.Combine(DataDirectory, listbox1.Items[listbox1.ItemIndex]);
 ShowMessage('Seçilen veritabanı:' + sLineBreak + DBFile);
 form1.edit5.Text:=listbox1.Items[listbox1.ItemIndex];
 form2.Close;
try
 fdconnection1.DriverName := 'FB'; //Hangi tür veritabanı istediğimiz belirtiyoruz.
 fdconnection1.Params.DriverID:='FB';
 fdconnection1.Params.Database := ExtractFilePath(Application.ExeName) + 'DATA/SENKRON-2020.FDB'; //veritabanı yolumuzu belirtiyoruz.
 fdconnection1.Params.Add('user_name=SYSDBA');
 fdconnection1.Params.Add('password=masterkey');
 fdconnection1.Params.Add('lc_ctype=WIN1254');
 fdconnection1.Params.Add('sql_role_name=SYSDBA');
 fdconnection1.LoginPrompt:=false;
 fdconnection1.Connected := True; //Bağlantıyı açıyoruz.
 ShowMessage('Veritabanı bağlantısı sağlandı!');
except
 ShowMessage('Veritabanı bağlantı hatası!');
end;
end;

Arkadaşlar yıllara göre veri tabanlarım mevcut ara sıra eski veri tabanlarına dönmem gerekiyor yukarıda araştırarak oluşturduğum bir kod var şöyle ki veri tabanı seçimini yapabiliyorum ama iş bağlantıya gelince beceremedim. Veri tabanını seçmek için yazmış olduğum kodla fdconnection daki data kısmını ilişkilendiremedim yardımlarınızı bekliyorum şimdiden teşekkür ediyorum.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Seçilen Veri Tabanına Göre Bağlantı Sağlanması

Mesaj gönderen freeman35 »

- Firebirde en doğru olan, alias kullanmaktır.
- except kullanmışsın iyi güzelde, hata sebebi mesajda yazılır, sen bunu engellediğin için hatanın ne olduğunu görmüyorsun
except
on E: Exception do begin
ShowMessage('Veritabanı bağlantı hatası! >> ' +E.Message);// -->hata neymiş?
end;
end;
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
bnyamin
Üye
Mesajlar: 44
Kayıt: 01 Mar 2019 12:55

Re: Seçilen Veri Tabanına Göre Bağlantı Sağlanması

Mesaj gönderen bnyamin »

Sayın freeman35 öncelikle teşekkür ediyorum cevabınız için. Sanırım ben derdimi anlatamadım özür diliyorum.
burada hata mesajı falan almıyorum zaten hatada yok sadece

procedure TForm2.JvXPButton1Click(Sender: TObject);
var
DataDirectory: string;
DBFile: string;
begin
DataDirectory := TPath.Combine(TPath.GetLibraryPath(), 'data');
if not TDirectory.Exists(DataDirectory) then Exit();
if listbox1.ItemIndex = -1 then Exit();

DBFile := TPath.Combine(DataDirectory, listbox1.Items[listbox1.ItemIndex]);
ShowMessage('Seçilen veritabanı:' + sLineBreak + DBFile);
form1.edit5.Text:=listbox1.Items[listbox1.ItemIndex];
form2.Close;

bu kodla istediğim veri tabanını seçebiliyorum.
ben seçimimi yaptığımda veritabanı bağlantı kodunda belirtmek için ekstra parantez içine aldığım bölüm benim veri tabanı seçimime göre değişecek
işte ozaman bağlantı sağlıklı bir şekilde sağlanıyor.

fdconnection1.Params.Database := ExtractFilePath(Application.ExeName) +((((( 'DATA/SENKRON-2020.FDB')))));

farkındayım elbet bunun elbet pratik bir kodu vardır ama ben acemi olduğum için kodlara çok hakim değilim ancak siz değerli kardeşlerim sayesinde yavaş yavaş ilerliyoruz. eğerki farklı bir yöntem tavsiye edeceğin bir kodun varsa paylaşırsan çok sevinirim.
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Seçilen Veri Tabanına Göre Bağlantı Sağlanması

Mesaj gönderen yusuf simsek »

Üstat,

Öncelikke Veritabanı ile bağlantı sağlayan tüm ekranları kapatman iyi olur...

Listboxtan İlgili Yıl ( veritabanı ) seçtikten sonra ( BAĞLAN BUTONU altında )

Kod: Tümünü seç

fdconnection1.Connected := FALSE;
fdconnection1.Params.Database := ExtractFilePath(Application.ExeName) +'DATA/' +  listbox1.Items[listbox1.ItemIndex] ;
fdconnection1.Connected := TRUE;
yazman yeterli olacaktır.
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Seçilen Veri Tabanına Göre Bağlantı Sağlanması

Mesaj gönderen freeman35 »

bnyamin yazdı: 29 Eyl 2020 09:55 işte ozaman bağlantı sağlıklı bir şekilde sağlanıyor.
"Sağlık" anlayışın nedir? db ya bağlanır ya bağlanmaz. Bağlanıyorsa neyi soruyorsun? hata yada sorun nedir?
bnyamin yazdı: 29 Eyl 2020 09:55 fdconnection1.Params.Database := ExtractFilePath(Application.ExeName) +((((( 'DATA/SENKRON-2020.FDB')))));
"/" unix sistemlerde kullanılır, windows "\" kullanır.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
bnyamin
Üye
Mesajlar: 44
Kayıt: 01 Mar 2019 12:55

Re: Seçilen Veri Tabanına Göre Bağlantı Sağlanması

Mesaj gönderen bnyamin »

Sayın arkadaşlar sorunum Yusuş ŞİMŞEK hocamın yardımıyla çözüldü. Cevap veren arkadaşlarıma teşekkür ediyorum vaktinizi ayırıp ilgilendiğiniz için. Freeman35 hocam istediğim Yusuf ŞİMŞEK hocamın tavsiye ettiği koddu.
Kullanıcı avatarı
Commandx
Üye
Mesajlar: 181
Kayıt: 01 Oca 2008 05:34

Re: Seçilen Veri Tabanına Göre Bağlantı Sağlanması

Mesaj gönderen Commandx »

yusuf simsek yazdı: 29 Eyl 2020 01:29 Üstat,

Öncelikke Veritabanı ile bağlantı sağlayan tüm ekranları kapatman iyi olur...

Listboxtan İlgili Yıl ( veritabanı ) seçtikten sonra ( BAĞLAN BUTONU altında )

Kod: Tümünü seç

fdconnection1.Connected := FALSE;
fdconnection1.Params.Database := ExtractFilePath(Application.ExeName) +'DATA/' +  listbox1.Items[listbox1.ItemIndex] ;
fdconnection1.Connected := TRUE;
yazman yeterli olacaktır.
Bana da lazım oldu Teşekkür ederim @yusuf simsek.
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Seçilen Veri Tabanına Göre Bağlantı Sağlanması

Mesaj gönderen yusuf simsek »

freeman35 yazdı: 30 Eyl 2020 08:32 "/" unix sistemlerde kullanılır, windows "\" kullanır.
Üstadım ezberden yazmıştık... Allah Razı olsun hatamızı hemen düzeltmişsiniz...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Seçilen Veri Tabanına Göre Bağlantı Sağlanması

Mesaj gönderen freeman35 »

yusuf simsek yazdı: 02 Eki 2020 10:08
freeman35 yazdı: 30 Eyl 2020 08:32 "/" unix sistemlerde kullanılır, windows "\" kullanır.
Üstadım ezberden yazmıştık... Allah Razı olsun hatamızı hemen düzeltmişsiniz...
Ben onu ilk mesaj da gördüm, senin yazdığında değil ve gördüğüm "hataya" cevap veriyorum, kimin yazdığına ben hiç bakmıyorum. Yazdıklarımı da kişiye değil genele diye yazıyorum.Sonuçta forumdaki cevaplar gugıl aramalarında da çıkıyor ve üye olmaya gerek kalmadan okunabiliyor.
Cümlemizden inşAllah.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Cevapla