MySQL nadzor nad povezavo

Dbase, sql, paradox in vse drugo kar se tiče baz.
Odgovori
Matija
Prispevkov: 10
Pridružen: 22.02.2012 16:20:31

MySQL nadzor nad povezavo

Odgovor Napisal/-a Matija » 27.02.2012 00:36:18

Živjo,
Imam program, ki se ob zagonu poveže na MySQL bazo podatkov (recimo procedura Povezi).
Med delovanjem programa (program v tem trenutku ne dostopa do baze) ugasnem in ponovno zaženem service od MySQLa.

Ko naslednjič poizkušam dostopati do baze naredim prvo kontrolo povezave z bazo

try
//kratek SELECT stavek
except
//ker povezava ni bila uspešna naredim še enkrat osnovno povezavo na bazo
Povezi
end

Problem je v tem, da se mi v tem primeru ne uspe več povezati na bazo, dokler ponovno ne zaženem programa.

Ima kdo primer dobre prakse, kako se rešuje padec povezave oz. ponovni zagon serverja, ne da bi bilo potrebno ponovno zagnati program?

Hvala za pomoč,
Matija

Stupa
Prispevkov: 44
Pridružen: 20.10.2003 21:17:37

Re: MySQL nadzor nad povezavo

Odgovor Napisal/-a Stupa » 29.02.2012 11:19:45

Katero komponento uporabljaš?

Fortuna
Prispevkov: 1097
Pridružen: 26.06.2004 09:59:52

Re: MySQL nadzor nad povezavo

Odgovor Napisal/-a Fortuna » 01.03.2012 07:42:36

Jaz to uporabljam pri remote povezavah kjer je connect rabi več časa in je treba ponavljat(putty);



DM1.ZCs1.Connected:=false:
try
DM1.ZCs1.Connected:=true;
except
try
sleep(100);
DM1.ZCs1.Connected:=true;

except
try
sleep(100);
DM1.ZCs1.Connected:=true;
except
try
sleep(100);
DM1.ZCs1.Connected:=true;
except
sleep(100);
DM1.ZCs1.Connected:=true;
end;
end;
end;

end;

Fortuna
Prispevkov: 1097
Pridružen: 26.06.2004 09:59:52

Re: MySQL nadzor nad povezavo

Odgovor Napisal/-a Fortuna » 01.03.2012 07:48:37

Fortuna napisal/-a:Jaz to uporabljam pri remote povezavah kjer je connect rabi več časa in je treba ponavljat(putty);



DM1.ZCs1.Connected:=false:
try
DM1.ZCs1.Connected:=true;
except
try
sleep(100);
DM1.ZCs1.Connected:=true;

except
try
sleep(100);
DM1.ZCs1.Connected:=true;
except
try
sleep(100);
DM1.ZCs1.Connected:=true;
except
sleep(100);
DM1.ZCs1.Connected:=true;
end;
end;
end;

end;
Jaz iporabljam Zeos lib componente.

Vprašaš se lahkotudi tako if not DM1.ZCs1.Connected then
begin
povezi();
end;


Odgovori