VC中用ADO操作MySql数据库中文问题
我的程序是用ADO来连接Mysq数据库的,这是原先写好用在MSSQL上的,改了下连接字符串,所以也就没有用MySql C++ API来重新写了。刚开始使用MySql,遇到的问题总是特别的多,现在又遇到一个主要sql字符串中有中文就报错的问题,没有中文一切正常,整整弄了一个上午,在网上也找了很多资料,发现网上很多东西确实是在蒙人,按他们的方法来结果都是一样的,还是错误。
现在终于把问题搞定了,共享下自己的学习经验吧。
用ADO连接MySql数据库要想避免中文乱码等问题,首先要保证数据选用的编码格式为GBK(这是许多前辈们建议的,这个字符集支持的比较多),而且在MySql中还可以设置表的,字段的编码格式。
其次,在ADO连接代码中做必要的设置,具体设置如下:
try
{
//设置ADO使用的字符集
myConn->Execute("set character_set_connection=gbk",NULL,adCmdText);
myConn->Execute("set character_set_results=gbk",NULL,adCmdText);
myConn->Execute("set character_set_client=gbk",NULL,adCmdText);
myConn->Execute(_bstr_t(sqlText),NULL,adCmdText);
}
catch (_com_error e)
{
msg = e.ErrorMessage();
}
两方面都保证了以后问题应该就可以搞定了,不过我想并不一定一定要使用GBK,能保证两边的编码格式一致应该就行。
相关文档:
在生产应用中,某台“Nginx+PHP+MySQL”接口数据服务器,扮演的角色十分重要,如果服务器硬件或Nginx、MySQL发生故障,而 短时间内无法恢复,后果将非常严重。为了避免单点故障,我设计了此套方案,编写了failover.sh脚本,实现了双机互备、全自动切换,故障转移时间 只需几十秒。
一、双机互备、全自动切换方案 ......
在mysql中利用select语句的一个特性就可以很方便地实现查询结果的分页,select语句的语法:
SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY]
[DISTINCT | DISTINCTROW | ALL]
select_expression,...
[INTO OUTFILE 'file_name'&nb ......
MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度。
MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作。
通过索引优化来实现MySQL的ORDER BY语句优化:
1、ORDER BY的索引优化。如果一个SQL语句形如:
SELECT [column1],[column2],…. fro ......
高性能MySql学习笔记
1.针对应用建立自己的索引
URL查找例子
select * from tUrl where url='http://www.163.com';
以url(字符串)作行为索引会使得作为索引结构的B-Tree变大,可以移除url列上的索引,并添加一个url_crc索引列,
先建立表:
create tables tUrl(
......