Windows环境下利用Qt连接MYSQL数据库

在Windows下面利用QT开发数据库应用,如MYSQL,首先,我们必须利用源码编译MYSQL驱动库;

1)安装qt-sdk-win-opensource-2010.02.1.exe

此时,QT安装了QT Creator,假定目录为:

E:/Qt/2010.02.1/,可以选择安装MingW;

此时,E:/Qt/2010.02.1/QT为Qt库的安装位置;

2)安装MySQl,假定目录为:

include 路径为:D:/MySQL/MySQL Server 5.0/include

lib路径为:D:/MySQL/MySQL Server 5.0/lib/opt

由于两路径还有空格;拷贝至C:/mysql文件夹下;

3)将E:/Qt/2010.02.1/QT/bin 和MINGW/bin加入到PATH中;

4)cd E:/Qt/2010.02.1/qt/src/plugins/sqldrivers/mysql文件夹

运行:

E:/Qt/2010.02.1/qt/src/plugins/sqldrivers/mysql>qmake -o   Makefile   "INCLUDEPA
TH+=C:/mysql/INCLUDE"   "LIBS+=C:/mysql/lib/opt/libmysql.lib"   mysql.pro

nmake

在E:/Qt/2010.02.1/qt/plugins/sqldrivers下生成MYSQL的驱动;

编写数据库访问代码:

  1. QSqlDatabase db=QSqlDatabase::addDatabase( "QMYSQL" );  
  2.     db.setHostName("127.0.0.1" );  
  3.     db.setPort(3306);  
  4.     db.setDatabaseName("test" );  
  5.     db.setUserName("root" );  
  6.     db.setPassword("**********" );  
  7.     if (!db.open()){  
  8.         QMessageBox::warning(this , "warning!" , "failure" );  
  9.     }else {  
  10.         QMessageBox::information(this , "OK!" , "success!" );  
  11.     }  

访问成功;

 

下面是ODBC和OLEDB的连接字符串写法:

ODBC连接

适 合数据库类型 连接方式
access  "Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;"

dBase  "Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"

oracle  "Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"

MSSQL server  "Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;"

MS text  "Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"

Visual Foxpro  "Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"

MySQL  "Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"

SQLite "Driver={SQLite3 ODBC Driver};Database=D:/SQLite/*.db"

PostgreSQL "Driver={PostgreSQL ANSI};server=127.0.0.1;uid=admin;pwd=pass;database=databaseName"

OLEDB 连接

适合的数据库类型 连接方式
access  "Provider=microsoft.jet.oledb.4.0;data source=your_database_path;user id=admin;password=pass;"

oracle  "Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"

MS SQL Server  "Provider=SQLOLEDB;data source=machinename;initial catalog=dbname;userid=sa;password=pass;"

MS text  "Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties'text;FMT=Delimited'"

posted on 2010-05-10 18:13  斯人-  阅读(666)  评论(0编辑  收藏  举报