Autor Tema: PROCEDIMIENTO ALMACENADO CON VISUAL BASIC  (Leído 3099 veces)

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

obethermy

  • Megabyte
  • ***
  • Mensajes: 116
  • Reputación: +6/-7
    • Ver Perfil
PROCEDIMIENTO ALMACENADO CON VISUAL BASIC
« en: Noviembre 02, 2015, 05:40:38 pm »
CREAMOS EL PROCEDIMIENTO ALMACENADO EN MYSQL
Código: (SQL) [Seleccionar]
-- Insertar Visitante
DELIMITER $$

DROP PROCEDURE IF EXISTS `spI_visitante` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spI_visitante`(
   _codigo  int ,
   _nombre  varchar(50) ,
   _fechaNacimiento  datetime ,
   _peso  decimal(18, 2)
)
BEGIN

SELECT IFNULL(MAX(codigo),0)+1 into _codigo FROM `visitante`;
INSERT INTO `visitante`(
   `codigo`,
   `nombre`,
   `fechaNacimiento`,
   `peso`
)
VALUES (
   _codigo,
   _nombre,
   _fechaNacimiento,
   _peso
);
END $$

DELIMITER ;

Segun Microsoft o la normativa MSDN  hay que hacerlo asi debe ser para no equivocarse en los codigos
Creamos una funcion insertar que puede ir en un boton

Código: (VB) [Seleccionar]
Public Function insertarvisitante() As Boolean
On Error GoTo Problemas
    Dim rpta As Boolean ' Variables que nos indicar si se inserto el Registro
    rpta = False
    Dim sqlcon As ADODB.Connection ' Variable que sirve para establecer la conexion con MySQL
    Set sqlcon = Me.Conectar
    Dim sqlcmd As New ADODB.Command ' El comando que vamos a ejecutar --> Insertar un registro a la tabla visitante
    With sqlcmd
        .CommandText = "call spI_visitante(" & _
        "?," & _
        "?," & _
        "?," & _
        "?" & _
        ")"
        .ActiveConnection = sqlcon ' Establecemos la conexion al comando
        .CommandType = adCmdText ' Va a ejecutar un Store Procedure
        .Prepared = True ' La sentencia esta prepara para ejecutarse
    End With
    'Parametros que tendra el procedimiento almacenado spI_visitante
    Dim paramcodigo As New ADODB.Parameter
    Dim paramnombre As New ADODB.Parameter
    Dim paramfechaNacimiento As New ADODB.Parameter
    Dim parampeso As New ADODB.Parameter
    'Establecemos los valores para los parametros del procedimiento almacenado spI_visitante
    With paramcodigo
        .Name = "_codigo"
        .Size = 0
        .Direction = adParamInput
        .Type = adInteger
        .Value = 0
    End With
    With paramnombre
        .Name = "_nombre"
        .Size = 50
        .Direction = adParamInput
        .Type = adVarChar
        .Value = UCase(Me.txtNombre.Text)
    End With
    With paramfechaNacimiento
        .Name = "_fechaNacimiento"
        .Size = 0
        .Direction = adParamInput
        .Type = adDate
        .Value = Me.dtpFechaNacimiento.Value
    End With
    With parampeso
        .Name = "_peso"
        .Size = 0
        .Direction = adParamInput
        .Type = adDecimal
        .Precision = 18
        .NumericScale = 2
        .Value = Me.txtPeso.Text
    End With
    'Agregamos los parametros al comando
    sqlcmd.Parameters.Append paramcodigo
    sqlcmd.Parameters.Append paramnombre
    sqlcmd.Parameters.Append paramfechaNacimiento
    sqlcmd.Parameters.Append parampeso
    'Ejecutamos el procedimiento
    sqlcmd.Execute
    'Limpiamos los recursos
    Set sqlcmd = Nothing
    sqlcon.Close
    Set sqlcon = Nothing
    insertarvisitante = True
    Exit Function
Problemas:
    insertarvisitante = False
    Exit Function
End Function

obethermy

  • Megabyte
  • ***
  • Mensajes: 116
  • Reputación: +6/-7
    • Ver Perfil
Re:PROCEDIMIENTO ALMACENADO CON VISUAL BASIC
« Respuesta #1 en: Noviembre 02, 2015, 05:42:40 pm »
y esta es como crear la tabla
Código: (SQL) [Seleccionar]
--
-- Creando la base de datos
--
CREATE DATABASE IF NOT EXISTS bdblog;
--
-- Usando la base de datos
--
USE bdblog;
--
-- Creando la tabla
--
DROP TABLE IF EXISTS `visitante`;
CREATE TABLE `visitante` (
  `codigo` int(11) NOT NULL AUTO_INCREMENT,
  `nombre` varchar(50) NOT NULL,
  `fechaNacimiento` datetime NOT NULL,
  `peso` decimal(18,2) NOT NULL,
  PRIMARY KEY (`codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
use bdblog;