Entries from Febrero 2006 ↓

CString Trim

Quienes programamos en MFC Visual C++ algunas veces hemos tenido que eliminar los espacios en blanco de una cadena y sucede que la clase CString no tenia una sola funcion trim, sino las funciones TrimLeft y TrimRight.

Nose por que diablos demoraron tanto (o no se dieron cuenta) en agregar esa funcioncita.

Lo que se hacia normalmente es:

m_sCadena.TrimLeft();

m_sCadena.TrimRight();

Esto ahora ha causado un problema de compatibilidad con las versiones anteriores y no creo que sea la unica.

Leer datos MySQL desde C++ sobre Linux

Tux Programming Resulta que algunas veces es necesario acceder desde C++ a MySQL, razones hay muchas…. el asunto es como hacerlo.

Esta mañana intenté hacer una conexion sobre Fedora Core 3 con C++, tengo instalado MySQL 5.0.17, y mysql-devel 5.0.18 ( Todo eso lo pueden descargar de http://dev.mysql.com )

El codigo no es gran cosa, pero puede servir a muchos.

Enjoy!

//conexion.cpp

#include <iostream.h>
#include <mysql.h>

int main()
{
    MYSQL mysql;

    mysql_init(&mysql);
    if (!mysql_real_connect(&mysql
		,"localhost"
		,"root"
		,""
		,"munipuno",0,NULL,0))
    {
        cerr<<"Horror ! : "
			<<mysql_error(&mysql));
    }
    char *query = "select * from maestro_departamentos";

    mysql_real_query(&mysql,query,strlen(query));
    MYSQL_RES *res = mysql_store_result(&mysql);
    MYSQL_ROW row;

    while ((row = mysql_fetch_row(res)))
    {
            cout << row[0] << ” ” << row[1] << endl;
    }

    mysql_close(&mysql);
    return 0;
}

Parametros gcc para compilar este programa.

gcc conexion.cpp -o conexion -Wno-deprecated
           -I/usr/include/mysql -L/usr/lib/mysql
           -lmysqlclient -lstdc++ -lz

El resultado de este programa es el siguiente:

[ivancp@servidor1 cpp]# ./conexion
01 AMAZONAS
02 ANCASH
03 APURIMAC
04 AREQUIPA
05 AYACUCHO
06 CAJAMARCA
07 CALLAO
08 CUSCO
09 HUANCAVELICA
10 HUANUCO
11 ICA
12 JUNIN
13 LA LIBERTAD
14 LAMBAYEQUE
15 LIMA
16 LORETO
17 MADRE DE DIOS
18 MOQUEGUA
19 PASCO
20 PIURA
21 PUNO
22 SAN MARTIN
23 TACNA
24 TUMBES
25 UCAYALI