Za hvatanje izuzetaka na UniDac koristi EUniError, dole imaš jedan moj primer povezivanja na više baza podataka plus na lokalne.
Code:
procedure TfrmMain.PoveziNaBazu;
begin
with dm do
begin
try
frmMain.Update;
Screen.Cursor := crHourGlass;
NapredakPripreme.GaugeMax := 8;
NapredakPripreme.Caption := 'Povezivanje na ' + Konekcija.ServerBaze;
NapredakPripreme.ButtonCancel := False;
NapredakPripreme.Open(PanelNapredak);
ConnMsSql.Server := Konekcija.ServerBaze;
ConnMsSql.Username:= Konekcija.User_Name;
ConnMsSql.Password:= Konekcija.Pass;
ConnMsSql.Connect;
NapredakPripreme.GetGauge.StepIt;
PgConn.Server := Konekcija.IP_Pg;
NapredakPripreme.Caption := 'Povezivanje na ' + Konekcija.IP_Pg+'-backoffice...';
NapredakPripreme.GetLabel.Update;
PgConn.Connect;
NapredakPripreme.GetGauge.StepIt;
NapredakPripreme.Caption := 'Preuzimanje podataka o prodavnicama...';
NapredakPripreme.GetLabel.Update;
ProdavniceQP.Open;
NapredakPripreme.GetGauge.StepIt;
NapredakPripreme.Caption := 'Preuzimanje podataka o barkodovima...';
NapredakPripreme.GetLabel.Update;
ASWQP.Open;
NapredakPripreme.GetGauge.StepIt;
NapredakPripreme.Caption := 'Preuzimanje podataka o artiklima...';
NapredakPripreme.GetLabel.Update;
ASWQ_B2P.Open;
NapredakPripreme.GetGauge.StepIt;
dbfArtikal.Active := True;
NapredakPripreme.GetGauge.StepIt;
dbfBCODE.Active := True;
NapredakPripreme.GetGauge.StepIt;
dbfSKLROB.Active := True;
NapredakPripreme.GetGauge.StepIt;
if PgConn.Connected then
UpdateLog('Uspešno povezan na: ' + dm.PgConn.Server);
DatotekaQ.SQL.Clear;
DatotekaQ.SQL.Add('SELECT [Naziv],[Putanja],[Operacija],[Lokacija],[Prefiks], [PrijaviGresku] FROM [Datoteka] order by ID_Datoteka');
DatotekaQ.Open;
DatotekaQ.First;
except
on E:EUniError do
begin
MessageDlg('Nema konekcije ka bazi podataka!' + sLineBreak +
'Pozovite IT sluzbu.', mtError, [mbOK], 0);
UpdateLog('Nema konekcije ka bazi podataka!', 'Nema konekcije ka bazi podataka! ' + E.Message);
UgasiProgram;
end;
on EL: Exception do
begin
MessageDlg('Nema konekcije ka lokalnoj bazi podataka!' + sLineBreak +
'Pozovite IT sluzbu.', mtError, [mbOK], 0);
UpdateLog('Nema konekcije sa DBF-ovima!', 'Nema konekcije sa DBF-ovima! ' + EL.Message);
UgasiProgram;
end;
end;
NapredakPripreme.Close;
end;
end;