Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Spajanje na bazu sa sporim serverom ili sporom internet vezom

  • 14 odgovora
  • 5.344 pregleda

Najnovija ↓

Spajanje na bazu sa sporim serverom ili sporom internet vezom 14.01.2015. u 15:03 · pre 143 meseca #1
Koristim komponente UniDAC i u poslenje vrijeme imam problem sa podacima koje se nalaze na serveru
jer mi se cesto javi greska da je server nedostupan, odnosno da program obradjuje podatke brze nego sto ih
moze dobiti sa servera.
Kako da ubacim izuzetke da prilikom konekcije program saceka odziv sa servera.
To me zanima za 2 komponente na UniConnection i UniQuery za jednu prije same konekcije
na bazu kad se pokrece program i za ovu drugu kad postavim neki upit da saceka sa realizacijom dok
se ne uspostavi veza sa bazom
Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 14.01.2015. u 16:44 · pre 143 meseca #2
Jedino da se vrtiš u petlji i ponavljaš zahtev dok ti ne dođu ti željeni podaci.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 15.01.2015. u 00:58 · pre 143 meseca #3
Jel imas primjer kako to da uradim sa UniQuery componentom
konekciju bi nekako rjesio ali kad saljem kompleksan upit
nemam ideju.
Evo najprostiji primjer koda
--------------------------------------
UniQuery .Close;
UniQuery .Active:=true;
UniQuery .sql.Clear;
UniQuery .SQL.Add ('select * from partneri');
try
UniQuery .Open;
except
on EDatabaseError do
ShowMessage ('Greska u proceduri');
end;

----------------------
Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 15.01.2015. u 01:54 · pre 143 meseca #5
Otprilike ovako:

Code:

repeat 
  try
    qry.Open;
  except
     on EDatabaseError do // Proveri koja je greska za timeout
     begin
        Sleep(100); // Sacekamo malo pa ponovimo zahtev
     end;
  end;
until qry.Active;
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Sviđa mi se1
Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 15.01.2015. u 13:54 · pre 143 meseca #6
Citat:
XGhost:
UniQuery .Close;
UniQuery .Active:=true;
UniQuery .sql.Clear;
UniQuery .SQL.Add ('select * from partneri');
try
UniQuery .Open;
except
on EDatabaseError do
ShowMessage ('Greska u proceduri');
end;

----------------------


Zar 'UniQuery.Active := true;' i 'UniQuery.Open;' nije jedna te ista stvar? A setovanje Active pre upisa SQL-a: je l to nesto specijalno s tim komponentama, pa mora/moze tako?

Pozz
Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 15.01.2015. u 14:04 · pre 143 meseca #7

> Zar 'UniQuery.Active := true;' i 'UniQuery.Open;' nije jedna te ista stvar? A setovanje Active pre upisa SQL-a:
> je l to nesto specijalno s tim komponentama, pa mora/moze tako?

Promena teksta SQL kverija sigurno zatvara i oslobadja zauzete resurse, isto kao i Close. Tako da je postavljanje na Active višak.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 15.01.2015. u 23:45 · pre 143 meseca #8
Znam da je komanda active visak greskom se nasla jer sam kod napisao onako napamet

imam na komponenti UniConnection opciju ConnectionTimeout i defaultno stoji 15 medjutim
promjenom vrijednosti nisam primjetio neki napredak
Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 16.01.2015. u 00:08 · pre 143 meseca #9
Zahvaljujem SAVKICU :)

Izgleda da je proslo bar sto se konekcije tice
Stavio sam kod u on create (na datamodul)

repeat
try
DM1.UniConnection1.Connected:=true;
except
on e: EUNIError do
begin
Sleep(100);
end;
end;
until DM1.UniConnection1.Connected=true;

Valjda ce jos nekom koristiti

Kako da jos ovdje ubacim ako npr konekcije nikako nema 30 sekundi da ugasi aplikaciju i izbaci poruku da nije moguca konekcija konekcija


Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 16.01.2015. u 00:18 · pre 143 meseca #10
Treba ti dodatna promenljiva, koju setuješ pre ulaska u petlju i proveravaš u uslovu izlaska iz petlje:

Code:


var
  StartTime: TDateTime;
begin
  StartTime := Now;

  repeat
   
  until SecondsBetween(Now, StartTime) > 30
end;


Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Sviđa mi se1
Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 16.01.2015. u 00:35 · pre 143 meseca #11
Malo sam zbunjen

Jel da sve ubacim ovako u oncreate dogadjaj
ili da ovo ispod

repeat
try
DM1.UniConnection1.Connected:=true;
except
on e: EUNIError do
begin
Sleep(100);
end;
end;
until DM1.UniConnection1.Connected=true;

napravim kao proceduru (npr procedure Konekcija) pa da ubacim u kod koji si zadnji napisao
ili kako vec
Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 16.01.2015. u 01:04 · pre 143 meseca #12
Dao sam ti primer kako mozes bilo koju petlju da vremenski ograničiš. Dakle, taj primer treba da iskombinuješ sa tvojom procedurom (petljom), otprilike kao dole.
BTW koristi code tagove za pisanje koda, olakšavaju praćenje.

Code:

  StartTime := Now;
  repeat
  try
    DM1.UniConnection1.Connected:=true;
  except
    on e: EUNIError do
     begin
       Sleep(100);
     end;
   end;
until DM1.UniConnection1.Connected or (SecondsBetween(Now, StartTime) > 30);

Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Sviđa mi se1
Re: Spajanje na bazu sa sporim serverom ili sporom internet vezom 16.01.2015. u 13:27 · pre 143 meseca #14
Koju grešku dobijaš? Proveri u kom je unitu definisana funkcija i da li ga imaš u uses listi.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme