Search  
Friday, February 10, 2012 ..:: 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  sqlExec si Data...
 sqlExec si DataSession
 
 6/7/2010 11:43:18 AM
User is offlineoviciandrus
761 posts
www.comptech.ro
1st




sqlExec si DataSession
 (N/A) Modified By oviciandrus  on 6/7/2010 10:48:02 AM)
Vă salut şi vă rog să mă ajutaţi în următoarea problemă.

Am un formular cu următoarele setari:
BufferMode = 2 - Optimistic
DataSession = 2 - Private Data Session
WindowType = 1 - Modal

Pe formular am un grid, să-i zicem grdGest. Pe acesta vreau să-l umplu cu înregistrările dintr-o tabela MSSQL (conexiunea la server există)

Am o metoda Populare care cuprinde ceva de genul:

1. thisform.grdGest.RecordSource = ''
2. SQLEXEC(thisform.nConnection, 'select * from gestiuni', 'crsGestiuni')
3. thisform.grdGest.RecordSource = 'crsGestiuni'

Mă dispără faptul că îmi dă eroarea: Alias "crsGestiuni" is not found la instructiunea 3, cu toate că interogarea serverului are loc şi acesta trimite datele. Cursorul se găseşte în sesiunea de date implicită (1) şi nu în sesiunea de date privată (2) a formularului.
Nu ştiu ce-mi scapă. Ce trebuie să fac ca rezultatul lui SQLEXEC să fie generat în sesiunea de date privată?

Vă mulţumesc!

Mai vreau să zic că la închiderea formularului cursorul se gaseşte în sesiunea de date implicită.

 6/7/2010 12:56:37 PM
User is offlinecostin_mentor
483 posts
www.accessoft.ro
2nd




Re: sqlExec si DataSession
 (N/A)
Sa faci ceva in genul :

nSessionId = thisform.DatasessionId && o variabila care tine IdDatasession


* If the method is being called from a form in a different data session, switch to that session temporarily
* (so that any cursor(s) created by the SQLEXEC() will be visible to the caller)
lnOldSession = 0
IF nSessionID > 0
lnOldSession = SET("Datasession")
SET DATASESSION TO (nSessionID)
ENDIF

SQLEXEC(thisform.nConnection, 'select * from gestiuni', 'crsGestiuni')

* Switch back to original data session
IF lnOldSession > 0
SET DATASESSION TO (lnOldSession)
ENDIF

 6/7/2010 2:11:31 PM
User is offlineAdrian Gerlan
581 posts
1st




Re: sqlExec si DataSession
 (N/A)
Daca linia 2 se executa, asa cum e ea scrisa, intr-una din metodele formului sau a obiectelor din form, cursorul obtinut ar trebui sa existe in acea sesiune privata de date. Nu cumva SQLEXEC-ul ala il ai pe undeva printr-o librarie (prg sau altceva) de functii ? Daca da, atunci clar cursorul se duce in alta sesiune...
AdiG
 6/7/2010 2:20:17 PM
User is offlineoviciandrus
761 posts
www.comptech.ro
1st




Re: sqlExec si DataSession
 (N/A)
 Adrian Gerlan wrote
Daca linia 2 se executa, asa cum e ea scrisa, intr-una din metodele formului sau a obiectelor din form, cursorul obtinut ar trebui sa existe in acea sesiune privata de date. Nu cumva SQLEXEC-ul ala il ai pe undeva printr-o librarie (prg sau altceva) de functii ? Daca da, atunci clar cursorul se duce in alta sesiune...



Ai dreptate SQLExec-ul se executa dintr-o altă clasă.Hmmm.... cum să fac să vină în sesiunea formularului?
 6/7/2010 2:32:28 PM
User is offlineoviciandrus
761 posts
www.comptech.ro
1st




Re: sqlExec si DataSession
 (N/A)
 costin_mentor wrote
Sa faci ceva in genul :

nSessionId = thisform.DatasessionId && o variabila care tine IdDatasession


* If the method is being called from a form in a different data session, switch to that session temporarily
* (so that any cursor(s) created by the SQLEXEC() will be visible to the caller)
lnOldSession = 0
IF nSessionID > 0
lnOldSession = SET("Datasession")
SET DATASESSION TO (nSessionID)
ENDIF

SQLEXEC(thisform.nConnection, 'select * from gestiuni', 'crsGestiuni')

* Switch back to original data session
IF lnOldSession > 0
SET DATASESSION TO (lnOldSession)
ENDIF



Mulţam fain! Am reuşit cu indcaţia asta! Mulşumesc şi lui Adrian.
 6/7/2010 4:08:17 PM
User is offlinecostin_mentor
483 posts
www.accessoft.ro
2nd




Re: sqlExec si DataSession
 (N/A)
Cu placere
 6/9/2010 12:48:15 PM
User is offlineGrigore Dolghin
3521 posts
www.class-software.eu
1st






Re: sqlExec si DataSession
 (N/A)
Cea mai simpla si eficienta metoda de a obtine treaba asta (eu o folosesc cu succes in frameworkul ala al meu) este sa tragi clasa aia cu SQLExec pe form, daca o ai definita intr-o clasa custom.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 6/9/2010 8:58:05 PM
User is offlineoviciandrus
761 posts
www.comptech.ro
1st




Re: sqlExec si DataSession
 (N/A)
Salut!

Nu am avut-o intr-o clasa custom, dar am luat-o de unde era si am facut-o. Am tras-o pe formular, am mai pieptanat pe ici pe colo si merge fara sa mai fac trucul cu sincronizarea sesiunii de date.

Multumesc
  Visual FoxPro  Client/Server  sqlExec si Data...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement