Spanish Ojo con esto!!! DBUtils.ExecuteMap siempre devuelve valores tipo CADENA (String)

Discussion in 'Spanish Forum' started by Seneca, Jan 7, 2019.

  1. Seneca

    Seneca Active Member Licensed User

    Hola.

    Acabo de descubrir que DBUtils.ExecuteMap SIEMPRE devuelve un MAP con todos sus valores tipo Cadena, aunque los campos de la BD sean de tipo numérico. Si no se tiene esto en cuenta, en determinados casos el código no va a funcionar como se espera.

    Supongamos que en la BD tenemos una tabla con un campo tipo numérico llamado "campo1" y que en el primer registro tiene almacenado el valor numérico 1. Nos encontramos lo siguiente

    Code:
    mapRegistro = DBUtils.ExecuteMap (Starter.sqlBD, "SELECT  * FROM tabla.........................)


    Log (mapRegistro.Get("campo1") = 1)   '----> Devuelve False, cuando esperamos que devuelva True
    Log (mapRegistro.Get("campo1") = "1"'----> Devuelve True

    If  mapRegistro.Get("campo1") = 1 then 'Aunque se trata de un campo numérico, esta expresión es incorrecta
    ....
    End

    If  mapRegistro.Get("campo1") = "1" then 'Esto es lo correcto, a pesar de tratarse de un campo numérico en la BD
    ....
    End
    Una vez que se conoce esto, no tiene mayor problema, pero mientras tanto el código no hace correctamente su función.

    Saludos.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice