Visual Basic Foro
General => Códigos - Aportes - Recursos => Mensaje iniciado por: obethermy en Noviembre 02, 2015, 05:40:38 pm
-
CREAMOS EL PROCEDIMIENTO ALMACENADO EN MYSQL
-- 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
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
-
y esta es como crear la tabla
--
-- 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;