ASP - Retorno de array de una DLL a ASP

 
Vista:

Retorno de array de una DLL a ASP

Publicado por Rubio (RSS) (5 intervenciones) el 21/10/2004 17:28:43
Buenas a todos, tengo un problemilla, tengo una página ASP que llama a una DLL y esta devuelve un array, pues bien, mi problema es que no se como recoger este array.

Os paso el código para que me digais si hago algo mal:

<%
Set User = Server.CreateObject("MezclaGestion.Class1")

Resultado=User.Login("c","c")

for each valor in Resultado
response.write valor & "<br>"
next
%>

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Retorno de array de una DLL a ASP

Publicado por charlos (170 intervenciones) el 21/10/2004 22:19:34
Eso debiera de funcionar prueba directamente

for each valor in User.Login("c","c")
response.write valor & "<br>"
next

Si no te va eske algo no tienes bien en el dll
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Retorno de array de una DLL a ASP (I)

Publicado por Rubio (RSS) (5 intervenciones) el 22/10/2004 09:29:20
Buenas, en primer lugar darte las gracias por tu rápida ayuda, pero aún haciendo lo que me has dicho sigue sin funcionar.

Entiendo que la DLL está bien pq desde VB me devuelve los valores correctamente, te adjunto el código de la DLL y el de VB (en el siguiente mensaje) para que le eches un vistazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Retorno de array de una DLL a ASP (II)

Publicado por Rubio (RSS) (5 intervenciones) el 22/10/2004 09:30:29
CODIGO DLL
===========
Public Function Login(User As String, Psw As String) As String()

Dim CodeConexion As Long
Dim CodeFunction(4) As String
Dim SQL As String

CodeConexion = Conexion

If CodeConexion = 0 Then

SQL = "SELECT IdUsuario, NombreUsuario, Rol "
SQL = SQL & "FROM Usuarios "
SQL = SQL & "WHERE Login='" & User & "' AND Password='" & Psw & "'"

Set Db = OpenDatabase(nombrebase, False, False, pswdb)
Set record = Db.OpenRecordset(SQL, dbOpenDynaset)
If record.EOF Then
CodeFunction(1) = "0"
CodeFunction(2) = "0"
CodeFunction(3) = ""
CodeFunction(4) = ""
Else
CodeFunction(1) = "0"
CodeFunction(2) = record.Fields(0)
CodeFunction(3) = record.Fields(1)
CodeFunction(4) = record.Fields(2)
End If
record.Close
Set record = Nothing
Db.Close
Set Db = Nothing
Else
CodeFunction(1) = CodeConexion
CodeFunction(2) = ""
CodeFunction(3) = ""
CodeFunction(4) = ""
End If

Login = CodeFunction

End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Retorno de array de una DLL a ASP (III)

Publicado por Rubio (RSS) (5 intervenciones) el 22/10/2004 09:30:56


CODIGO VB
=========
Dim prueba As MezclaGestion.Class1

Set prueba = New MezclaGestion.Class1

resultado = prueba.Login("c", "c")
MsgBox resultado(1)
MsgBox resultado(2)
MsgBox resultado(3)
MsgBox resultado(4)


CODIGO ASP
===========
Set User = Server.CreateObject("MezclaGestion.Class1")

Resultado=User.Login("c","c")

for each valor in Resultado
response.write valor & "<br>"
next


He estado haciendo pruebas y si en lugar de devolver un array, devuelvo una variable string, no hay problemas y lo recogo perfectamente desde el ASP.

Si me puedes hechar una mano te estaría muy agradecido.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Retorno de array de una DLL a ASP (III)

Publicado por Ayudante (255 intervenciones) el 22/10/2004 19:32:27
un "for each xx in xxxxx" solo aplica para cuando son colecciones de objetos, no para arreglos.

Para eso debes recorrer el arreglo con un índice.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Retorno de array de una DLL a ASP (III)

Publicado por Cristian (2 intervenciones) el 29/10/2011 05:59:01
Yo estuve tratando de hacer algo similar y no he podido, al final me decidi por retornar dato como string y luego usar la funcion split para separar los datos en una matriz.

<html>
<body>
<%
Dim Test
Dim WordArray
Set Test = Server.CreateObject("ASPTest.Test")
'llamo a la funcion y le paso unos datos
MiCadena=Test.Login("Que","te")
WordArray=Split(MiCadena, " ")
' Escribe todo el contenido
Response.Write MiCadena & "<br />"
set Test = Nothing
'Escribe cada contenido del array
For Each item In WordArray
Response.Write(item & "<br />")
Next
' escribe el contenido de la posicion 0
Response.Write WordArray(0)& "<br />"
'escribe el tamano del array
Response.Write( ubound(WordArray)+1)

%>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Retorno de array de una DLL a ASP (III)

Publicado por Crisian (2 intervenciones) el 03/11/2011 22:28:08
Codigo DLL
Con el valor retornado como Varant me funciono, el parametro que recibe lo puse por poner pero no lo uso creo un vector en la dll y le doy valores.

Public Function Matriz(val1 As Integer) As Variant()
Dim vec(4) As Variant
vec(0) = "10"
vec(1) = "100"
vec(2) = "1000"
vec(3) = "10000"
vec(4) = "10"
Matriz = vec()
End Function

Codigo ASP
<html>
<body>
<%

Dim Test
Dim Vector
Set Test = Server.CreateObject("ASPTest.Test")
Vector= Test.Matriz(10)

'Response.Write(ubound(Vector))
For Each item In Vector
Response.Write(item & "<br />")
Next
Set Test = Nothing

%>
</body>
</html>
por lo menos funciono con un vector asi que creo que tambien con una matriz. sera cuestion de expirementar un poco mas espero que ayude.
atte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar