Hur fan gör man? Det enda jag vet som fungerar är att man sätter: genom att returnera en 2-dimensionell array Du kan ju lägga till egenskaper på klassen: Det kan vara lite struligt...Returnera flera variabler från VB-komponent till ASP
Variabel = Object.Method(var1,var2, ErrorCode)
Och då sätts Variabel till något. Men jag vill att den ska ta även var2 exempelvis och fylla den med ett värde från metoden i komponenten med ByRef. Hur går man runt det här?!?! Någon som vet?
/JohanSv: Returnera flera variabler från VB-komponent till ASP
Public Function Method(var1,var2,ErrorCode) As Variant
Dim arrTemp(2,0) As Variant
'## -- behandla inputvariablerna --
'## -- spar de nya värdena i en 2-dimensionell array --
arrTemp(0,0) = var1
arrTemp(1,0) = var2
arrTemp(2,0) = ErrorCode
'## -- returnera mina behandlade variabler --
Method = arrTemp
End Function
Något sådant borde funka rätt bra
cya,
PatrikBSv: Returnera flera variabler från VB-komponent till ASP
Object.Method var1,var2, ErrorCode
Result1 = Object.Result1
Result2 = Object.Result2
Result3 = Object.Result3Sv: Returnera flera variabler från VB-komponent till ASP
Gör så här:
Deklarera din funtion så här i COM-objektet:
<code>
Public Function Login(ByVal uName As String, _
ByVal passw As String, _
ByRef AccountID As Variant, _
ByRef UserID As Variant, _
Optional ByVal CertID As Long = 0) _
As Long
</code>
De parameterar som du vill returnera data i måste vara ByRef och av typen Variant!!!
I detta fallet är det alltså AccountID och UserID som är mina utparametrar.
I asp koden anropar du functionen precis som vanligt:
<code>
<OBJECT RUNAT=server PROGID=exempel.Session id=objsession></OBJECT>
dim strUsername
dim strPassword
dim lngAccountID
dim lngUserID
dim err
strUsername = Request.Form("user")
strPassword = Request.Form("pass")
err = objSession.Login(strUsername, strPassword, lngAccountID, lngUserID)
</code>
Lycka till!
// Andreas