none
Duda como pasar parametros a un store procedure desde vb6 RRS feed

  • Pregunta

  • Hola, me gustaria si alguién me puede sacar una duda.
    Yo cuando ejecuto algún Store Procedure desde vb6, el paso de parametros lo realizo del siguiente modo:

    dim rs  As NEW ADODB.recordset
    dim cmdSp As NEW ADODB.Command
    Set cmdSp = NEW ADODB.Command
    cmdSp.ActiveConnection = cnn
    cmdSp.CommandType = adCmdStoredProc
    cmdSp.CommandText = "spPrueba"
    cmdSp.Parameters("@pTelefono") = txtTelefono ''<-- Esto es lo que interesa
    set rs = cmdSp.Execute

    Esto a mi me funciona bién, pero me gustaria que alguien me puede responder cual es la diferencia, o ventaja/desventaja creandolo de esta manera (hace poco vi un codigo donde los parametros eran "creados") y me surgio la duda que debo usar


    Dim cmdSp As ADODB.Command
    Dim prmSp As ADODB.Parameter
    Set prmSp = cmdSp.CreateParameter("@pTelefono", adInteger, adParamInput)
    cmdCab.Parameters.Append prmSp
    Y lotra cuestion que tengo con el tema de los parametros es cuando se pasan valores nulos.

    Por ejemplo tengo el campo telefono que admite Null en la base de datos,  creo un store procedure donde hago un insert con el parametro @pTelefono, y desde vb 6 si no paso un valor a @ptelefono me da un error. ¿Como controlaria ese error? Desde el vb o desde el store procedure?  Lo que quiero es que no haya un error cuando en la pantalla del vb no se ingrese ni un telefono.
    Muchisimas gracias al que pueda darme una mano.






     
    jueves, 4 de octubre de 2012 1:30

Respuestas

  • Hola,

    La diferencia es que al crearlos le indicas el tipo de datos que le envias asi puedes trabajar los errores (en caso de que existan) desde VB y no en tu BD asi pues es parte de la respuesta a tu segunda pregunta, debes manejarlo desde VB asi evitas hacer un intento de actualizacion o insercion que va a fracasar, y como lo haces bueno una idea es pasandole un dato aunque sea vacio, recuerda que no es lo mismo una cadena en blanco que un valor nulo.

    Saludos.


    CBR

    • Marcado como respuesta DonRamon jueves, 11 de octubre de 2012 7:56
    martes, 9 de octubre de 2012 10:17

Todas las respuestas

  • Hola,

    La diferencia es que al crearlos le indicas el tipo de datos que le envias asi puedes trabajar los errores (en caso de que existan) desde VB y no en tu BD asi pues es parte de la respuesta a tu segunda pregunta, debes manejarlo desde VB asi evitas hacer un intento de actualizacion o insercion que va a fracasar, y como lo haces bueno una idea es pasandole un dato aunque sea vacio, recuerda que no es lo mismo una cadena en blanco que un valor nulo.

    Saludos.


    CBR

    • Marcado como respuesta DonRamon jueves, 11 de octubre de 2012 7:56
    martes, 9 de octubre de 2012 10:17
  • Muchas Gracias CBR! suponia que venia por ahi la mano de que al crearlos iba a manejar el error desde vb.
    Los procedimientos almacenados q no usen nullos los voy a dejar como estan y con los otros vere si los cambio.
    Gracias por el datos de la cadena en blanco, capaz con algunas doble comillas solucione un problema.
    Muchas Gracias por tu respuesta, saludos!
    jueves, 11 de octubre de 2012 7:59