<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nideaderedes &#187; qt</title>
	<atom:link href="http://nideaderedes.urlansoft.com/category/qt/feed/" rel="self" type="application/rss+xml" />
	<link>http://nideaderedes.urlansoft.com</link>
	<description>Un blog hecho por mí y para mí</description>
	<lastBuildDate>Thu, 10 Jun 2010 18:46:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>QT+Mysql (3ª parte): Conectando a una base de datos MySQL</title>
		<link>http://nideaderedes.urlansoft.com/2006/06/23/qtmysql-3%c2%aa-parte-conectando-a-una-base-de-datos-mysql/</link>
		<comments>http://nideaderedes.urlansoft.com/2006/06/23/qtmysql-3%c2%aa-parte-conectando-a-una-base-de-datos-mysql/#comments</comments>
		<pubDate>Fri, 23 Jun 2006 07:46:30 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/2006/06/23/qtmysql-3%c2%aa-parte-conectando-a-una-base-de-datos-mysql/</guid>
		<description><![CDATA[Siguiendo con este minicurso de utilización de MySQL con QT vamos a ver un ejemplo de cómo conectar a una base de datos MySQL:
#include 
#include 
#include 
#include 
#include 
#include 

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel resultado("");
    if (QSqlDatabase::isDriverAvailable("QMYSQL")) {
     [...]]]></description>
			<content:encoded><![CDATA[<p>Siguiendo con este minicurso de utilización de MySQL con QT vamos a ver un ejemplo de cómo conectar a una base de datos MySQL:</p>
<pre><code>#include <QApplication>
#include <QPushButton>
#include <QWidget>
#include <QLabel>
#include <QSqlDatabase>
#include <QSqlError>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel resultado("");
    if (QSqlDatabase::isDriverAvailable("QMYSQL")) {
        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
        db.setHostName("localhost");
        db.setDatabaseName("nombreBD");
        db.setUserName("usuarioBD");
        db.setPassword("claveBD");
        if ( db.open() )
           resultado.setText("Bien, base de datos cargada");
        else {
             QSqlError mensaje = db.lastError();
            resultado.setText(mensaje.text());
            }
    }
    else
        resultado.setText("No hay driver");
    resultado.show();
    return app.exec();
}</code></pre>
<p>No creo necesario indicar (pero por si acaso lo hago) que hay que sustituir los valores: nombreBD, usuarioBD y claveBD por los valores adecuados.</p>
<p>Se puede indicar al programa que se conecte a un puerto diferente del habitual mediante:</p>
<pre><code>        db.setPort(3306);</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2006/06/23/qtmysql-3%c2%aa-parte-conectando-a-una-base-de-datos-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QT+MySQL (2ª parte): Comprobar si está disponible el driver MySQL para QT</title>
		<link>http://nideaderedes.urlansoft.com/2006/06/22/qtmysql-2%c2%aa-parte-comprobar-si-esta-disponible-el-driver-mysql-para-qt/</link>
		<comments>http://nideaderedes.urlansoft.com/2006/06/22/qtmysql-2%c2%aa-parte-comprobar-si-esta-disponible-el-driver-mysql-para-qt/#comments</comments>
		<pubDate>Thu, 22 Jun 2006 07:44:41 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/2006/06/22/qtmysql-2%c2%aa-parte-comprobar-si-esta-disponible-el-driver-mysql-para-qt/</guid>
		<description><![CDATA[Una sencilla aplicación que nos permite comprobar si está disponible el driver MySQL para usarlo con QT.
#include 
#include 
#include 
#include 
#include 

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel resultado("");
    if (QSqlDatabase::isDriverAvailable("QMYSQL")) {
       resultado.setText("Driver Mysql disponible");
    [...]]]></description>
			<content:encoded><![CDATA[<p>Una sencilla aplicación que nos permite comprobar si está disponible el driver MySQL para usarlo con QT.</p>
<pre><code>#include <QApplication>
#include <QPushButton>
#include <QWidget>
#include <QLabel>
#include <QSqlDatabase>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel resultado("");
    if (QSqlDatabase::isDriverAvailable("QMYSQL")) {
       resultado.setText("Driver Mysql disponible");
    }
    else
        resultado.setText("Mala suerte, driver Mysql NO disponible");
    resultado.show();
    return app.exec();
} </code></pre>
<p>y para compilar no hay que olvidar editar el fichero *.pro y añadir la línea:</p>
<pre><code>qt += sql</code></pre>
<p>En este sencillo programa todo el trabajo importante recae sobre la función estática isDriverAvailable (de la clase QSqlDatabase), que es la que comprueba si está disponible el driver.</p>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2006/06/22/qtmysql-2%c2%aa-parte-comprobar-si-esta-disponible-el-driver-mysql-para-qt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QT+MySQL (1ª parte): Compilar el driver MySQL para QT Windows</title>
		<link>http://nideaderedes.urlansoft.com/2006/06/21/compilar-el-driver-mysql-para-qt-windows/</link>
		<comments>http://nideaderedes.urlansoft.com/2006/06/21/compilar-el-driver-mysql-para-qt-windows/#comments</comments>
		<pubDate>Wed, 21 Jun 2006 15:11:21 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/2006/06/21/compilar-el-driver-mysql-para-qt-windows/</guid>
		<description><![CDATA[Si usas la versión de Windows XP de la QT seguramete habrás descubierto que el driver para MySQL no viene &#8220;de serie&#8221; por lo que es necesario compilarlo.
El problema a la hora de compilarlo es que las librerías libmysql.dll y libmysql.lib están compiladas con el compilador de Microsoft y no son compatibles con el compilador [...]]]></description>
			<content:encoded><![CDATA[<p>Si usas la versión de Windows XP de la <a title="TrollTech" href="http://www.trolltech.com">QT</a> seguramete habrás descubierto que el driver para MySQL no viene &#8220;de serie&#8221; por lo que es necesario compilarlo.</p>
<p>El problema a la hora de compilarlo es que las librerías <span class="ct lh">libmysql.dll y libmysql.lib están compiladas con el compilador de Microsoft y no son compatibles con el compilador <a title="MinGW" href="http://www.mingw.org/">MinGW </a>(el compilador para el que vienen preparadas las QT Open Edition). De tal forma que cuando intentemos crear nuestro driver nos encontraremos con un simpático mensaje similar a éste:<br />
</span></p>
<pre><code>tmpobjrelease_sharedqsql_mysql.o(.text+0x4273):qsql_mysql.cpp: undefined refe
rence to `mysql_init@4'
tmpobjrelease_sharedqsql_mysql.o(.text+0x436e):qsql_mysql.cpp: undefined refe
rence to `mysql_real_connect@32'
tmpobjrelease_sharedqsql_mysql.o(.text+0x441d):qsql_mysql.cpp: undefined refe
rence to `mysql_select_db@8'
tmpobjrelease_sharedqsql_mysql.o(.text+0x449d):qsql_mysql.cpp: undefined refe
rence to `mysql_get_client_version@0'
tmpobjrelease_sharedqsql_mysql.o(.text+0x44b7):qsql_mysql.cpp: undefined refe
rence to `mysql_get_server_version@4'
tmpobjrelease_sharedqsql_mysql.o(.text+0x4642):qsql_mysql.cpp: undefined refe
rence to `mysql_close@4'
...
collect2: ld returned 1 exit status
mingw32-make[1]: *** [........pluginssqldriversqsqlmysql.dll] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/4.1.3/src/plugins/sqldrivers/mysql'
mingw32-make: *** [release] Error 2

</code></pre>
<p>Afortunadamente existe una solución: convertir las librerías a un formato válido para MinGW. Esto se hace con unos sencillos pasos:</p>
<p><span class="ct lh" /></p>
<pre><code>
cd c:\mysql\lib\opt
reimp -d libmysql.lib
dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib  libmysql.a
</code></pre>
<p>(*) reimp viene en el paquete &#8220;MinGW-utililities&#8221;, que puede encontrarse en: <a href="http://sourceforge.net/project/showfiles.php?group_id=2435">http://sourceforge.net/project/showfiles.php?group_id=2435</a></p>
<p>(**) se supone que MySQL está instalado en (c:\mysql)</p>
<p>Ahora tenemos una librería llamada libmysql.a compatible con MinGW, ya sólo nos queda compilar el driver Mysql. Ahora podemos hacerlo tal y como se indican en las instrucciones de las QT:</p>
<ol>
<li>cd c:\qt\src\plugins\sqldrivers\mysql</li>
<li>
<pre>qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE"  "LIBS+=-LC:\MYSQL\LIB\OPT -lmysql"  mysql.pro</pre>
</li>
<li>make (por si acaso haz un &#8220;make clean&#8221; antes de make).</li>
</ol>
<p>¡Listo! ya podemos disfrutar  de nuestro nuevo y flamante driver para MySQL.</p>
<p>Fuente: <a title="Foros de las QT" href="http://www.qtforum.org">Foros de las QT</a> (un buen sitio para resolver tus dudas).</p>
<p>Ten en cuenta que la librería libmysql.dll (C:\mysql\lib\opt\libmysql.dll) tiene que estar disponible para el programa (tiene que estar en la variable PATH o en el mismo directorio que nuestro programa). En caso contrario el driver no se cargará correctamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2006/06/21/compilar-el-driver-mysql-para-qt-windows/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
