UbuntuLinux下使用Qt连接MySQL数据库.doc_第1页
UbuntuLinux下使用Qt连接MySQL数据库.doc_第2页
UbuntuLinux下使用Qt连接MySQL数据库.doc_第3页
UbuntuLinux下使用Qt连接MySQL数据库.doc_第4页
UbuntuLinux下使用Qt连接MySQL数据库.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Ubuntu Linux下使用Qt连接MySQL数据库2011-08-16 作者:千羽鸣 出处:博客 责编:郑亮 分享至新浪微博 转播到腾讯微博 环境说明:ubuntu 10.04.2QtSDK (1.5G安装包的那个)mysql5.11.安装MySQLLinux下完整的MySQL开发需要安装服务器端,如果安装客户端也没什么不好。直接在软件中心搜mysql,把client和server选上。server在安装时会提示为root用户设置密码,设一个好了。我使用的是mysql5.1版本,用户名密码存储在一个叫mysql的数据库里,只有管理员级别才能看到。如果直接在终端中输入 mysql,可能会提示ERROR 1045 (28000),这是因为这时候你是以自己用户名访问数据库,而目前数据库中只有一个root用户。没关系,如果有必要,可以添加一个用户进去:mysql -uroot -p -以root用户登录,grant usage on *.* to dummylocalhost; -授权名为dummy的用户本地登录,这里换成自己的用户名就可以了。不过这时候直接mysql只有普通的权限,创建数据库、操作mysql都是不可以的,如果真有将其赋予管理员权限的需要,可以自己查阅有关资料。2.安装Qt的MySQL驱动方法一:直接sudo apt-get install libqt4-sql-mysql ,这是Qt4的mysql驱动,就不用自己费劲编译了,不过可能会额外下载一些东西。将 /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷贝到你的QtSDK sqldrivers目录下,我当时是直接用普通权限安装,目录为:/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers。方法二:其实你也可以sudo apt-get download libqt4-sql-mysql,把包解压缩,然后把里面的so文件搜出来直接拷贝到那里。方法三:乖乖按照官方方法编译,但是貌似可行性不大,因为新版本的QtSDK并没有src目录,默认也没有mysql的驱动。3.做个demo试一下记得在pro文件中 QT +=那里加上sql,否则qmake是不会去找sql的相关部分的。#include #include #include int main(int argc, char *argv)QCoreApplication a(argc, argv);QSqlDatabase db=QSqlDatabase:addDatabase(QMYSQL);db.setHostName(localhost);db.setDatabaseName(study);db.setUserName(root);db.setPassword(tyh);if(!db.open()qDebug()Unable to open database;elseqDebug()Database connection established;return a.exec();这里study这个数据库之前我已经创建过了,如果连接成功,就会显示Database connection established。 我是建立的控制台程序哈。热点推荐 data.h #define DB_SALES_DRIVER QMYSQL3 #define DB_SALES_DBNAME CAAS #define DB_SALES_USER root #define DB_SALES_PASSWD #define DB_SALES_HOST main.cpp #include #include #include #include #include #include #include #include #include data.h #include #include class MyQVBox : public QVBox public: MyQVBox( QWidget *parent=0, const char *name=0 ); /public slots: / refValue(QSrting lzw); ; MyQVBox:MyQVBox( QWidget *parent, const char *name ) : QVBox( parent, name ) QString Lzw(n); QSqlDatabase *defaultDB = QSqlDatabase:addDatabase(DB_SALES_DRIVER); if ( defaultDB ) defaultDB-setDatabaseName( DB_SALES_DBNAME ); defaultDB-setUserName( DB_SALES_USER ); defaultDB-setPassword( DB_SALES_PASSWD ); defaultDB-setHostName( DB_SALES_HOST ); if ( defaultDB-open() ) /插入数据 QSqlQuery query(INSERT INTO test(ID,Name,Age) VALUES(1155, Ginger, 125); ); /提取数据 QSqlCursor cur( test ); / 指定表/视图名称 cur.select(); / 我们将检索每一条记录 while ( cur.next() ) qDebug( cur.value( ID ).toString() + : + cur.value( Name ).toString() + + cur.value( Age ).toString() ); Lzw.append(cur.value( ID ).toString() + : + cur.value( Name ).toString() + + cur.value( Age ).toString()+n); /qDebug(Lzw); printf(aaaaaaa); QString ustr = (QTextCodec:codecForLocale()-toUnicode(Lzw); QString sstr = (QTextCodec:codecForLocale()-toUnicode(刷新); QTextEdit *myEdit = new QTextEdit(this,0); myEdit-setText(ustr); QPushButton *quit = new QPushButton(sstr, this, quit ); connect( quit, SIGNAL(clicked(), qApp, SLOT(quit() ); int main( int argc, char *argv ) QApplication app( argc, argv ); MyQVBox *mybox = new MyQVBox(0,0); /mybox-setText(ustr); app.setMainWidget(mybox); mybox-show(); return app.exec(); QSqlDatabase db = QSqlDatabase:addDatabase(QODBC); /db.setHostName(PC-201103312227); /如果dsn中已经含有SERVER,可以省略此句 db.setHostName(172.16.133.20); QString dsn =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论