Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Assegnare RecordSet come valore di ritorno

    Ciao,
    non riesco a risolvere un problemino.

    Ho una funzione che restituisce un recordset. Vorrei poi assegnare il valore di ritorno ad una variabile che richiama la funzione.

    L'ho fatto ma non mi funziona:

    La parte della funzione che ricava il recordset e lo assegn come valore di ritorno è questa (GetServers è il nome della funzione)
    codice:
    	Set oAdo = New CAdo
    
    	oAdo.adoConnectString = Application("CONNDB")
    
    	sSQL = "SELECT * FROM TbServers, TbGiochi WHERE TbServers.IdGioco = TbGiochi.IdGioco"
    	Set gbl_adoConnection = oAdo.adoOpenConnection()
    	Set adoRS = oAdo.adoOpenSQLSnapShot(gbl_adoConnection, sSQL )
    
    	GetServers = adoRS
    E poi in un altra funzione vado a richiamarla così:

    codice:
    	Set adoRSGS = Me.GetServers()	
    	While not adoRSGS.Eof
    Però non funziona.

    Mi da errore sull'ultima linea (quella col While) dicendomi:
    Object doesn't support this property or method: 'EOF'
    Mi date un aiutino?

    Grazie

  2. #2
    Se provo a fare delle operazioni nella funzione dove ho direttamente il recordset funziona. Se invece provo ad associare il valore di ritorno (il recordset) ad una variabile mi dice che il metodo .EoF non è supportato.

    Come devo fare l'assegnazione perchè funzion?

  3. #3
    Ho avuto anche io questo problema e invece di farmi restituire il recordset da una funzione ho dovuto usare una sub e passare il recordset per riferimento...

  4. #4
    Ma per esempio nella stessa pagina ho una funzione che fa praticamente la stessa cosa.
    codice:
    	Public Function GetOnLineUsers()
    		Dim oADO, adoRS
    		Dim sSQL, retValue
    		
    		Set oAdo = New CAdo
    		
    		oAdo.adoConnectString = Application("CONNDB")
    		
    		sSQL = "SELECT OU.* FROM SelectUserOnline AS OU"
    		Set gbl_adoConnection = oAdo.adoOpenConnection()
    		Set adoRS = oAdo.adoOpenSQLSnapShot(gbl_adoConnection, sSQL )
    				
    		Set GetOnLineUsers = adoRS 
    		
    		Set adoRS = Nothing
    		
    	End Function
    E che viene richiamata con:

    Set adoRSOU = Me.GetOnLineUsers()
    If Not ( adoRSOU.Eof And adoRSOU.Bof ) then
    Praticamente è uguale. Cambiano solo le variabili e la funzione.
    Però con questa funziona...... e non capisco come mai.
    Vorrei capire dove sbaglio

  5. #5
    Allora ho provato a stampare il campo numero 3 del recordset restituito.

    Se faccio Response.Write(adoRSGS(3)) me lo scrive correttamente!
    E' assurdo!
    Quindi il recordset viene restituito correttamente e la variabile gli viene associata.
    Ma allora perchè non posso usare i metodi del recordset?!
    E' assurdo che non si possano usare....

    Secondo voi dove può essere il problema?

    Perfavore aiuto!!

  6. #6
    L'unica differenza che trovo tra le funzioni è che nella prima fai:
    GetServers = adoRS
    e nella seconda:
    Set GetOnLineUsers = adoRS

  7. #7
    Infatti era proprio quell!!!!

    Che errori grossolani.... però dopo giornate intere anche a rileggerli 10 volte non li trovi mai )

    Grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.