none
Variables dinamicas desde execute ASP RRS feed

  • Pregunta

  • Hola a todos, tengo una pregunta resuelta a medias, resulta que estoy tratando de crear variables dinamicas con valores tipo varchar dentro de un ciclo for con, el problema que estoy teniendo hasta el momento es que creo que el comando execute solo crea variables con valores igualados a numereos o tipo int dejo el codigo.

    Dim SQL
    
    SQL = "SELECT PHONE FROM TBLPHONECOMPANY WHERE COMPANY = 'LG'
    "
    rsRead(SQL)
    If Not rs.EOF then
       sqlresults = rs.GetRows()
       iRows = Ubound(sqlresults, 2)
       go = True
    else
       sqlresults = 0
       go = False
    End IF
    
    If go = True then
       For x = 0 to (iRows - 1)
           i = x + 1
           Execute ("Variable" & i & "=" & sqlresults(0,x)
       Next
       Response.Redirect "prinvariable.asp?Variable1="&Variable1&"&Variablen="&Variablen&""
    else 
       Response.Redirect "prinvariable.asp?msg=No existe"
    End Fi
    
    
    
    Hasta lo que se la sintasis esta bien el problema es un error que tengo que me lanza mi web a la hora de hacer la ejecucion "Execute" de las variables, el error: " Expected end of statement " ya he buscado como loco pero no encuentro una solucion espero que alguien de ustedes en sus experiencias tengan algo de antemano gracias por su tiempo.

    martes, 5 de febrero de 2013 18:22

Respuestas

    1. Fíjate que falta paréntesis de cierre en esa instrucción.
    2. Luego de usar getrows, ya puedes cerrar el recordset.Si no vas a usar la conexión mas abajo, también ciérrala
    3. segundo, puedes intentar:

    For x = 0 to (iRows - 1) i = x + 1

    Response.Redirect "prinvariable.asp?Variable1="&sqlresults(0,x)&"&Variablen="&Variablen&"<br>" Next

    Menos lineas,menos consumo de recursos.

    Pregunto: ¿por que redirect?Imagino que lo que deseas es crear hipervícunlos.

    response.write ("<a href=""prinvariable.asp?Variable1="& sqlresults(0,x) & " target=""_blank"">"&  sqlresults(0,x) & "</a>")

    OJO: escrito aquí al pelo!!!



    • Editado guarracuco miércoles, 6 de febrero de 2013 15:42
    • Marcado como respuesta Monttanna miércoles, 10 de abril de 2013 19:57
    miércoles, 6 de febrero de 2013 15:33

Todas las respuestas

  • hola

    este foro es sobre ado.net, no sobre ado de VB6

    muevo al foro correcto


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 5 de febrero de 2013 19:23
    1. Fíjate que falta paréntesis de cierre en esa instrucción.
    2. Luego de usar getrows, ya puedes cerrar el recordset.Si no vas a usar la conexión mas abajo, también ciérrala
    3. segundo, puedes intentar:

    For x = 0 to (iRows - 1) i = x + 1

    Response.Redirect "prinvariable.asp?Variable1="&sqlresults(0,x)&"&Variablen="&Variablen&"<br>" Next

    Menos lineas,menos consumo de recursos.

    Pregunto: ¿por que redirect?Imagino que lo que deseas es crear hipervícunlos.

    response.write ("<a href=""prinvariable.asp?Variable1="& sqlresults(0,x) & " target=""_blank"">"&  sqlresults(0,x) & "</a>")

    OJO: escrito aquí al pelo!!!



    • Editado guarracuco miércoles, 6 de febrero de 2013 15:42
    • Marcado como respuesta Monttanna miércoles, 10 de abril de 2013 19:57
    miércoles, 6 de febrero de 2013 15:33
  • Guarracuco, gracias por tu respuesta, por que redirect no deseo crar inpervinculos esto es para mandar la variables de una aplicacion web a otra totalmente diferente una esta en asp y otra en php.

    Dejo a fueraeste redireccionamiento por que primero necesito crear x variables y posteriormente mandarcela a ala aplicacion de php, el problema que tengo es con el execute que como ya dije tiene problema al dar valores a la variables que no sean numeros.

    miércoles, 6 de febrero de 2013 18:09
  • Entiendo, pero creo debes analizar mas la estructura, porque el for i puede crear varias variables y el redirect afuera, se ejecutará una sola vez, contra la variable1 nada mas; entonces para que el bucle, me explico?

    miércoles, 6 de febrero de 2013 19:02
  • haaaa ok ya entiendo voy a corregir mi codigo y te aviso, gracias.
    miércoles, 6 de febrero de 2013 20:05
  • Este tema me mantuvo muchas horas meditando sobre el lenguaje. La solución, me surgió pensando en la utilidad macrosustitución de Visual Fox.

    La sentencia es asi: execute("NombreVariable" & "=" & x & "miVar")

    Donde, x es un numero...es decir queremos guardar datos  de cadena de caracteres en:

    NombreVariable1, NombreVariable2...etc...

    Y en miVar

    For x = 0 to 10      

    miVar="aqui contenido de texto que quieras"
          
    execute("NombreVariable" & "=" & x & "miVar")

    Next

    Esto guardará en cada variable un contenido de cadena de caracteres. Parece descabellado porque contradice el "formato" standard, pero resulta.

    No sé si llego tarde a la explicación y ya lo resolviste, pero tal vez le sea util a otros.


    lunes, 15 de abril de 2013 5:01