[ 00000110001 @ 24.02.2016. 07:33 ] @
hi,
imam problem sa promjenom konekcije sa jedne baze na drugu.
znaci imam program koji se povezuje preko mreze na drugi pc gdje je baza podataka (firebird) npr. 192.168.1.1/3050:c:\test.fdb
Code:

IBDatabase1.Connected:=True;

ako sad izgubim vezu izmedju ova dva pc-a onda ce client da radi sa lokalnom bazom dalje npr. 127.0.0.1/3050:c:\test.fdb
Code:

IBDatabase1.Connected:=False;
IBDatabase1.DatabaseName:=...;
IBDatabase1.Connected:=True;


Problem je sto "IBDatabase1.Connected:=False" uzme oko 20sec vremena!!!
Moze li se nekako ovo vrijeme skratiti, ima li neki timeout da se podesi?

Znaci hocu da umjesto baze na nekom drugom pc-u koristim lokalnu u sto je moguce kracem roku.

hvala unaprijed!
[ savkic @ 24.02.2016. 13:40 ] @
> Problem je sto "IBDatabase1.Connected:=False" uzme oko 20sec vremena!!!
> Moze li se nekako ovo vrijeme skratiti, ima li neki timeout da se podesi?
> Znaci hocu da umjesto baze na nekom drugom pc-u koristim lokalnu u sto je moguce kracem roku.

Secam se da sam i ja imao neki slican problem sa IBX ali sad u kodu ne mogu da nadjem primer i sta sam tacno radio. Pokusaj da umesto gasis tu postojecu instancu IBDatabase1, napravis novu i nju povezes sa komponentama.
[ salvaric @ 25.02.2016. 07:35 ] @
I ja sam imao isti problem sa ADO konekcijom, mislim da prekid veze usporavaju sve komponente koje koriste tu konekciju.

Pokušaj da posle upotrebe svake komponente (query itd...) oslbodiš konekciju iste (ADOTable1.Connection := nil), i gledaj da ti tabele i query-ji ne ostaju otvoreni pre oslobađanja.
[ salvaric @ 25.02.2016. 08:25 ] @
Mislim da kod IB moraš oslobađati i IBTransaction.DefaultDatabase := nil, a kod IBTable.Database := nil pa tek onda gasiti konekciju.