27 messaggi dal 09 giugno 2001
Nella pagina asp richiamo una dll a cui invio (sempre dalla pagina asp) un array che mi verra' restituito riempito con non so quanti valori dalla classe stessa.
Come definisco l'array? e come lo passo tra i parametri che passo alla chiamata della classe?
Spero che qualcuno possa darmi una mano.
Grazie mille in anticipo


--- sono gli altri che mi disegnano così! ---
1.605 messaggi dal 06 settembre 2002
anche io ho delle dll con array come parametro ed ho risolto così

nella sub o funzione della dll il parametro dovrà essere così

(ByVal NomeArray As Variant,...


e nella pagina asp che deve passare la array alla dll cosy
dim arrayPassaggio
dim ArrayTofill(3)

ArrayTofill(0) = Request.Form("nomeCampo")
ArrayTofill(1) = Request.Form("nomeCampo")
ArrayTofill(2) = Request.Form("nomeCampo")
ArrayTofill(3) = Request.Form("nomeCampo")

Set objDll = Server.CreateObject("nomeProg.nomeClasse")


<b> arrayPassaggio = ArrayTofill</b>

call objDll.metodo(arrayPassaggio,....


ti dichiari due variabili una normale ed una di tipo array

riempi quella di tipo array e poi gli dici
che quella normale(variant) è uguale a quella di tipo array
<b> arrayPassaggio = ArrayTofill</b>

in questo modo stai passando comunque una variabile di tipo variant
ma all'interno della dll la puoi usare come una array

FORZA LA MAGICA ROMA

FORZA LA MAGICA ROMA
27 messaggi dal 09 giugno 2001
Ti ringrazio della celere risposta. Purtroppo continua a darmi l'errore "type mismatch" (il tipo di errore mi ritorna dalla dll).

Ti mando la parte di programma e la definizione della funzione in vb.
Non riesco proprio a capire dove stia il problema

&lt;%
dim arrviaggi(2)
dim arrpassaggio
arrviaggi(0) = Request.Form("nidViaggio")
arrviaggi(1) = Request.Form("sDescrizione")
arrviaggi(2) = Request.Form("nDurata")
arrpassaggio=arrviaggi

errore = objViaggi.getdata(session("ObjConness"),strErr,arrpassaggio)
if errore = 0 then
arrviaggi = arrpassaggio
Response.Write "&lt;select id=""Descrizione"" name=""Descrizione""&gt;"

for i = 0 to ubound(arrviaggi())
Response.Write"&lt;OPTION&gt;"& arrviaggi(i,1) &"&lt;/OPTION&gt;"
next
Response.Write "&lt;/select&gt;"
else
Response.Write strErr
end if%&gt;


Public Function GetData(P_objConnection As ADODB.Connection, DescErr As Variant, ByRef retArray As Variant) As Variant
(passo la connessione, una variabile che mi torna la descrizione dell'errore e l'array)

Grazie mille di nuovo



--- sono gli altri che mi disegnano così! ---
1.605 messaggi dal 06 settembre 2002
&lt;%
dim arrviaggi(2)
dim arrpassaggio
arrviaggi(0) = Request.Form("nidViaggio")
arrviaggi(1) = Request.Form("sDescrizione")
arrviaggi(2) = Request.Form("nDurata")
arrpassaggio=arrviaggi
<b>
arrpassaggio = arrviaggi
'questa assegnazione la devi fare prima
'di chiamare il metodo della classe
</b>
errore = objViaggi.getdata(session("ObjConness"),strErr,arrpassaggio)
if errore = 0 then
Response.Write "&lt;select id=""Descrizione"" name=""Descrizione""&gt;"

for i = 0 to ubound(arrviaggi())
Response.Write"&lt;OPTION&gt;"& arrviaggi(i,1) &"&lt;/OPTION&gt;"
next
Response.Write "&lt;/select&gt;"
else
Response.Write strErr
end if%&gt;


Public Function GetData(P_objConnection As ADODB.Connection, DescErr As Variant,
<b>ByVal</b> retArray As Variant) As Variant

'poi il variant lo passo ByVal
'non mi ricordo se era una condizione
'indispensabile però io facevo così e mi
'funziona



FORZA LA MAGICA ROMA

FORZA LA MAGICA ROMA
27 messaggi dal 09 giugno 2001
Albis temo di non uscirne più! :(
Ho apportato le modifiche che tu mi hai dato, ma non riesco proprio a farlo funzionare. Continua a darmi type mismatch, ma forse l'errore è da qualche altra parte e non nell'array
Grazie cmq



--- sono gli altri che mi disegnano così! ---
1.605 messaggi dal 06 settembre 2002
quando passi dei parametri da una pagina asp a una dll sappi che per asp tutte le variabili sono variant
così se in
errore = objViaggi.getdata(session("ObjConness"),<b>strErr</b>,arrpassaggio)

il parametro strErr è una stringa dovrai fare

errore = objViaggi.getdata(session("ObjConness"),<b>CStr(strErr)</b>,arrpassaggio)


FORZA LA MAGICA ROMA

FORZA LA MAGICA ROMA
27 messaggi dal 09 giugno 2001
Il parametro strErr lo utilizzo (come puoi vedere) per visualizzare la descrizione dell'errore. Quindi non credo che l'errore sia li'. Ho cmq provato a modificare il codice, e non mi ritorna niente in strErr.



--- sono gli altri che mi disegnano così! ---
1.605 messaggi dal 06 settembre 2002
ma l'errore ti viene restituito dalla dll in
strErr pensavo che ti desse errore sull'esecuzione del metodo.
allora dovresti provare a debbaggare la parte della dll

per fare questo dovresti montare sulla tua macchina PWS creare un nuovo sito e copiarci le pagine del sito su cui stai lavorando
quindi mandare in run la dll(il .vbp) mettendo uno stop sulla prima istruzione
a questo punto dovresti eseguire sul brawser il sito che hai in locale in PWS e quando verrà eseguito il metodo della classe nella pagina asp il progetto vbp entrerà in debug e lì potrai vedere dove è l'errore


FORZA LA MAGICA ROMA

FORZA LA MAGICA ROMA

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.