CPP (a.k.a C++) + MySQL

MySQL

Hola a todos aquí les traigo un ejemplo de como sería una conexión entre C++ y MySQL en GNU/Linux, claro que esto es solo un ejemplo básico. Primero que todo para compilar voy a usar G++ y deben tener instalado los paquetes libmysql++ y libmysql++-dev . Bueno aqui el ejemplo:

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

using namespace std;

#define SERVER "HOST"
#define USER "USR"
#define PASSWORD "PSWD"
#define DATABASE "example"

int main()
{

MYSQL *connect;
connect=mysql_init(NULL);

if (!connect)
{
cout<<"MySQL Initialization failed";
return 1;
}

connect=mysql_real_connect(connect, "HOST", "USER", "PASWD" , "DATA BASE" ,0,NULL,0);

if (connect)
{
cout<<"connection Succeeded\n";
}
else
{
cout<<"connection failed\n";
}

MYSQL_RES *res_set;
MYSQL_ROW row;
mysql_query (connect,"select * from data;");
unsigned int i =0;
res_set = mysql_store_result(connect);
unsigned int numrows = mysql_num_rows(res_set);

cout << endl;
cout <<"\t --------------------------------------------------------------------- \t"<< endl;

while (((row= mysql_fetch_row(res_set)) !=NULL ))
{ //cout<<" %s\n",row[i] !=NULL?row[i] : "NULL";

cout <<"\t | \t" << row[i] << "\t | \t"<<  row[i+1] << "\t | \t"<< row[i+2] << "\t | \t" << endl;
cout <<"\t --------------------------------------------------------------------- \t"<< endl;
}

mysql_close (connect);
return 0;
}

Bueno, si no saben como compilar en G++ este es un ejemplo:

g++ -o main main.cpp  -L/usr/include/mysql -lmysqlclient  -I/usr/include/mysql

Luego lo ejecutas y quedaría así:

-------------------------------------
|     1     |     Carmen     |     46     |
-------------------------------------
|     2     |     Juan          |     56     |
--------------------------------------

