Autor Tema: Recuperar datos de Procedimiento Almacenado con parametros  (Leído 30 veces)

0 Usuarios y 1 Visitante están viendo este tema.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1066
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Recuperar datos de Procedimiento Almacenado con parametros
« en: Agosto 11, 2017, 12:18:14 pm »
Hola tengo un Procedimiento Almacenado en MySQL muy sencillo solo es un Select, como puedo recuperar en un recodrset para poder mostrar en una grilla.

Mi Procedimiento en el MySQL es esta :

Código: SQL
  1. CREATE PROCEDURE mCedulas(IN prm INTEGER)
  2. SELECT cedula FROM clientes WHERE cedula=prm


La forma común de recuperar datos en un recordset uso este código.

Código: Visual Basic
  1. Private Sub Command1_Click()
  2.  
  3.     Dim cnADO As ADODB.Connection
  4.     Dim rsADO As ADODB.Recordset
  5.    
  6.     Set cnADO = New ADODB.Connection
  7.     Set rsADO = New ADODB.Recordset
  8.      
  9.     rsADO.CursorLocation = adUseClient
  10.    
  11.     cnADO.ConnectionString = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=cobranzas; User=root;Password=;Option=3;"
  12.     cnADO.Open
  13.  
  14.     strSQL = "SELECT cedula FROM clientes WHERE cedula='3230148'"
  15.     rsADO.Open strSQL, cnADO, adOpenStatic, adLockOptimistic, adCmdText
  16.    
  17.     Do Until rsADO.EOF
  18.         With rsADO
  19.             Text1.Text = .Fields("cedula")
  20.             rsADO.MoveNext
  21.         End With
  22.     Loop
  23.  
  24. End Sub
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

obethermy

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +6/-5
    • Ver Perfil
Re:Recuperar datos de Procedimiento Almacenado con parametros
« Respuesta #1 en: Agosto 15, 2017, 11:42:08 pm »
este es el archivo del procedimiento almacenado  mCedulas.sql
si te fija mi usuario mysql es bethermy y mi servidor es localhost y abierto por internet(%)
Código: SQL
  1. DELIMITER $$
  2. DROP PROCEDURE IF EXISTS `mCedulas`$$
  3. CREATE DEFINER='bethermy'@'localhost,%' PROCEDURE `mCedulas`(IN prm INTEGER)
  4. BEGIN
  5. SELECT cedula FROM clientes WHERE cedula=prm;
  6. END $$
  7. DELIMITER ;
  8.  

y en visual basic sustituye en la linea comentada

Código: Visual Basic
  1. 'strSQL = "SELECT cedula FROM clientes WHERE cedula='3230148'"
  2. 'rsADO.Open strSQL, cnADO, adOpenStatic, adLockOptimistic, adCmdText
  3. valor_ci="3230148"
  4. Set rsADO = cnADO.Execute("call mCedulas('" & valor_ci & "')")
  5.