Search  
Tuesday, August 16, 2022 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Client/Server  Bune practici...
 Bune practici
 
 11/17/2019 7:07:00 PM
User is offlinealemao
353 posts
3rd


Bune practici
 (United States)
Domnule Buduru,

Din postarile de pe forum am vazut ca din categoria "bune practici" este conectarea la bazele de date / servere la deschiderea aplicatiei.
Bun, dar mai sunt cateva cazuri exceptionale cand trebuie sa mai fac niste conectari mai rare (gen cotrobaiala printr-o arhiva, actualizarea unor nomenclatoare, etc).
Asadar, in ultimele luni am folosit foarte mult cursoare folosind clasa cursoradapter.

Pentru conectarea la server extern (Firebird) folossc codul de mai jos:
Public oca
oca = newobject('numeclasa','numebiblioteca')
oca.cursorfill

Acest cod creaza automat o conexiune cu serverul

Dupa ce inchid cursorul
oca = ''
release oca
am remarcat ca ramane conexiunea la server pe care o pot inchide cu sqldisconnect(nhandle).

- Cum pot afla care este nhandle al cursorului, ca sa fac deconectarea de la server???

Multumesc!!!




 11/18/2019 3:33:55 AM
User is offlineDaniel Buduru
3528 posts
1st




Re: Bune practici
 (N/A)
In clasa CA pe care o instantiezi exist cod de conectare la server. Codul acela ar trebui sa stocheze undeva connection handle. Oricum, conexiunea cursorului se afla cu  Cursorgetprop("connecthandle",Alias).
Daniel Buduru
 11/23/2019 8:54:44 AM
User is offlinealemao
353 posts
3rd


Re: Bune practici
 (N/A) Modified By alemao  on 11/23/2019 11:02:45 AM)
Multumesc pentru ajutor!

PS) am cautat connection handle la clasa pe care o instantiez si nu am gasiit
 11/23/2019 12:31:02 PM
User is offlineDaniel Buduru
3528 posts
1st




Re: Bune practici
 (N/A)
"Acest cod creaza automat o conexiune cu serverul " In acel cod, care creeaza automat o conexiune cu serverul, se obtine connection handle. Eu as fi stocat acel handle intr-o proprietate, si as fi inchis conexiunea la distrugerea obiectului. Conexiunea costa resurse pe server, utilizata sau nu.
Daniel Buduru
 11/23/2019 12:31:19 PM
User is offlineDaniel Buduru
3528 posts
1st




Re: Bune practici
 (N/A)
"Acest cod creaza automat o conexiune cu serverul " In acel cod, care creeaza automat o conexiune cu serverul, se obtine connection handle. Eu as fi stocat acel handle intr-o proprietate, si as fi inchis conexiunea la distrugerea obiectului. Conexiunea costa resurse pe server, utilizata sau nu.
Daniel Buduru
 11/23/2019 12:31:59 PM
User is offlineDaniel Buduru
3528 posts
1st




Re: Bune practici
 (N/A)
"Acest cod creaza automat o conexiune cu serverul "
In acel cod, care creeaza automat o conexiune cu serverul, se obtine connection handle.
Eu as fi stocat acel handle intr-o proprietate, si as fi inchis conexiunea la distrugerea obiectului.
Conexiunea costa resurse pe server, chiar neutilizata.

Daniel Buduru
 11/26/2019 9:46:14 PM
User is offlinealemao
353 posts
3rd


Re: Bune practici
 (N/A)
Daaaa, multumesc mult pentru sfaturi.

Asta a fost una din cauze pentru care am pus intrebarea despre cum se inchide aceasta conexiune.
Am constatat ca nu este indeajuns sa inchid cursorul creat si sa sterg obiectul CA.
Conexiunea ramane in continuare.
Asa ca am adaugat o proprietate la obiectul CA unde stochez nr.conexiunii - la sfatul dvs.

Si daca intr-un scenariu ipotetic cu aproximativ de 100 de utilizatori la care sunt in medie 5-7 CA, iar serverul sql sa fie Firebird de de tip Classic, ma gandesc ce solutii as avea.
Am vazut ca se pot face conexiuni partajate (share).

Asta ar fi minunat, insa nu stiu daca mai multe CA pot folosi doar o conexiune share!!!


 12/6/2019 10:49:42 AM
User is offlineGrigore Dolghin
4010 posts
www.class-software.ro
1st






Re: Bune practici
 (N/A)
Da, pot partaja aceeasi conexiune. Eu cream conexiunea undeva pe la inceputul aplicatiei si o faceam partajabila de la bun inceput. N-am avut niciodata probleme cu asta.
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 12/22/2019 8:58:09 PM
User is offlinealemao
353 posts
3rd


Re: Bune practici
 (N/A)
Intre timp am facut niste testari/simulari.
Un CA poate folosi o conexiune creata/declarata de la inceput sqlstringconet cu share=.T.
Am stocat handle-ul primit intr-o variabila publica pe care ulterior am folosit-o la construirea unui CA.
Chestia e ca, in timp ce lucrez primesc din cand in cand mesajul "connection busy".

Ce recomandati pentru gestionarea acestei situatii?
 12/23/2019 11:11:10 AM
User is offlineDaniel Buduru
3528 posts
1st




Re: Bune practici
 (N/A)
Conexiunea este declarata asincrona, si undeva se incarca un numar de linii care depaseste valoarea specificata pentru o transa si asteapta comanda de continuare.
La conexiunea sincrona mie nu mi s-a intamplat vreodata sa apara connexion busy, iar eu utilizam o singura conexiune partajabila per aplicatie.

Daniel Buduru
 12/24/2019 10:51:55 PM
User is offlinealemao
353 posts
3rd


Re: Bune practici
 (N/A)
Am inteles, o sa fac niste teste ca sa vad pe viu cum functioneaza.

Multumesc d-le Buduru.

Sarbatori cu bine la toata lumea !
  Visual FoxPro  Client/Server  Bune practici...

Search  Forum Home         

Copyright 2002-2013 Profox   Terms Of Use  Privacy Statement