96 messaggi dal 24 gennaio 2002
Utilizzo delle funzioni per manipolare i dati di un recordset, è possibile passare il nome del recordset, o il recordset stesso, come parametro, in modo da poter utilizzare la stessa funzione in più casi, senza essere vincolato a chiamare il recordset esattamente nello stesso modo in cui lo chiamo nello script principale?

Grazie...
751 messaggi dal 03 maggio 2002
www.albain.com
Penso che se nessuno ti ha risposto e perchè (compreso io) forse il problema è scritto in modo troppo complicato e sintetico...Forse sono io che nn capisco bene cosa vuoi fare, puoi spiegarti meglio!?!?

 Tutto si può fare, quando si stà per affogare si impara a nuotare
96 messaggi dal 24 gennaio 2002
inizio nello script principale:

'apro un disconnected recordset
Set rs=Server.CreateObject("adodb.recordset") 
discRs = pathDati & "dati.xml"
'Apertura del recordet
rs.open discRs


in un include definisco la funzione seguente:

function inserisciRecord(DBvalues)
  with rs
    .AddNew 
    .Fields("idServer").Value = DBvalues(0)
    .Fields("debitore").Value = DBvalues(1)
    .Fields("trascPign").Value = DBvalues(2)
                                           ...
  end with
end function


nello script principale richiamo più volte la funzione:

call inserisciRecord(DBvalues)


DBvalues è un'array contenente i valori da inserire nel recordset, vorrei passare "rs" come secondo parametro della funzione, in modo da non essere costretto ad usare sempre "rs" come nome del recordset nello script principale.

Spero che ora sia più chiaro.
11.886 messaggi dal 09 febbraio 2002
Contributi
Non ti funziona se provi a passare direttamente l'oggetto?

Così:

function inserisciRecord(DBvalues, nome_rs)
with nome_rs
.AddNew
.Fields("idServer").Value = DBvalues(0)
.Fields("debitore").Value = DBvalues(1)
.Fields("trascPign").Value = DBvalues(2)
...
end with
end function

call inserisciRecord(tuoarray, rs)

bah, in questo modo però mi sa che si crea un duplicato del recordset chiamato nome_rs... oppure è semplicemente un puntatore all'oggetto recordset? in questi non ci si capisce un cavolo con i variant
Oppure senti, usa la funzione eval() fa questo tentativo.
Eval valuta una espressione-stringa passata come parametro. Allora il codice diventa:


function inserisciRecord(DBvalues, nome_rs)
with eval(nome_rs)
.AddNew
.Fields("idServer").Value = DBvalues(0)
.Fields("debitore").Value = DBvalues(1)
.Fields("trascPign").Value = DBvalues(2)
...
end with
end function

call inserisciRecord(tuoarray, "rs")

così passi la stringa "rs" che poi viene interpretata da eval come il vero oggetto recordset. Tutto molto in teoria...
Prova questa seconda soluzione

Enjoy learning and just keep making
96 messaggi dal 24 gennaio 2002
Provo con eval perchè passando l'oggetto mi dava errore, in pratica continuava a dire "necessario oggetto (recordset della funzione)", come se non lo avessi passato.

Grazie!!!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.