Foros del Web » Programando para Internet » ASP Clásico »

Cadena perdida entre funciones VB

Estas en el tema de Cadena perdida entre funciones VB en el foro de ASP Clásico en Foros del Web. Buenas, Tengo una función que envia los datos recibidos de un select multiple a otra. La cuestión esta en que pierdo los datos cuando sólo ...
  #1 (permalink)  
Antiguo 04/07/2008, 01:38
yz!
Invitado
 
Mensajes: n/a
Puntos:
Cadena perdida entre funciones VB

Buenas,

Tengo una función que envia los datos recibidos de un select multiple a otra.
La cuestión esta en que pierdo los datos cuando sólo envío un valor del select.

Este es mi código
Código:
Dim resultado
resultado = ActualizaPermisoConducir(Id_Usuario, Datos(15))
If resultado <> True Then
   ActualizaDatosPersonales = resultado
   Exit Function
End If
Si imprimo resultado sin entrar en el if me muestra los valores adecuados, pero si envío a la otra función e imprimo la variable ya he perdido el valor seleccionado.

Código:
Public Function ActualizaPermisoConducir(ByVal Id_Usuario As Long, _
ByVal Permisos As String) As Variant   
    ActualizaPermisoConducir = Permisos
    Exit Function
End Function
¿Que puede estar pasando? ¿Alguién puede ayudarme?

Última edición por yz!; 04/07/2008 a las 01:39 Razón: Visualización
  #2 (permalink)  
Antiguo 04/07/2008, 07:15
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Cadena perdida entre funciones VB

Veamos, primero confirmemos, ¿esto tiene algo que ver con ASP?

Si la respuesta es si, ¿cómo mandas desde el evento X del select del cliente a la función ASP?
  #3 (permalink)  
Antiguo 06/07/2008, 13:52
yz!
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cadena perdida entre funciones VB

Parcialmente.

Recíbo la cadena en un asp con un request.form y se lo paso a una función en una dll activeX en Visual Basic.

He comprobado que la función esta recibiendo correctamente los valores.
Código:
Dim resultado
resultado = ActualizaPermisoConducir(Id_Usuario, Datos(15))
ActualizaDatosPersonales = resultado
Devoveindome el valor correcto.

Sin embargo, de esta manera, nunca entra en el if apesar de que le este enviando los mismos valores.
Código:
Dim resultado
resultado = ActualizaPermisoConducir(Id_Usuario, Datos(15))
If resultado <> True Then
   ActualizaDatosPersonales = resultado
   Exit Function
End If
¿Puede que tenga que ver la definición de tipos de la variable resultado?
  #4 (permalink)  
Antiguo 06/07/2008, 16:55
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Cadena perdida entre funciones VB

Según veo en la definición de tu función que pusiste en el primer post, la función es igual al segundo argumento, el cual se supone que es string, es decir, que resultado = Datos(15) ... y si Datos(15) es diferente de true (lo que se supone que siempre debe cumplirse ya que Datos(15) es una cadena), entonces ActualizaDatosPersonales = Datos(15).

No se, a lo mejor soy yo, pero no le encuentro ni pies ni cabeza a eso, creo que debes hacerle una prueba de escritorio con mucho cuidado a ese código.

Sorry, a lo mejor otro ve algo que yo no
  #5 (permalink)  
Antiguo 10/07/2008, 01:59
yz!
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cadena perdida entre funciones VB

No es del todo a así.

Resultado es igual a la segunda función que es de tipo Variant, por lo que puede devolver varios tipos de valores. La intención es devolver cadenas de texto en caso de error o true en caso de que el procedimiento se haya ejecutado correctamente.
He simplificado las funciones para que envien y reciban lo justo para comprobar los valores que envío y recibo.

La cuestión es que cuando le envio en Datos(15) el valor "B" (String) (o "BTP", o "A") devuelve un true.
Sin embargo si le envío "B, BTP" (String) devuelve correctamente estos valores como cadena.
  #6 (permalink)  
Antiguo 10/07/2008, 02:14
yz!
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cadena perdida entre funciones VB

Al final lo he resuelto quitando el if de la primera función y recuperando los datos si o si.

No se porque este extraño comprotamiento de transformación de datos que se me escapa.

Gracias por la ayuda.


Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:08.