IBDatabase_DatabaseName Bağlantı Uyarısı

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
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

IBDatabase_DatabaseName Bağlantı Uyarısı

Mesaj gönderen haydarxxx »

DirectoryListBox ile seçtiğim Klasör yolunu Edit içine alıyorum.Edit deki Klasör altındaki *.FDB dosyasını IBDatabase nin DatabaseName sine aktarıyorum.Fakat data yolu na bağlı olarak bağlantı sağlanamıyor ise uyarı vermesini istedim.Ama Editteki data yolu hatalı olduğu zaman uyarı verdirmek istiyorum if not ile .Dosya yolu hatalı ise IBDatabase in bağlanmaması gerekir ve hata mesajı vermesi gerekir.Fakat bu bende olmuyor daha doğrusu ben yapamadım Kodda ne eksik ki....Hatalı yola bağlanıyor ve hali ile gerekli datasetleri açamıyor.Neden uyarı mesajı vermez anlamdım.:oops:

Kod: Tümünü seç

var
a:integer;
b:string;
begin
if edit1.Text='' then
begin
showmessage('Dosya Yolunuzu Belirlememişsiniz');
end
else
Begin

form3.IBDatabase1.connected :=False;
form3.IBDatabase1.databasename:= edit1.Text+'\BORDRO.FDB';
form3.IBDatabase1.connected :=True;
form3.IBTransaction1.active:=true;
 if not Form3.IBDatabase1.Connected then
  begin
b:='BAĞLANTI SAĞLANAMADI !!! '+#13+'Yolun Doğruluğunu Kontrol Edin'+#13+'Böyle Bir Dosya Bulunamdı';
a:=application.MessageBox (PChar(b),'Bağlantı Hatası',MB_ICONWARNING);
  end
  else
  Begin

form3.IBDatabase1.connected :=False;
FORM3.IBDatabase1.DatabaseName:=edit1.Text+'\BORDRO.FDB';
form3.IBDatabase1.connected :=true;
form3.IBTransaction1.active:=true;
form3.QRY_PERSONEL.active:=true;
form3.QRY_PERSONELDETAY.active:=true;
form3.QRY_PARA.active:=true;

form3.IBDataSet_TARIH.active:=true;
Form3.QRY_AVANS.active:=true;
form3.IBTable1.active:=true;
form3.TBLPERSONEL.active:=true;
form3.IBQuery1.active:=true;
form3.IBQuery2.active:=true;
form3.IBQuery3.active:=true;
form3.IBQuery4.active:=true;
form3.IBQuery5.active:=true;
form3.IBQuery6.active:=true;
form3.IBQuery7.active:=true;
form3.IBQuery8.active:=true;
form3.IBQuery9.active:=true;
form3.IBQuery10.active:=true;
form3.IBQuery11.active:=true;
form3.IBQuery12.active:=true;


form2.IBDatabase1.connected :=False;
form2.IBDatabase1.databasename:= edit1.Text+'\SABIT.FDB';
form2.IBDatabase1.connected :=true;
form2.IBTransaction1.active:=true;
form2.QRY_DERSGIRIS.active:=true;
form2.QRY_SINIF.active:=true;
form2.QRY_ORAN.active:=true;
form2.QRY_OKULSABIT.active:=true;
form2.QRY_SIFREDEGISIMI.active:=true;
form2.TBL_DERSGIRIS.active:=true;
form2.TBL_SINIF.active:=true;
form2.TBL_SABIT.active:=true;
form2.IBDataSet_BRANS.active:=true;
form2.TBL_BRANS.active:=true;
form2.TBL_SIFRE.active:=true;
form2.IBQuery1.active:=true;
form2.IBQuery2.active:=true;
end;
end;
end;
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: IBDatabase_DatabaseName Bağlantı Uyarısı

Mesaj gönderen sabanakman »

form3.IBDatabase1.connected :=True; satırının hemen üstünde veri dosyası var mı yok mu kontrolü yapmak işkence olmasa gerek :wink: . Mesela

Kod: Tümünü seç

..
..
..
FORM3.IBDatabase1.DatabaseName:=edit1.Text+'\BORDRO.FDB';
if not FileExists(form3.IBDatabase1.databasename) then begin
  ShowMessage(Format('%s dosyası bulunamadı.',[form3.IBDatabase1.databasename]));
  Exit;
end;
form3.IBDatabase1.connected :=true;
..
..
..
gibi bir kodla form3.IBDatabase1 açılmadan hemen önceki satırda basit bir kontrol sağlayabilirsin. Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Re: IBDatabase_DatabaseName Bağlantı Uyarısı

Mesaj gönderen haydarxxx »

Teşekkürler hocam :bravo:
Kullanıcı avatarı
cihan
Üye
Mesajlar: 65
Kayıt: 02 Ağu 2005 03:34

Re: IBDatabase_DatabaseName Bağlantı Uyarısı

Mesaj gönderen cihan »

Umarım İşine Yarar Ben böyle kullanıyordum.

anaformun private alanına
procedure AppException(Sender: TObject; E: Exception);

anaformun oncreate olayına
Application.OnException := AppException;

Kod: Tümünü seç

procedure Tanafrm.AppException(Sender: TObject; E: Exception);
//var er:integer;
begin
if(e is EIBError) then
begin
//er:=(e as EIBError).SQLCode; 
//showmessage(inttostr(er));
case (e as EIBError).SQLCode of
-904:begin application.MessageBox('Bilinmeyen Veritabanı','DİKKAT',MB_ICONWARNING+MB_OK	);application.Terminate;end;
18:begin application.MessageBox('Bağlantı Aktif Değil','DİKKAT',MB_ICONWARNING+MB_OK	);application.Terminate;end;
-902:begin
application.MessageBox('Sistem Belirtilen Yolu Bulamıyor','DİKKAT',MB_ICONWARNING+MB_OK	);
ProgramAyarlar2Click(Sender);
FormCreate(Sender);
end;
-803:begin application.MessageBox('Bu Kişi Rehberde Kayıtlı','UYARI',MB_ICONINFORMATION+MB_OK	);end;
  10:begin application.MessageBox('Kullanıcı Girişten Vazgeçti','UYARI',MB_ICONINFORMATION+MB_OK	);application.Terminate;end;
else showmessage(e.Message);
end;
end;
end;
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Re: IBDatabase_DatabaseName Bağlantı Uyarısı

Mesaj gönderen haydarxxx »

Cihan Kardeş Teşekkür .Her iki kod da işimi gördü.
Cevapla