问题:使用QSqlDataBase类建立连接MySql数据库驱动加载失败

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QOCI8 QOCI QODBC3 QODBC

QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.

QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.

解决方案:Qt 4.7.3编译MySql驱动

本文讲解Qt 4.7.3编译MySql驱动的内容,Qt 4.7.3在连接MySql数据库的时候可能出现的问题,原来是其他由于权限的问题,只给出了部分数据库的驱动(只有sqlite)其他的驱动只给出了源文件还有文档说明,需要自己编译,那么本文将会帮你解决这些问题。

闲话少说:解决问题首先是要下载安装MYsql还有QT,这个不用多说了,接触过的都熟悉。

编译过程:

(1)dos下进入:D:\Qt\qt\src\plugins\sqldrivers\mysql>

(2)用记事本打开D:\Qt\qt\src\plugins\sqldrivers\mysql\ mysql.pro文件,在第二行加入:  INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 5.1\include"

LIBS += "C:\Program Files\MySQL\MySQL Server 5.1\lib\opt\libmysql.lib" 并保存

(3)在dos下输入:

qmake -o Makefile mysql.pro 此时可能也会提示:

  1. WARNING:
  2. d:\Qt\qt\src\plugins\sqldrivers\mysql\mysql.pro:2: Unescaped ba ckslashes are deprecated. WARNING:
  3. d:\Qt\qt\src\plugins\sqldrivers\mysql\mysql.pro:2: Unescaped ba ckslashes are deprecated. WARNING:
  4. d:\Qt\qt\src\plugins\sqldrivers\mysql\mysql.pro:2: Unescaped ba ckslashes are deprecated

但是好像对最后的结果没有影响,然后使用nmake命令编译,会在C:\Qt\qt-4.7.3\plugins\sqldrivers目录下生成

qsqlmysql4.dll

qsqlmysql4.lib

qsqlmysqld4.dll

qsqlmysqld4.lib

这时编译你的工程就可以找到驱动了。

问题:使用QSqlquery类操作数据库存储QString中文数据到MySql数据库出现乱码

解决:

MySQL会出现中文乱码的原因不外乎下列几点:
1.server本身设定问题,例如还停留在latin1
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php)的连线语系设定问题

强烈建议使用utf8
utf8可以兼容世界上所有字符

一、避免创建数据库及表出现中文乱码和查看编码方法
1、创建数据库的时候:CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
2、建表的时候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这3个设置好了,基本就不会出问题了,即建库和建表时都使用相同的编码格式。
但是如果你已经建了库和表可以通过以下方式进行查询。

问题:存带有‘\’转义字符的数据到MySql数据库会自动过滤掉

解决:存入字符串时使用'\\'替换'\'

解析Qt4.7.3编译MySql数据库驱动,存中文乱码、过滤转义字符问题的更多相关文章

  1. Qt之编译MySQL数据库驱动(MSVC)

    Qt之编译MySQL数据库驱动(MSVC) (2013-12-13 20:24:46) 转载▼ 标签: qt mysql qmysql qt编译mysql qt之msvc编译mysql 分类: Qt ...

  2. php 保存到mysql数据库中的中文乱码

    近期又php项目,乱码是个头痛的问题 解决方法: 1,php 文件中 添加 header(“Content-Type: text/html; charset=utf-8"); 2,需要做数据 ...

  3. liunx系统二进制包安装编译mysql数据库

    liunx系统二进制包安装编译mysql数据库 # 解压二进制压缩包 [root@localhost ~]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C ...

  4. PHP往mysql数据库中写入中文失败

    该类问题解决办法就是 在建立数据库连接之后,将该连接的编码方式改为中文. 代码如下: $linkID=@mysql_connect("localhost","root&q ...

  5. 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)

    版权声明:本文为博主原创文章,转载请注明本文地址.http://www.cnblogs.com/o0Iris0o/p/5813856.html 内容介绍: 真分布式SolrCloud+Zookeepe ...

  6. [转]mysql导入导出数据中文乱码解决方法小结

    本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 ...

  7. mysql 恢复数据时中文乱码

    mysql恢复数据时中文乱码,解决办法. 用source命令导入mysql数据库怎么设置中文编码 1.导出数据时指定编码在导出mysql sql执行文件的时候,指定一下编码格式: mysqldump ...

  8. Mysql 导入导出csv 中文乱码

    这篇文章介绍了Mysql 导入导出csv 中文乱码问题的解决方法,有需要的朋友可以参考一下   导入csv: load data infile '/test.csv' into table table ...

  9. Delphi+MySQL:TADOQuery使用插入中文乱码解决方法

    Delphi+MySQL:TADOQuery使用插入中文乱码解决方法 with adoquery dobeginclose;sql.clear;sql.text:=' insert into test ...

随机推荐

  1. thinkPHP add、save无法添加、修改不起作用

    案例:数据库新添加一字段,修改值不成功.解决方案:将Runtime/Data/_fields/下面的字段缓存删除,或者直接删除整个Runtime文件也是可以的分析:由于Thinkphp,采用字段缓存机 ...

  2. yii2源码学习笔记(十二)

    继续了解controller基类. /** * Runs a request specified in terms of a route.在路径中指定的请求. * The route can be e ...

  3. SQL Server 2012 Features

    SQL SQL Server 2012 新增加的几个函数: SELECT CONVERT (INT, 'Angkor-216.00') 直接报错 SELECT TRY_CONVERT(INT, 'SS ...

  4. 【技术贴】note8 N5100刷机 双清 落雨

    双清模式:开机键 + [音量+] + HOME键 刷机模式:开机键 + [音量- ]+ HOME键 1.双清步骤: 关机时.长按音量上键+home键+开机键,直到进入recovery模式,然后选择wi ...

  5. Win7系统Matlab2013a安装.m文件不自动关联到MATLAB.exe解决方法

    1.在matlab命令行中输入以下代码: cwd=pwd; cd([matlabroot '\toolbox\matlab\winfun\private']); fileassoc('add',{'. ...

  6. Linux用户环境变量

    Linux用户环境变量 环境变量就是系统或软件设置的一些参数,用户环境变量就是用户登录系统后,都有自已专用的运行环境.在Windows系统中用户环境变量保存在用户家目录,Linux也是同样的.本文主要 ...

  7. Jar包可执行??

    第一次听说,jvm加载包,必须rwx么?

  8. 李洪强漫谈iOS开发[C语言-029] - 关系运算符

  9. [OJ] Find Minimum in Rotated Sorted Array II

    LintCode 160. Find Minimum in Rotated Sorted Array II (Medium) LeetCode 154. Find Minimum in Rotated ...

  10. java WeakReference

    在Java 1.2中就引入了java.lang.ref这个包,WeakReference就属于这个包.WeakReference是干嘛的呢,一言弊之,它是和Java中的垃圾回收相关的.如果一个对象只有 ...