MariaDB - Insertar datos usando ADODB Excel VBA

   
Vista:

Insertar datos usando ADODB Excel VBA

Publicado por Arturo (1 intervención) el 12/09/2017 00:42:08
Buenas tardes a todos. Gracias a los administradores por permitirme acceder a este foro.

Me encuentro desarrollando un proyecto usando MariaDB y VBA. Estoy tratando de insertar registros en la base de datos usando el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Public Sub InsertarDatos()
 
    Dim conexion As New ADODB.Connection
 
    'Si uso MySQL ODBC 3.51 Driver si funciona pero no lo uso por razones que sería largo explicar
    conexion.ConnectionString = "driver={MariaDB ODBC 2.0 Driver};Server=localhost;Port=3306;Database=integrity;User=root;Password=Arturit0;Option=3;"
    
    conexion.Open
    
    Dim comando As New ADODB.Command
        
    comando.ActiveConnection = conexion
    comando.CommandType = adCmdStoredProc
    comando.CommandText = "sp_registrar_tipo_cambio"
    
    comando.Parameters.Append comando.CreateParameter("fecha", adDate, adParamInput)
    comando.Parameters.Append comando.CreateParameter("tc_compra", adDecimal, adParamInput)
    comando.Parameters.Append comando.CreateParameter("tc_venta", adDecimal, adParamInput)
    
    comando.Parameters("fecha").Value = CDate("01/07/2017")
    comando.Parameters("tc_compra").Value = 3.1
    comando.Parameters("tc_venta").Value = 3.2
    
    comando.Execute
    
End Sub

Me arroja el siguiente error:

mensaje-error-vba

No hay problema con el código en MariaDB pero igual se los muestro:

1
2
3
4
5
6
7
8
9
10
11
12
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_registrar_tipo_cambio`(
	IN `_fecha` DATE,
	IN `_tc_compra` DECIMAL(10,3),
	IN `_tc_venta` DECIMAL(10,3)
 
)
 
BEGIN
 
	INSERT INTO integrity.tipo_cambio VALUES (_fecha, _tc_compra, _tc_venta);
 
END

Lo curioso es que si cambio de controlador a "MySQL ODBC 3.51 Driver" el código VBA si funciona correctamente. Por razones que sería largo explicar no quiero usar este controlador para MySQL y por eso es que busco la solución con MariaDB.

Gracias por sus comentarios.

Slds.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder