izmenjeno 1 put, poslednji put DjGoran 01.09.2007. u 23:16
Izmene poruke
- DjGoran01.09.2007. u 23:16zapis iz teksta poruke
Učim Delphi već nekoliko dana. Napravio sam program koji pristupa bazi (preko mreže) svakih 0.2 sekunde, i ukoliko se pojavi novi zapis onda odradi šta treba i upiše neke stvari u bazu.
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?




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?




Code:
//Poruke dolaze iz ovog dela:
procedure DbiError(ErrorCode: DBIResult);
begin
raise EDBEngineError.Create(ErrorCode);
end;
//Poruke dolaze iz ovog dela:
procedure DbiError(ErrorCode: DBIResult);
begin
raise EDBEngineError.Create(ErrorCode);
end;
Code:
//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;
//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;