[ smal @ 05.08.2009. 11:47 ] @
Situacija je sledeća:

Napravio sam aplikaciju kojom se iz centrale firme može pristupiti udeljenim objektima tj. linkovanim Advantage database tabelama, preko ODBC drajvera, i izvršavati neki jednostavni upiti (tipa koliki je trenutni pazar, stanje zaliha za određeni artikl i sl.), a rezultati se pakuju u privremenu Access tabelu.

To sve radi sasvim pristojno brzo i lepo, pod uslovom da veza između udaljenih prodavnica postoji.
Ali, pošto su u pitanju VPN konekcije, dešava se povremeno da se veza sa nekim objektom prekine (nestane struje, zaglupi se ruter i sl.), a onda i moja aplikacija javi grešku i prestane sa radom...

Dakle, konkretno pitanje glasi - da li, i na koji način je moguće proveriti da li je ODBC konekcija aktivna, i ukoliko nije, da se ista nekako preskoči, tj. da je query ne uzima u obzir u trenutnoj obradi, dok se veza ponovo ne uspostavi?
[ Trtko @ 06.08.2009. 14:57 ] @
Po meni bi ti najednostavnije bilo da ubacis obradu greske,
Onda obradiš grešku , ili jednostavno izadjes van iz forme ili programa


On error goto greska

......

tu je tvoj cod , tvoja konekcija
itd....


exit sub ' ili exit function
greska:

err clear
exit sub


ili mozes obraditi gresku, znaci , neka ti ispise broj greske pa da znas koji je broj greske
kad pukne veza..

pa sad kad znas koja je greska ,, npr err = 123


onda bi mogao ispitati

If err=133 then
msgbox " Nema veze sa serverom, pokušajte kasnije..... itd "
err.clear
exit sub

end if



pozdrav

[ smal @ 06.08.2009. 20:59 ] @
Citat:
Trtko: Po meni bi ti najednostavnije bilo da ubacis obradu greske,
Onda obradiš grešku , ili jednostavno izadjes van iz forme ili programa


I ja sam razmišljao u tom smeru, samo, problem je izgleda što prvi zakuka ODBC drajver, tj. on javi grešku a ne Access, a ne znam kako da obradim takvu poruku.
Sa druge strane, sve da se takva greška obradi, dosta dugo traje dok drajver ne "ukapira" da veza ne postoji, što nije baš praktično.
Doduše, mogu na ADS serveru da smanjim Client Time Out vreme, ali time ću da zeznem izvršavanje komplikovanih upita, koji zahtevaju više vremena za obradu...

Nego, sad mi pade na pamet, da li je moguće iz Accessa pingovati IP adresu servera, pa onda obraditi response? Mislim da bi na taj način provera veze išla dosta brže.
[ smal @ 06.08.2009. 22:47 ] @
Citat:
smal: Doduše, mogu na ADS serveru da smanjim Client Time Out vreme


Ups, ovo sam lupio , pa stoga zaboravite na gore navedeno. Client Time Out naravno važi kad je konekcija već uspostavljena, a ne kada ne postoji.
Pardon.
[ Scelle @ 07.08.2009. 22:05 ] @
Evo, cini mi se da ovjde ima par interesantnih ideja:
http://forums.devshed.com/visu...g-52/ping-from-vba-328706.html
Meni se najvise dopada post #13.

A i ovo nije losa lokacija:
http://vbnet.mvps.org/index.html?code/internet/ping.htm

Srecno!
[ smal @ 08.08.2009. 13:53 ] @
Citat:
Scelle: Evo, cini mi se da ovjde ima par interesantnih ideja:
http://forums.devshed.com/visu...g-52/ping-from-vba-328706.html
Meni se najvise dopada post #13.


Hej, ovo je više nego dobro! Kodu iz primera #13 treba manje od 1 sekunde da utvrdi da li postoji aktivna konekcija. Baš lepo :)
Inače, iskoristio sam drugu verziju SystemOnline funkcije iz primera, pošto tako ne iskače Command Prompt...


Hvala puno!

PS. Evo, napravio sam i mali primer. Mislim da zaslužuje da se nađe u arhivi foruma. Zatrebaće.

[Ovu poruku je menjao smal dana 08.08.2009. u 17:23 GMT+1]
[ Scelle @ 08.08.2009. 22:27 ] @
Drago mi je da sam pomogao da ti drugi pomognu.

Hvala tebi na primjeru, ja sam ga vec "spakovao" u svoj spajz. Mozda nekad i zatreba.
[ Getsbi @ 09.08.2009. 08:16 ] @
Dodao sam ovu temu u Top.... Interesantne teme.
http://www.elitesecurity.org/t127904-Interesantne-teme.