Pristupam preko TDataSoruce -> TQuery -> TDatabase -> ODBC 3.51 -> (LAN) -> MySQL 5.0.37
Sve radi savršeno, sem jedne sitnice: Kada prekinem mrežu na nekoliko sekundi, dobijam nekoliko poruka sa greškom (jedna za drugom), i nakon toga program više ne može da proradi. Spojim mrežu nazad, ali uporno se ponavljaju druga i treća poruka. Moram da restartujem program da bi proradila veza sa bazom.
Na koji način da se veza uspostavi opet? Da li postoji neki "automatski" način, ili bih morao da pišem kod koji proverava vezu sa bazom pa je "ručno" upostavlja ukoliko je izgubljena. Kako?




//Poruke dolaze iz ovog dela:
procedure DbiError(ErrorCode: DBIResult);
begin
raise EDBEngineError.Create(ErrorCode);
end;
//Moj kod za pristup bazi je ovakav:
procedure Sel (obj: TQuery; sqlupit: string);
//sprovodi SQL upit koji ima odgovor (SELECT, i slicno)
begin
obj.Active := false;
obj.Sql.Clear;
obj.Sql.Text := sqlupit;
obj.Active := true;
end;
procedure Del (obj: TQuery; sqlupit: string);
//sprovodi SQL upit koji nema odgovor (DELETE, INSERT, i slicno)
begin
obj.Sql.Clear;
obj.Sql.Text := sqlupit;
obj.ExecSQL;
end;
[Ovu poruku je menjao DjGoran dana 01.09.2007. u 23:16 GMT+1]