Nota: también puedes compilarlo usando MAKEFILE METHOD.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   pandev92 dijo

    C++…, ese lenguaje me derrotó hace tiempo…

    1.    eliotime3000 dijo

      Yo me quedo con hambre de más con ese lenguaje de programación (la claridad y las posibilidades que ofrece son irremplazables).

      1.    pandev92 dijo

        No digo que no, solamente a que a mi , se me hizo muy díficil, python o mono, me parecieron más fáciles de usar.

        1.    Giskard dijo

          Quédate con Python. Te hace más productivo en menos tiempo.

        2.    eliotime3000 dijo

          Python pueda ser, para poder corregir bugs que enlentecen programas como el software-center o el Ubiquiti, pero Java, sólo para matar el tiempo.

          De hecho, con el C++ yo logro entender mejor los códigos (aunque la mayoría vea un laberinto de códigos ilegibles) y puedo tener una noción clara acerca de lo que va a hacer (aunque el Java es más fácil de entender el código a la primera, lo veo como si fuese BASIC y a decir verdad, prefiero trabajar con el OpenJDK en vez del Java JDK por temor a que Oracle meta más bugs por joder).

    2.    nelson dijo

      a mi tambien

  2.   ferchometal dijo

    Gracias amigo.

  3.   Eduardo dijo

    ¿ejemplo básico? Entonces será el clásico:
    clase: 2+2 = 4
    tarea: 2×3=6
    exámen: si eduardo tiene 20 naranjas y las debe repartir entre 4 niños, ¿cual es la masa corporal de los niños?

    1.    eliotime3000 dijo

      1.- Solucionar el problema (lo más importante y lo que realmente demora más para un novel).
      2.- Traducir la solución al C++ (si es ese lenguaje, los nóveles van a rendirse en la mayoría de los casos y más si usan GNU Emacs).
      3.- Depurar por precaución y compilar (en realidad es al revés, pero pocos hacen ese proceso).

      PD: Ese examen es anti-petulantes/pedantes.

  4.   Eduardo dijo

    Las disculpas del caso por el comentario por triplicado, pero la página me dio error interno de servidor y quizá por ello, al reintentar, se posteó nuevamente.
    Saludos y gracias por el post!!

    1.    eliotime3000 dijo

      No hay problema. De todas formas, estoy comentando en Chromium nightly para Windows y no he tenido problemas de esa índole a la hora de comentar (aunque te recomiendo que te registres para que el sistema de comentarios te bote más errores que Windows Millenium).

      1.    eliotime3000 dijo

        Quise decir: «aunque te recomiendo que te registres para que el sistema de comentarios te bote menos errores que Windows Millenium» [errare humanum est].

        1.    pandev92 dijo

          carpe dium LOL

  5.   eliotime3000 dijo

    Ése código es lo más bello que he visto en cuanto al C++ (visualizador de base de datos al estilo KISS).

    Ahora, si se logra compilar este código en Windows usando el GNU Emacs en conjunto con el GCC en Windows (con el MySQL/MariaDB incluído), sería un hito.

  6.   ratakill dijo

    Sin dudas c++ es lo major q tenemos he hecho un sin limites de pruebas a cerca de el rendimiento y posibilidades q nos brinda y sin duda nada lo supera claro q reconosco q puede ser un dolor de cabeza para algunos

    1.    eliotime3000 dijo

      Yo admiro ese lenguaje, pero me falta práctica (y bastante) como para poder dominarlo por completo y poder así armar una aplicación visual decente con Qt.

  7.   jamin-samuel dijo

    Huy no

    Prefiero Python

    😀

    1.    ratakill dijo

      Well cada loco con su tema saludos

    2.    Giskard dijo

      Excelente elección.

    3.    eliotime3000 dijo

      [egoísmo]Vago[/egoísmo].

  8.   julian dijo

    Prefiero VB.NET, es mucho mas fácil y tiene buen soporte para SQL Server. Ademas de ser mas productivo que otros lenguajes y uno de los más solicitados a la hora de buscar trabajo. no quiero perder mi tiempo con C++

    1.    pandev92 dijo

      Si nos ponemos así, el más solicitado suele ser la porqueria de Java.

      1.    eliotime3000 dijo

        Es igual que el VB.NET, pero mucho más gráfico y es inútil trabajarlo en GNU/Linux.

  9.   ratakill dijo

    Solo recomiendo C++ bc probe crear una simple venta en c++ , python and qt y valla sorpresa:
    Python-> 7.6 mb
    Qt -> 27 mb (XD)
    C++ -> 2.4 mb

    Well cada cual q saque sus propias conclusiones saludos

    1.    Giskard dijo

      Python 7.6MB??? Qué va! Imposible. Si no son más que scripts. O tenías imágenes? Comparte el código. Así lo vemos todos y comparamos. Convéncenos.

      1.    ratakill dijo

        Tienes razon un pequenno fallo python no consumia 7.6 mb pero si 6.2 mb so que me dices ahora…
        Este es el codigo y creo que mas optimizado no puede estar:
        #!/usr/bin/python
        from gi.repository import Gtk

        win = Gtk.Window()
        win.connect(«delete-event», Gtk.main_quit)
        win.show_all()
        Gtk.main()

        1.    Giskard dijo

          Me imagino que te refieres a consumo en RAM. La cosa es que en Python y en casi cualquier lenguaje, escalas una curva asintótica a medida que complicas el código. Por probar nada más corrí un juego que estoy desarrollando con PyGame. Animación + audio en background + sonidos por eventos y apenas llegó a 14MB. Como obviamente tu programa no va a ser así de simple como una ventanita sino más complejo, verás al final que, cuando tengas suficiente código, grandes modificaciones en él no te reportarán un mayor incremento en el uso de RAM.

        2.    Giskard dijo

          Para simplificar un poco lo que te expongo: No puedes hacer un profile de tiempo si no corres unas miles de veces un segmento de código, verdad? Bueno, del mismo modo no puedes decir si un lenguaje consume mucho o poco simplemente mirando el ejemplo más simple posible. De hecho, el truco está en mirar el más complejo que puedas.

          1.    ratakill dijo

            Bueno a mi entender a nivel de programacion esta 01010111, ensamblador y luego c, so imposible que on lenguaje de alto nivel como python supero en rendimiento (en todos os sentidos) a c/c++ y bueno que mejor que un ejemplo bien sencillo como el de crear una ventana para ver una diferencia de 3.8 mb en solo mostrar una simple ventana, cuando le agregues carga a tu programa (un programa grande, que tenga buen peso con mas de 5 forms, y apliques clases, herencia, polimorfirmos, funciones virtuales, punteros y de mas por poner un ejemplo) te aseguro que cambiaras de opinion, quiero q quedeclaro que no critico otros lenguajs de programacion y mucho menos python al cantrario, solo comento y pruebo con pruebas las ventajas y desventajas que veo a simple vista sin animo de profundizar saludos

          2.    Giskard dijo

            Revisa esto:

            http://www.youtube.com/watch?v=cPVlYWxcu18

            Pero ve el video completo. No hagas trampa que si no simplemente darás una opinión basada en prejuicios.

          3.    Giskard dijo

            En todo caso no me entendiste. A medida que compliques el asunto ambos van a tener más o menos el mismo peso. En la página de Lazarus dan un gráfico al respecto de eso por cierto, comparando Lazarus con C.
            Al final todo es relativo amigo. Porque no sólo de RAM vive el hombre.

    2.    eliotime3000 dijo

      Al menos el QT es compatible con las interfaces Aqua, Win32 (y sus variantes Aero y Metro) y demás interfaces excepto el LXDE (se ve como Windows 95 para ser sincero).

      1.    pandev92 dijo

        gtk2 en aqua se ve bien…