Problema solucionado ODBC Connector

MySQL Generalmente me conecto a MySQL con ayuda del controlador ODBC que provee el mismo MySQL. Como sabemos todo MySQL esta en pledo desarrollo, ocurre que se presentan situaciones que no fueron contempladas, por consiguiente hay errores que perjudican el desarrollo haciendo que uno tome precausiones antes de utilizar un codigo especifico. Muchos hemos crecido con MySQL y creo que si no hubiera sido asi lo hubieramos desechado por detalles como este que les voy a mostrar a continuacion.

Para no darle mas vueltas al asunto concretamente el problema es como sigue:

Cuando se intentaba leer un campo varchar (o relacionado) que este vacio o NULL, el controlador ODBC lo reconocía como UNKNOWN, evidentemente no podía realizarse el paso de valores al tipo CString o char* del Visual C++.

Para evitar ese problema se tenía que averiguar la longitud del campo que se va a leer, algo asi como esto:

ULONG len = 0;
rs.GetAccessor()->GetLength(2,&len); // segundo campo
if(len > 0)
{
	rs.GetFieldValue(2,sValue);
	//...
}

Esto sucedia con las versiones del ODBC Connetor inferiores a la 3.51.12. Ahora el codigo anterior se reduce a la linea que lee el campo y hace el paso del valor a la variable.

3 pensamientos en “Problema solucionado ODBC Connector

  1. Pingback: DbRunas.com.ar - Problema solucionado ODBC Connector

  2. hola, gogleando encontre este blog y seguramente sabras responderme. sucede que conozco poco de mysql y necesito arreglar un problemita en mi trabajo.

    Necesito hacer lo siguiente con un triger;
    —Existe un sistema de gestión que solo actualiza datos, en una tabla, y se necesita que guarde los datos anteriores a la actualización y los datos posteriores, es decir lleve un historico de movimientos. Se entiende? bueno, eso espero.
    La idea es hacer un triger, con algo asi….

    CREATE TRIGGER Ins_Data_hist BEFORE UPDATE ON Estado
    FOR EACH ROW
    insert into Data_hist (fecha, precio, usuario) values (NEW,fecha, NEW.precio, NEW.usuario)

    en primer lugar quisiera saber si ésta éscritura de codigo esta bien, en segundo y lo mas principal, es como decirle al motor de base de datos, mediante el codigo, que mi tabla «Ins_Data_hist» que es donde estoy queriendo realizar los inserts, se encuentra en otra base de datos. o sea yo estoy escribiendo un triger en una base de datos, para que me inserte las filas en una tabla pero que esta en otra base de datos.
    Bueno amigos, eso es todo…. gracias.

Responder a fernando Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.