Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [VB 6] Passare recordSet ADO a Function

    Ciao volevo sapere con VB 6 il corretto codice per passare un ObjRs ad una funzione.
    Io pensavo
    codice:
    Nella Routine Principale
    ---  .  ---  .  ---  .  ---  .  ---
    Dim objRs as New ADODB.RecordSet
    objRs.Open .....
    Call Pass(objRs)
    
    Funzione
    ---  .  ---  .  ---  .  ---  .  ---
    Public Function Pass(ByVal objRs2 as new ADODB.RecordSet = Empty)
         For x = 1 To objRs2.RecordCount
             Print objRs2(0).value
         Next
    End Function

  2. #2
    codice:
    dim rs as new adodb.recordset
    call nomefunz(rs)
    
    
    function nomefunz (Rec as adodb.recordset)
    'elaborazioni
    end function
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  3. #3
    Ma nel tuo modo xe uso sempre e solo un Rs giusto? Perchè il mi scopo è proprio quello di usare un solo oggetto.
    Grazie.

  4. #4
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    passandolo cosi si passa per riferimento vero ???

  5. #5
    Si si serve per non aprire piu' recordSet.
    Inoltre se metti ByVal Rs as ADODB.RecordSet = Empty dovrebbe essere ancora piu' veloce perchè lasci la memoria libera o qualcosa di simile.
    Lo avevo letto in giro ma non mi ricordo piu' dove.

  6. #6
    Originariamente inviato da raffaeu
    Si si serve per non aprire piu' recordSet.
    Inoltre se metti ByVal Rs as ADODB.RecordSet = Empty dovrebbe essere ancora piu' veloce perchè lasci la memoria libera o qualcosa di simile.
    Lo avevo letto in giro ma non mi ricordo piu' dove.
    come può essere più veloce se fai una copia dell'oggetto piuttosto di usarne un puntatore
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  7. #7
    Scusa se rompo ma non capisco.
    IL codice che hai postato usa una copia o un puntatore?
    Che codice devo usare per la copia e che codice per il puntatore?

    Scusa xe ma ho proprio bisogno di capire questo concetto.
    Grazie

  8. #8
    Domanda :

    "Adesso passo il RecordSet a due funzioni, la seconda, mi risponde che RecordCount è ancora = 13 ma non sputa fuori i records ... Se inverto le funzioni, succede la stessa cosa."

    Codice :

    codice:
    AS400Rs.CursorLocation = adUseClient
    AS400Rs.CursorType = adOpenStatic
    AS400Rs.Source = "SELECT..." 
    AS400Rs.Open
    If (AS400Rs.RecordCount = 0) Then
    AS400Rs.Close
    Else
    '---PDF
    bAnswer = ExportPDF(AS400Rs, strRoot, "A")
    '---EXCELL
    bAnswer = ExportXLS(AS400Rs, strRoot, "A")
    
    
    --- . --- . --- . --- . --- . --- . ---
    
    Function ExportXLS(ByVal objRS As ADODB.Recordset, ByVal Root As String, ByVal bType As String) As Boolean
    ...
    ...
    Set .DataControl1.Recordset = objRS
    Entrambe le funzioni sono uguali una per XLS e una per PDF, ma la seconda che riceve il objRS, mi risponde un Report vuoto, al contrario se apro ogni volta l' RS entrambi i report sono ok ...

    Suggerimenti?

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    inanzitutto io penso che devi passare il recordset per riferimento ,quindi passi il puntatore alla memoria, perche non facendo cosi tu fai una copia del recordset e le operazione successive risultano distaccate fra loro , nel senso che è come se avessi 2 recordset ,l'originale e la copia indipendenti fra loro

  10. #10
    cassano puoi farmi un esempio

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 © 2025 vBulletin Solutions, Inc. All rights reserved.