﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-jack-wang-随笔分类-DB</title><link>http://www.cppblog.com/jack-wang/category/14013.html</link><description>小王</description><language>zh-cn</language><lastBuildDate>Wed, 11 May 2022 13:05:20 GMT</lastBuildDate><pubDate>Wed, 11 May 2022 13:05:20 GMT</pubDate><ttl>60</ttl><item><title>连接SQL Server2008服务器报错：[DBNETLIB][ConnectionOpen(Invalid Instance())]</title><link>http://www.cppblog.com/jack-wang/archive/2022/05/11/229312.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Wed, 11 May 2022 09:38:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2022/05/11/229312.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/229312.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2022/05/11/229312.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/229312.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/229312.html</trackback:ping><description><![CDATA[<span style="color: #333333; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">&#8220;Provider=SQLOLEDB.1;Persist Security Info=False;User ID=**;PWD=**;Initial Catalog=DatabaseName;Data Source=IP&#8221;<br /><br /></span>改为：<br /><br /><span style="color: #333333; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">&#8220;Provider=SQLOLEDB.1;Persist Security Info=False;User ID=**;PWD=**;Initial Catalog=DatabaseName;Data Source=IP,1433&#8221;<br /><br /><br />再次连接，成功。<br /><br />O了！<br />去你爹个懒子！<br /></span><img src ="http://www.cppblog.com/jack-wang/aggbug/229312.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2022-05-11 17:38 <a href="http://www.cppblog.com/jack-wang/archive/2022/05/11/229312.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sql server 远程过程调用失败</title><link>http://www.cppblog.com/jack-wang/archive/2022/05/11/229311.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Wed, 11 May 2022 08:42:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2022/05/11/229311.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/229311.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2022/05/11/229311.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/229311.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/229311.html</trackback:ping><description><![CDATA[安装了VS2019后，再安装SQL Server2008，<br />启动SQL Server配置管理器，打开&#8220;SQL Server服务&#8221;一项报错：<br /><div>sql server 远程过程调用失败<br /><br />解决：<br />控制面板-程序-程序和功能-卸载或更改程序<br />找到&#8220;Mircrosoft SQL Server2016 LocalDB&#8221;一项，<br />删除<br /><br />再次打开SQL Server配置管理器<br /><br />O了！<br /></div><img src ="http://www.cppblog.com/jack-wang/aggbug/229311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2022-05-11 16:42 <a href="http://www.cppblog.com/jack-wang/archive/2022/05/11/229311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql远程登录</title><link>http://www.cppblog.com/jack-wang/archive/2022/04/01/229265.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Thu, 31 Mar 2022 18:00:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2022/04/01/229265.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/229265.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2022/04/01/229265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/229265.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/229265.html</trackback:ping><description><![CDATA[<div>使用root用户连接远程的mysql主机报错。<br /><br />打开mysql控制台<br />mysql&gt; grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;<br /><br />输出：</div><div>Query OK, 0 rows affected, 1 warning (0.00 sec)</div><div></div><div>mysql&gt; flush privileges;<br /><br />输出：</div><div>Query OK, 0 rows affected (0.01 sec)</div><span style="color: #4b4b4b; font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 13px; background-color: #ffffff;"><br />再次连接mysq服务器，<br />O了！<br />去你爹个懒子<br /><br /></span><img src ="http://www.cppblog.com/jack-wang/aggbug/229265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2022-04-01 02:00 <a href="http://www.cppblog.com/jack-wang/archive/2022/04/01/229265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>破解Navicat15</title><link>http://www.cppblog.com/jack-wang/archive/2022/02/10/229194.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Thu, 10 Feb 2022 06:37:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2022/02/10/229194.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/229194.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2022/02/10/229194.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/229194.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/229194.html</trackback:ping><description><![CDATA[转载：https://www.cnblogs.com/xiaomingxing/p/15228716.html<br /><br />1、运行破解工具Navicat_Keygen_Patch_v5.6_By_DFoX.exe，生成注册码。<br /><span style="font-family: &quot;Helvetica Neue&quot;, Helvetica, Verdana, Arial, sans-serif; background-color: #ffffff;">2、运行Navicat15<br />弹出试用提醒对话框。<br />点击&#8220;注册&#8221;按钮，</span>弹出注册窗口。<br />3、输入破击工具生成的注册码，点击&#8220;注册&#8221;按钮。<br />注册失败，弹出激活失败对话框，点击&#8220;手动激活&#8221;，弹出手动激活窗口。<br />4、复制请求码，粘贴到破击工具中，生成激活码<br />5、此时激活码已经自动被复制粘贴到Navicat手动激活窗口中，点击激活<br /><br />O了，不用谢，请叫我雷锋<img src ="http://www.cppblog.com/jack-wang/aggbug/229194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2022-02-10 14:37 <a href="http://www.cppblog.com/jack-wang/archive/2022/02/10/229194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CentOS中安装MariaDB10.x</title><link>http://www.cppblog.com/jack-wang/archive/2021/12/09/217876.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Thu, 09 Dec 2021 07:54:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2021/12/09/217876.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/217876.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2021/12/09/217876.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/217876.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/217876.html</trackback:ping><description><![CDATA[1、删除旧版本<br />CentOS7中默认安装了MariaDB5.x<br />rpm -qa|grep mariadb<br />可以看到输出：<br />mariadb-5.x.x86_64<br />mariadb-server-5.x.x86_64<br />mariadb-lib-5.x.x86_64<br /><br />全部删除<br />yum remove&nbsp;mariadb-5.x.x86_64<br />yum remove mariadb-server-5.x.x86_64<br />yum remove&nbsp;mariadb-lib-5.x.x86_64<br /><br />2、安装前配置<br /><span style="font-family: monospace; background-color: #f3f3f3;">进入目录：<br />/etc/yum.repos.d<br /></span>创建文件<br /><span style="font-family: monospace; background-color: #f3f3f3;">MariaDB.repo</span><br />打开官网的下载页面<br /><div>https://mariadb.org/download/<br />选择指定版本（例如10.3），把官网中这段配置加入到<font face="monospace"><span style="background-color: #f3f3f3;">MariaDB.repo中：<br /></span></font><br /><div># MariaDB 10.3 CentOS repository list - created 2021-12-08 07:57 UTC</div><div># https://mariadb.org/download/</div><div>[mariadb]</div><div>name = MariaDB</div><div>baseurl = https://mirrors.aliyun.com/mariadb/yum/10.3/centos7-amd64</div><div>gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB</div><div>gpgcheck=1</div><br />退出保存<br /><br />3、安装<br /><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">sudo yum install MariaDB-</span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #c18401; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">server</span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;"> MariaDB-client</span><br />启动<br /><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">systemctl </span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #a626a4; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">start</span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;"> mariadb<br /></span>设置为开机启动<br /><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">systemctl </span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #c18401; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">enable</span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;"> mariadb<br /></span><br />4、安装后配置<br />初始化<br /><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">mysql_secure_installation<br /></span>输出：<br /><span style="color: #4d4d4d; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">Enter current password for root (enter for none):<br /></span>初次进行初始化时，直接回车即可。注意这里的root指的是DB的root账户，而不是操作系统的root账户<br /><br /><span style="color: #4d4d4d; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">Set root password? [Y/n]<br /></span>设置root密码<br /><br /><span style="color: #4d4d4d; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">Remove anonymous users? [Y/n] <br />是否删除匿名用户，y<br /><br /></span><span style="color: #4d4d4d; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">Disallow root login remotely? [Y/n]&nbsp;<br /></span><span style="color: #4d4d4d; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">是否禁止root远程登录, n<br /><br /></span><span style="color: #4d4d4d; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">Remove test database and access to it? [Y/n]&nbsp;</span><br /><span style="color: #4d4d4d; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">是否删除test数据库，n<br /><br /></span><span style="color: #4d4d4d; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">Reload privilege tables now? [Y/n]&nbsp;<br />是否重新加载权限表，y<br /><br /></span>5、登录<br /><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">mysql -u root -</span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #e45649; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">p<br /></span>输入密码：dasiwoyebushuo<br /><br />登录成功<br /><br />O了<br /><br />6、设置字符集<br />（1）打开文件：<br /><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">/etc/my.cnf</span><br />添加如下内容：<br /><br /><div>[mysqld]</div><div>init_connect='SET collation_connection = utf8_general_ci'</div><div>init_connect='SET NAMES utf8'</div><div>character-set-server=utf8</div><div>collation-server=utf8_general_ci</div><div>skip-character-set-client-handshake<br /><br />（2）进入路径：<span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">/etc/my.cnf.d<br /></span>打开文件：<br /><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">mysql-clients.cnf</span><br /><span style="color: #4d4d4d; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">在[mysql]中</span>添加如下内容：<br /><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #a626a4; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">default</span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; color: #383a42; white-space: pre;">-</span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #986801; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">character</span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; color: #383a42; white-space: pre;">-</span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #a626a4; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">set</span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; color: #383a42; white-space: pre;">=</span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">utf8<br /><br />（3）重启<br /></span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">systemctl restart mariadb</span></div><br />（4）查看字符集<br /><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">mysql</span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; color: #383a42; white-space: pre;">&gt;</span> <span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #a626a4; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">show</span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;"> variables </span><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #a626a4; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">like</span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;"> "%character%";<br /></span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;">mysql</span><span class="hljs-operator" style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; color: #383a42; white-space: pre;">&gt;</span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;"> </span><span class="hljs-keyword" style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #a626a4; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">show</span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;"> variables </span><span class="hljs-keyword" style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: #a626a4; overflow-wrap: break-word; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre;">like</span><span style="color: #383a42; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; white-space: pre; background-color: #fafafa;"> "%collation%";<br /></span>可以看到字符集已经是utf8了<br /><br /><br /><br /><br /><br /></div><img src ="http://www.cppblog.com/jack-wang/aggbug/217876.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2021-12-09 15:54 <a href="http://www.cppblog.com/jack-wang/archive/2021/12/09/217876.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QT5 访问MySQL数据库报错：QMYSQL driver not loaded</title><link>http://www.cppblog.com/jack-wang/archive/2021/10/15/217833.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Fri, 15 Oct 2021 02:32:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2021/10/15/217833.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/217833.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2021/10/15/217833.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/217833.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/217833.html</trackback:ping><description><![CDATA[<div id="xl_chrome_ext_{4DB361DE-01F7-4376-B494-639E489D19ED}" style="display: none;">       <div></div>        <a id="xl_chrome_ext_download" href="javascript:;">下载视频</a>       <a id="xl_chrome_ext_close" href="javascript:;"></a></div><div id="xl_chrome_ext_{4DB361DE-01F7-4376-B494-639E489D19ED}" style="display: none;">       <div></div>        <a id="xl_chrome_ext_download" href="javascript:;">下载视频</a>       <a id="xl_chrome_ext_close" href="javascript:;"></a></div>现象：<br />QT5.15.1访问MySQL5.7数据库报错：QMYSQL driver not loaded<br /><br />原因：QT5默认没有安装MySQL驱动。<br />我尼玛，QT开发者是咋想的？给我DB访问组件却无法访问DB，这不是挖坑让你爹跳吗？你卖瓜不保熟啊！<br />连SQLite驱动都有，最常用的MySQL却不支持，你这套QT岂不是半成品吗，挺会省事啊，别嘚儿喝的。<br /><br />解决：<br />1、按照网上资料介绍，把MySQL安装路径下<br />C:\Program Files\MySQL\MySQL Server 5.7\lib<br />里面的libmysql.dll复制到<br />QT的安装路径下<br /><div>C:\Qt\5.15.1\msvc2019_64\bin<br /><br />再次运行程序访问DB，还是失败，仍然报错：QMYSQL driver not loaded<br />发帖的狗懒子，自己动手试过没有啊，就特么瞎哔哔！<br /><br />2、打开QT安装路径下<br /><div>C:\Qt\5.15.1\msvc2019_64\plugins\sqldrivers<br />看到其中各种类型的驱动库dll，包括sqlite等，唯独没有和mysql有关的dll文件，<br />问题应该就是这里了，那就想办法弄个mysql的驱动库来<br /><br />3、打开QT安装路径下的源码<br /><div>C:\Qt\5.15.1\Src\qtbase\src\plugins\sqldrivers\mysql<br />双击用QTCreator打开mysql.pro</div>（1）打开mysql.pro文件<br />注释掉<span style="color: #008000;">QMAKE_USE</span> <span style="color: #008000;">+=</span> <span style="color: #008000;">mysql</span><br />结尾添加几行代码：<br /><pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#008000;"></span></pre><pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#008000;">#</span> <span style=" color:#008000;">添加你自己的mysql安装目录下的include文件夹</span></pre> <pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#800080;">INCLUDEPATH</span> += "C:\Program Files\MySQL\MySQL Server 5.7\<span style=" color:#808000;">include</span>"</pre> <pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#008000;">#</span> <span style=" color:#008000;">添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件</span></pre> <pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#800080;">LIBS</span> += "C:\Program Files\MySQL\MySQL Server 5.7\lib\libmysql.lib"</pre> <pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#008000;">#</span> <span style=" color:#008000;">设置编译好的qmysql.dll放置的目录，不然你可能不知道会生成在哪。</span></pre> <pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#800080;">DESTDIR</span> = ../mysql/mysqlDll<br /><br />（2）打开qsqldriverbase.pri文件<br />注释掉include($$shadowed($$PWD)/qtsqldrivers-config.pri)<br />当前路径的上层路径sqldrivers\中并没有这个qtsqldrivers-config.pri文件，只有configure.pri文件。<br />改为：<br /><pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#008000;">#include($$shadowed($$PWD)/qtsqldrivers-config.pri)</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#808000;">include</span>(./configure.pri)</pre>尼玛，QT的开发者给个源码也是陷阱重重啊，向你问好：尼玛拉格-彼得！<br /><br />（1）（2）两步工作做完，开始点锤子图标编译。<br />编译失败，报错找不到&lt;mysql.h&gt;文件。<br /><br />再查资料，似乎是QT不能识别路径中的空格。<br />把MySQL安装路径下的C:\Program Files\MySQL\MySQL Server 5.7文件夹整个拷贝出来并改名为C:\MySQL5<br />把步骤（1）中添加的代码中的路径改为<br /><pre style="margin-top: 0px; margin-bottom: 0px;"><span style="color: #800080;">INCLUDEPATH</span> += "C:\MySQL5\<span style="font-family: verdana, &quot;courier new&quot;; color: #808000;">include</span><span style="font-family: verdana, &quot;courier new&quot;;">"</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;"><span style="color: #800080;">LIBS</span> += "C:\MySQL5\lib\libmysql.lib"<br />再次编译，又失败，还是报错找不到&lt;mysql.h&gt;文件<br /><br />这次似乎是斜杠的问题</pre><pre style="margin-top: 0px; margin-bottom: 0px;">把步骤（1）中添加的代码中的路径再改为<br /><pre style="margin-top: 0px; margin-bottom: 0px;"><span style="color: #800080;">INCLUDEPATH</span> += "C:/MySQL5/<span style="font-family: verdana, &quot;courier new&quot;; color: #808000;">include</span><span style="font-family: verdana, &quot;courier new&quot;;">"</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;"><span style="color: #800080;">LIBS</span> += "C:/MySQL5/lib/libmysql.lib"<br />再次编译，成功！（有可能编译失败，但已生成<span style="font-family: verdana, &quot;courier new&quot;;">qsqlmysqld.dll</span><span style="font-family: verdana, &quot;courier new&quot;;">）</span><br /><br />4、把生成的qsqlmysqld.dll拷贝到QT安装路径下的驱动目录<br /><div>C:\Qt\5.15.1\msvc2019_64\plugins\sqldrivers<br />再次运行程序，访问DB，成功！<br /><br />O了！<br />牛逼-克拉斯！</div></pre></pre>尼玛拉格-彼得！<br /><pre style="margin-top: 0px; margin-bottom: 0px;">尼玛，真不容易啊！<br />尼玛，QT的开发者，幸亏你爹我扛造！真应该送你们去菲律宾皮带大队网络科技有限公司进修啊！<br /><br /><br /><br /><br />参考这哥们：<br /><div>https://www.cnblogs.com/dz-study/p/12382837.html</div><br /><br /></pre></pre><pre style="margin-top: 0px; margin-bottom: 0px;"></pre></div></div><img src ="http://www.cppblog.com/jack-wang/aggbug/217833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2021-10-15 10:32 <a href="http://www.cppblog.com/jack-wang/archive/2021/10/15/217833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CentOS7下安装MySQL5.7</title><link>http://www.cppblog.com/jack-wang/archive/2021/01/17/217574.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Sun, 17 Jan 2021 12:51:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2021/01/17/217574.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/217574.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2021/01/17/217574.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/217574.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/217574.html</trackback:ping><description><![CDATA[1、删除系统自带的MySQL相关文件<br />whereis mysql<br />查询到默认mqsql相关路径：<br /><div>/usr/lib64/mysql /usr/share/mysql</div><div><br />find / -name mysql<br />查询到默认mqsql相关路径：</div><div>/usr/lib64/mysql<br />/usr/share/mysql</div><br />删除这两个路径，再次<br />whereis mysql<br />find / -name mysql<br />经验值，确认已删除默认mysql<br /><br />2、创建mysql用户组和用户<br />检查mysql用户组合用户是否存在<br /><div>cat /etc/group | grep mysql<br /><div>cat /etc/passwd |grep mysql<br /><br />发现并不存在，于是新建用户组和用户：<br /><div>groupadd mysql<br /><div>useradd -r -g mysql mysql<br /><br />验证：</div></div>cat /etc/group | grep mysql<br /><div>cat /etc/passwd |grep mysql<br />发现mysql用户组和用户已经创建成功<br /><br />3、下载MySQL</div></div>到MySQL官网下载这个版本：<br />mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz<br /><br />解压<br />tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz<br />生成文件夹<br />mysql-5.7.32-linux-glibc2.12-x86_64<br /><br />移至路径<br /><div>mv mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql<br />进入路径<br />/usr/local/mysql<br />创建文件夹<br />mkdir data<br /><br />设置mysql路径所属的用户组和用户，以及权限<br /><div>chown -R mysql:mysql /usr/local/mysql</div></div><div>chmod -R 755 /usr/local/mysql<br /><br />4、编译安装</div>进入mysql路径下的bin文件夹<br /><div>./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql<br /><br />屏幕输出<br />A temporary password generated for root@localhost:密码<br />最后是生成的mysql的root临时密码，务必记录！<br /><br />5、修改配置文件<br /><span style="color: #404040; font-family: -apple-system, BlinkMacSystemFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 16px; background-color: #ffffff;">cd /etc<br />找到文件my.cnf，将其删除或改名备份<br /></span><br />创建并打开新的<span style="background-color: #ffffff;"><font color="#404040" face="-apple-system, BlinkMacSystemFont, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif"><span style="font-size: 16px;">my.cnf</span></font><br /></span><div>把以下内容粘贴进来</div><div>[mysqld]</div><div>datadir=/usr/local/mysql/data</div><div>port=3306</div><div>sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES</div><div>symbolic-links=0</div><div>max_connections=600</div><div>innodb_file_per_table=1</div><div>lower_case_table_names=1</div><div>character_set_server=utf8</div><div><span style="font-size: 16px;"></span><br />innodb_file_per_table：是否将每个表的数据单独存储，1表示单独存储；0表示关闭独立表空间，可以通过查看数据目录，查看文件结构的区别；<br /><div>lower_case_table_names：是否区分大小写，1表示存储时表名为小写，操作时不区分大小写；0表示区分大小写；不能动态设置，修改后，必须重启才能生效：</div><div>character_set_server：设置数据库默认字符集，如果不设置默认为latin1<br /><br />6、启动mysql<br /><div>/usr/local/mysql/support-files/mysql.server start</div></div><div>看到Starting MySQL&nbsp; [ok]字样，则启动成功！<br /><br />7、设置软链接</div></div></div></div><div>ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql&nbsp;</div><div>ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql<br />重启</div><div>service mysql restart<br />看到启动成功字样，O了！<br /><br />8、修改root密码<br />还没完！<br />先使用临时密码登录root账户<br />mysql -u root -p<br /><br />修改密码<br />set password for root@localhost = password('自定义密码');<br /><br />重新使用新密码登录试试，O了！<br /><br />9、远程登录MySQL<br />mysql-&gt;user mysql;<br />mysql-&gt;update user set user.Host='%' where user.User='root';<br />mysql-&gt;flush privileges;<br /><br />在pc上使用Navicat创建MySQL连接，连接成功。<br />O了！<br /><br />10、设置MySQL开机自启动<br /><div>将服务文件mysql.server复制到init.d下，并重命名为mysqld，并设置权限</div><div>cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld<br /><div>chmod +x /etc/init.d/mysqld<br /><br />添加开机服务<br /><div>chkconfig --add mysqld<br />查看开机服务</div></div></div><div>chkconfig --list<br /><br />重启一下MySQL服务器主机，查看是否可以登录MySQL<br />可以登录，O了！</div></div><img src ="http://www.cppblog.com/jack-wang/aggbug/217574.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2021-01-17 20:51 <a href="http://www.cppblog.com/jack-wang/archive/2021/01/17/217574.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server 2008 R2配置（以此为准，以前写的SQL Server 2005配置的文档不好使了，不知何故）</title><link>http://www.cppblog.com/jack-wang/archive/2016/12/06/214464.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Mon, 05 Dec 2016 18:48:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2016/12/06/214464.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/214464.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2016/12/06/214464.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/214464.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/214464.html</trackback:ping><description><![CDATA[<div style="font-size: 14.7px; font-weight: bold; margin-bottom: 10px; color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"></div><div style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;">1、打开SQL Server2008的SQL Server Configuration Manager 。<br />除了VIA以外其他协议的状态置为已启用，然后重启服务。<br />2、打开TCP/IP协议的设置。<br />这里有很多IP地址（都是干鸡毛的？），找到这三项：<br />（1）找到本机的IP地址（例如我本机的IP192.168.1.*）<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;TCP动态端口&#8221;：无需理会<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;TCP端口&#8221;：1433<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;活动&#8221;：是<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;已启用&#8221;：是<br />（2）127.0.0.1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;TCP动态端口&#8221;：无需理会<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;TCP端口&#8221;：1433<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;活动&#8221;：是<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;已启用&#8221;：是<br />（3）IPALL<br />&nbsp; &nbsp; &nbsp; &#8220;TCP动态端口&#8221;：无需理会<br />&nbsp; &nbsp; &nbsp; &#8220;TCP端口&#8221;：1433（不设置这项C++ 程序就连接不上DB，尼玛！）<br /><br />使用C++ ADO程序连接DB，O了！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！</div><img src ="http://www.cppblog.com/jack-wang/aggbug/214464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2016-12-06 02:48 <a href="http://www.cppblog.com/jack-wang/archive/2016/12/06/214464.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>配置MongoDB</title><link>http://www.cppblog.com/jack-wang/archive/2015/08/16/211570.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Sat, 15 Aug 2015 17:08:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2015/08/16/211570.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/211570.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2015/08/16/211570.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/211570.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/211570.html</trackback:ping><description><![CDATA[官网：https://www.mongodb.org/<br /><br />1、下载发布的版本。（我用的是这个mongodb-win32-x86_64-2008plus-3.0.5.zip）<br /><div>解压（我本地解压到 D:\MongoDB）<br />2、在根目录中新建文件夹 data\db，用于保存数据文件<br />在根目录中新建文件夹log，并在其中新建文件mongodb.log文件<br />3、在根目录中新建配置文件mongo.config<br />编辑此文件：<br />dbpath=D:\mongodb\data\db<br />logpath=D:\mongodb\log\mongo.log<br />保存<br />4、在D:\MongoDB\bin中，使用控制台输入命令<br />mongod --config D:\mongodb\mongo.config&nbsp;<br />5、使用浏览器打开网页http://localhost:27017查看运行结果<br />如果出现字样<br />It looks like you are trying to access MongoDB over HTTP on the native driver port.<br />表示mongodb运行成功。<br />另外也可以打开D:\mongodb\log中最新的log文件查看log信息。<br /></div><img src ="http://www.cppblog.com/jack-wang/aggbug/211570.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2015-08-16 01:08 <a href="http://www.cppblog.com/jack-wang/archive/2015/08/16/211570.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装了SQL Server 2005之后没有SQL Server Management Studio</title><link>http://www.cppblog.com/jack-wang/archive/2014/02/13/205750.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Thu, 13 Feb 2014 10:03:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2014/02/13/205750.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/205750.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2014/02/13/205750.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/205750.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/205750.html</trackback:ping><description><![CDATA[<div>打开安装盘下的文件夹SQL Server x64\Tools\Setup（或SQL Server x86\Tools\Setup）<br />手动运行SqlRun_Tools.msi<br /><br />安装完毕。<br /><br />O了！</div> <img src ="http://www.cppblog.com/jack-wang/aggbug/205750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2014-02-13 18:03 <a href="http://www.cppblog.com/jack-wang/archive/2014/02/13/205750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用C++访问MySQL</title><link>http://www.cppblog.com/jack-wang/archive/2013/11/19/204335.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Tue, 19 Nov 2013 06:31:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2013/11/19/204335.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/204335.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2013/11/19/204335.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/204335.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/204335.html</trackback:ping><description><![CDATA[安装mysql。我的安装目录C:\Program Files\MySQL<br />我使用VS2010开发。<br /><br />&#8220;配置属性&#8221;-&gt;&#8220;VC++目录&#8221;：<br />&#8220;包含目录&#8221;<br />C:\Program Files\MySQL\MySQL Server 5.5\include<br />&#8220;库目录&#8221;<br />C:\Program Files\MySQL\MySQL Server 5.5\lib<br /><br />包含链接库libmysql.lib<br /><br />程序中包含#include &lt;mysql.h&gt;（注意：windows平台还要包含#include &lt;windows.h&gt;）<br /><br /> <img src ="http://www.cppblog.com/jack-wang/aggbug/204335.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2013-11-19 14:31 <a href="http://www.cppblog.com/jack-wang/archive/2013/11/19/204335.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server服务启动失败</title><link>http://www.cppblog.com/jack-wang/archive/2013/05/30/200690.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Thu, 30 May 2013 02:11:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2013/05/30/200690.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/200690.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2013/05/30/200690.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/200690.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/200690.html</trackback:ping><description><![CDATA[把IPALL的TCP动态端口删除 <br /><br />O了！<img src ="http://www.cppblog.com/jack-wang/aggbug/200690.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2013-05-30 10:11 <a href="http://www.cppblog.com/jack-wang/archive/2013/05/30/200690.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server 2005配置</title><link>http://www.cppblog.com/jack-wang/archive/2013/01/05/196958.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Fri, 04 Jan 2013 23:55:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2013/01/05/196958.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/196958.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2013/01/05/196958.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/196958.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/196958.html</trackback:ping><description><![CDATA[<div>1、打开SQL Server2005的SQL Server Configuration Manager 。<br />除了VIA以外其他协议的状态置为已启用，然后重启服务。<br />2、打开TCP/IP协议的设置。<br />找到相关的IP对应的设置项目：&#8220;活动&#8221;置为&#8220;是&#8221;；&#8220;已启用&#8221;置为&#8220;是&#8221;；&#8220;动态端口&#8221;无需理会。<br />IPALL对应的设置项目：无需理会（2016.12.06再次实验，此项这么做不好使！必须设置"TCP端口"，比如设置为1433，使用ADO C++程序访问DB，O了！）</div><img src ="http://www.cppblog.com/jack-wang/aggbug/196958.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2013-01-05 07:55 <a href="http://www.cppblog.com/jack-wang/archive/2013/01/05/196958.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server2005网络配置</title><link>http://www.cppblog.com/jack-wang/archive/2012/10/04/192771.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Thu, 04 Oct 2012 07:10:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2012/10/04/192771.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/192771.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2012/10/04/192771.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/192771.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/192771.html</trackback:ping><description><![CDATA[<div>SQL Server2005网络配置<br />1、打开SQL Server 2005外围应用配置器，选择&#8220;远程连接&#8221;-&gt;&#8220;同时使用TCP/IP和named pipes&#8221;<br />2、打开SQL Server Configuration Manager，确认禁用&#8220;VIA&#8221;（开启则会导致SQL Server服务启动失败！这个破玩意是干什么用的至今不得而知）<br />3、重启SQL Server服务</div><img src ="http://www.cppblog.com/jack-wang/aggbug/192771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2012-10-04 15:10 <a href="http://www.cppblog.com/jack-wang/archive/2012/10/04/192771.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ado连接SQL Server2005</title><link>http://www.cppblog.com/jack-wang/archive/2012/10/04/192766.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Thu, 04 Oct 2012 06:45:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2012/10/04/192766.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/192766.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2012/10/04/192766.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/192766.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/192766.html</trackback:ping><description><![CDATA[<br />::CoInitialize(NULL);<br /><br />HRESULT hr = m_pConn.CreateInstance("ADODB.Connection");&nbsp;&nbsp;&nbsp;//创建Connection对象<br />&nbsp;if(!SUCCEEDED(hr))<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br /><br />_bstr_t&nbsp; strConnect = "Provider=SQLNCLI;Data Source=服务器;Initial Catalog=数据库名;User Id=sa;Password=密码;";<br />（例如：_bstr_t&nbsp; strConnect = "Provider=SQLNCLI;Data Source=127.0.0.1;Initial Catalog=TestDB;User Id=sa;Password=000000;";）<br /><br />hr = m_pConn-&gt;Open(strConnect.c_str(), "", "", -1);<br />（_ConnectionPtr&nbsp; m_pConn）<br /><br /><br />O了！<img src ="http://www.cppblog.com/jack-wang/aggbug/192766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2012-10-04 14:45 <a href="http://www.cppblog.com/jack-wang/archive/2012/10/04/192766.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>“Microsoft Management Console遇到问题需要关闭”</title><link>http://www.cppblog.com/jack-wang/archive/2012/06/24/180050.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Sun, 24 Jun 2012 10:39:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2012/06/24/180050.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/180050.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2012/06/24/180050.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/180050.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/180050.html</trackback:ping><description><![CDATA[<p><span style="color: #ff0000"><span style="color: #000000">转：<a href="http://blog.csdn.net/wuguizhu/article/details/5356257">http://blog.csdn.net/wuguizhu/article/details/5356257</a><br /><br /><br />1.开始---&gt;运行---&gt;输入mmc</span></span></p>
<p><span style="color: #ff0000"><span style="color: #000000">2.打开&#8220;文件&#8221;－&#8220;添加/删除管理单元&#8221;</span></span></p>
<p><span style="color: #ff0000"><span style="color: #000000">3.选择&#8220;独立&#8221;---&gt;&#8220;添加&#8221;---&gt;选择&#8220;Microsoft SQL企业管理器&#8221;---&gt;&#8220;添加&#8221;--&gt;&#8220;关闭&#8221;--&gt;&#8220;确定&#8221;</span></span></p>
<p><span style="color: #ff0000"><span style="color: #000000">4.选择&#8220;文件&#8221;--&gt;&#8220;另存为&#8221;--&gt;&#8220;C:/Program Files/Microsoft SQL Server/80/Tools/BINN&#8221;（即Sql server安装目录）下的&#8220;SQL Server Enterprise Manager.MSC&#8221;文件--&gt;在弹出的提示对话框中选择&#8220;是&#8221;即可。</span></span></p><img src ="http://www.cppblog.com/jack-wang/aggbug/180050.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2012-06-24 18:39 <a href="http://www.cppblog.com/jack-wang/archive/2012/06/24/180050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改mysql密码</title><link>http://www.cppblog.com/jack-wang/archive/2012/03/03/167058.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Sat, 03 Mar 2012 08:38:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2012/03/03/167058.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/167058.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2012/03/03/167058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/167058.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/167058.html</trackback:ping><description><![CDATA[<div>今天突然间发现360报发现病毒：xml70526.dll，amd.dll，，，c盘发现多个可疑的文件。<br />到网上搜了一下，原来是网上利用mysql弱口令漏洞传播的木马病毒。<br /><br />解决：<br />1、进入控制台，输入net stop mysql命令停止mysql服务<br />2、使用360全盘扫描杀毒<br />3、修改mysql密码<br /><br /><font size="2">mysqladmin &#8211;u root -p password 新密码<br />然后回车，出现提示你输入现有密码的提示<br />Enter password:<br />然后输入现有密码，回车，则修改成功。<br />可以使用Navicat 等 客户端连接mysql服务器测试，可以看到使用旧的密码已经连接不上了，使用新设置的密码则可以连接成功。<br /></font><br /></div><img src ="http://www.cppblog.com/jack-wang/aggbug/167058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2012-03-03 16:38 <a href="http://www.cppblog.com/jack-wang/archive/2012/03/03/167058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL 2000安装失败</title><link>http://www.cppblog.com/jack-wang/archive/2012/02/19/165963.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Sun, 19 Feb 2012 02:52:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2012/02/19/165963.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/165963.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2012/02/19/165963.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/165963.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/165963.html</trackback:ping><description><![CDATA[<font color="#3f3d3d">报错：&#8220;以前的某个程序安装已在安装计算机上创建挂起的文件操作。。。。。。&#8221;<br /><br />解决：打开注册表编辑器，在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations项，<br />将此项删掉（不是清空此项的内容）<br /></font><img src ="http://www.cppblog.com/jack-wang/aggbug/165963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2012-02-19 10:52 <a href="http://www.cppblog.com/jack-wang/archive/2012/02/19/165963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程序员必须知道的SQLSERVER数据库优化技巧</title><link>http://www.cppblog.com/jack-wang/archive/2010/10/06/128736.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Tue, 05 Oct 2010 18:24:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2010/10/06/128736.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/128736.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2010/10/06/128736.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/128736.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/128736.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt">转：<a href="http://blog.csdn.net/jiangxinyu/archive/2008/09/03/2874201.aspx">http://blog.csdn.net/jiangxinyu/archive/2008/09/03/2874201.aspx</a><br><br>摘要：数据库优化不仅是数据库管理员的任务，程序员也必须知道一些优化技巧，有利于开发高效的数据库系统。 <br>关键字：数据库 优化 技巧 <br></p>
<p style="FONT-SIZE: 10pt">如果是团队开发，作为程序员必须知道本文描述的数据库优化技巧，如果你的sa水平比较差，那即使你再努力也些不出高效的数据库应用系统。 <br>如果是单独开发，那就更不必说了。 </p>
<p style="FONT-SIZE: 10pt">多数公司的数据库管理员(sa)是不够格的，即使拿了各种认证证件，也差不多还是垃圾管理员，无非是可以混个好职位，多拿一些工资。 <br>如果你所在的公司没有合格的sa，作为程序员的你必须执行做许多数据库优化的工作了。 <br>市面上的数据库类图书也不过是骗钱的把戏，无非为了出书而出书，为了出名而出书。 <br>95％以上的作者没有实践的经验，99％以上的作者没有优化的经验。他们编写图书的来源无非是外文（不见得好啊）或者是互联网上的资讯。 </p>
<p style="FONT-SIZE: 10pt">废话不说了，开始吧。程序员级别的优化有哪些手段？ </p>
<p style="FONT-SIZE: 10pt">（1）数据库的设置：如果你的数据库记录数不会超过30万条？如果你的数据库记录超过100万条？该如何设置数据库？一个或多个？ <br>（2）数据库表的设置：当你的某个数据库表记录超过100万级别，而且每天大量增长，这是一个不得不考虑的问题。如果你的系统浏览量很大，即使是30万条记录也是需要考虑的。 <br>（3）索引的使用：索引可以大大提高数据库访问速度。什么时候用？哪些字段使用？ <br>（4）存储过程的使用：存储过程终归是比较好的，但是如果需要维护成百上千的存储过程，未必是划算的工程。 <br>（5）高效的分页技术：数据库记录分页列表是大量必须使用的基本技术，怎样的分页是快速的？ </p>
<p style="FONT-SIZE: 10pt">宗旨你需要从上述5个方面考虑数据库的优化。 </p>
<p style="FONT-SIZE: 10pt">什么时候需要数据库优化？ <br>（1）编写代码之前； <br>（2）系统速度慢了的时候； </p>
<p style="FONT-SIZE: 10pt">下面就是一些具体的优化技巧了。 </p>
<p style="FONT-SIZE: 10pt">（1）超大量记录数据库的优化技巧 </p>
<p style="FONT-SIZE: 10pt">如果你的数据库表记录有超过100万级别，而且不断增长中。可以采取两个手段： <br>第一：将数据库表拆分到不同的库中，比如 tblMEMBER 就可以拆分到 DB1 与 DB2 中去。 <br>实际上，可以拆分到 DB001 ... DB100 甚至更多的库中间去。 <br>DB1 与 DB2 最好不在一块硬盘上。 <br>第二：如果更大量级的数据，则最好拆分到不同的数据库服务器中去。 </p>
<p style="FONT-SIZE: 10pt">数据库的拆分带来的是查询等操作的复杂性。简单地可以通过 hash 或者 按序号 匹配不同的数据库。复杂一些，应该设置一个独立的应用服务器（软件）协调其中的操作。 </p>
<p style="FONT-SIZE: 10pt">（2）中等量级数据库的优化技巧 </p>
<p style="FONT-SIZE: 10pt">所谓中等量级数据库是指数据库100万－500万条记录左右（单个数据库表）。这样的数据库为了提高访问（响应）速度，可以将表拆分到更小的表。比如 tblMEMBER 可以拆分为 tblMEMBER_00 ... tblMEMBER_99 。 <br>这样可以保证每个表的记录数不超过50万，那速度是"相当"快了。 </p>
<p style="FONT-SIZE: 10pt">（3）避免使用视图(viewport)与关联 </p>
<p style="FONT-SIZE: 10pt">视图viewport与关联都是为了程序员处理相对复杂的数据管理提供方便的手段。万物有其利，必有其弊。视图和关联提高了编程效率，都会较大地影响数据库的访问效率（事实上并不像一般资料说介绍的的那样高效），因此如果是web应用，则建议一般不要使用视图与关联。 </p>
<p style="FONT-SIZE: 10pt">（4）不要忘记索引(index)也不要滥用索引(index) </p>
<p style="FONT-SIZE: 10pt">索引是提高数据库效率的简单又高效的方法。只要是设置了数据库表(table)，就不要忘记设置索引(index)。将索引设置在经常用于排序的字段上，其他字段就不要设置了。 <br>索引不是越多越好，也不是什么字段都适合建立索引的。数据重复性太多的字段不要设置索引。比如 tblMEMBER 的 iSex 字段只有 0 1 两个值，就不要设置索引。 </p>
<p style="FONT-SIZE: 10pt">（5）二进制的 text image 等字段应该单独设置别的表中 </p>
<p style="FONT-SIZE: 10pt">一般的数据库应用难免都需要保存比如描述、图片等信息；一般描述类信息用 text 字段，图片类信息用 image 字段；这里要说的是，不要将这些字段与其他字段放在一个表中。 <br>比如： </p>
<p style="FONT-SIZE: 10pt">view plaincopy to clipboardprint?<br>tblMEMBER&nbsp;&nbsp;&nbsp; <br>id (int)&nbsp;&nbsp;&nbsp; <br>cName (varchar)(64)&nbsp;&nbsp;&nbsp; <br>cDescription (text)&nbsp;&nbsp;&nbsp; <br>bPhoto (image)&nbsp;&nbsp;&nbsp; <br>dDate (datetime)&nbsp;&nbsp;&nbsp; <br>就应该拆分为3个表&nbsp;&nbsp;&nbsp; <br>tblMEMBER&nbsp;&nbsp;&nbsp; <br>id (int)&nbsp;&nbsp;&nbsp; <br>cName (varchar)(64)&nbsp;&nbsp;&nbsp; <br>dDate (datetime)&nbsp;&nbsp;&nbsp; <br>tblMEMBER_DESC&nbsp;&nbsp;&nbsp; <br>id (int)&nbsp;&nbsp;&nbsp; <br>cDescription (text)&nbsp;&nbsp;&nbsp; <br>dDate (datetime)&nbsp;&nbsp;&nbsp; <br>tblMEMBER_PHOTO&nbsp;&nbsp;&nbsp; <br>id (int)&nbsp;&nbsp;&nbsp; <br>bPhoto (image)&nbsp;&nbsp;&nbsp; <br>dDate (datetime)&nbsp; <br>&nbsp; tblMEMBER<br>&nbsp; id (int)<br>&nbsp; cName (varchar)(64)<br>&nbsp; cDescription (text)<br>&nbsp; bPhoto (image)<br>&nbsp; dDate (datetime)<br>&nbsp; 就应该拆分为3个表<br>&nbsp; tblMEMBER<br>&nbsp; id (int)<br>&nbsp; cName (varchar)(64)<br>&nbsp; dDate (datetime)<br>&nbsp; tblMEMBER_DESC<br>&nbsp; id (int)<br>&nbsp; cDescription (text)<br>&nbsp; dDate (datetime)<br>&nbsp; tblMEMBER_PHOTO<br>&nbsp; id (int)<br>&nbsp; bPhoto (image)<br>&nbsp; dDate (datetime)<br>&nbsp;（6）不要使用文本类型的 id </p>
<p style="FONT-SIZE: 10pt">一般的数据库表都会以一个种子字段作为主键。可以在与不少年青的程序员朋友沟通过程中，发现他们很喜欢用字符串类型的作为系统的 id 号。 <br>比如：id = XX XX XX XX 这样的字符串，每两个位置代表不同的类别等含义。 <br>不知道是那本教材如此误人子弟，作出这样的表率 :&lt; <br>作为系统的 id 号，一定要使用数字型的。 </p>
<p style="FONT-SIZE: 10pt">（7）数据库表table的字段field不要太多 </p>
<p style="FONT-SIZE: 10pt">本以为无需说明，也是发现不少的朋友，为了省事，一股脑把所有的相关字段都放在一个表中间。这样做的后果便是，程序写起来简单了，运行效率下来了。 <br>无论字段多少，有两类字段是必须独立出去的：一是进程更新的字段，比如文章的点击次数字段iShow，二是二进制或者是text字段； </p>
<p style="FONT-SIZE: 10pt">（8）将字符串(varchar)比较变成数字型(int)比较 </p>
<p style="FONT-SIZE: 10pt">每个系统都会有用户管理，其中必然有 昵称，密码，邮件等的字符串类型数据比较的问题。在数据库操作中，字符串比较的效率是相当低下的。因此遇到字符串的比较，必须将其转换为数字型比较。 <br>具体做法是：在数据库表中增加相应的数字字段，比如 cNickname -&gt; iNickNumber ，其中 iNickNumber 的数值为 cNickname 的 哈希值（如何计算字符串的哈希值？请参阅本站的其他文章）。 <br>通过这样的转换，系统效率可以提高 100 倍哦！！！ </p>
<p style="FONT-SIZE: 10pt">（9）为每个数据库表(table)设置 datetime 字段 </p>
<p style="FONT-SIZE: 10pt">在许多情况下，很多的表是不需要 datetime 字段用于保存时间的。本文的建议是你应该为每个表都设置 datetime 字段，而且默认值为 getdate()。 <br>我们的经验是，datetime 是实数，占用字节不多；在进行系统维护，远程备份等环节都会发挥意想不到的效果。 </p>
<p style="FONT-SIZE: 10pt">（10）适当使用存储过程(Stored Processing) </p>
<p style="FONT-SIZE: 10pt">存储过程(sp)已经被大大地宣传了，本文也不例外地赞许采用存储过程。本文的建议是只在下列情况才使用存储过程：一是一个业务处理是事务，包含了多个处理过程；二是一种处理被高频使用，使用存储过程可以提高效率； </p>
<p style="FONT-SIZE: 10pt">（11）使用高效的分页(ination)技术 </p>
<p style="FONT-SIZE: 10pt">数据库记录分页列表是大量必须使用的基本技术，因此本文建议你在每个数据库中建立下面的存储过程： </p>
<p style="FONT-SIZE: 10pt">view plaincopy to clipboardprint?<br>CREATE PROCEDURE xsp_ination&nbsp;&nbsp;&nbsp; <br>(&nbsp;&nbsp;&nbsp; <br>@tblName&nbsp;&nbsp; varchar(64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>@strGetFields varchar(256) = "*",&nbsp;&nbsp;&nbsp;&nbsp; <br>@fldName varchar(64)="",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>@PageSize&nbsp;&nbsp; int = 20,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>@PageIndex&nbsp; int = 1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>@OrderType bit = 1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>@strWhere&nbsp; varchar(256) = ""&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>)&nbsp;&nbsp;&nbsp; <br>AS&nbsp;&nbsp;&nbsp;&nbsp; <br>BEGIN&nbsp;&nbsp; <br>declare @strSQL&nbsp;&nbsp; varchar(1000)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>declare @strTmp&nbsp;&nbsp; varchar(110)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>declare @strOrder varchar(400)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>SET NOCOUNT ON&nbsp;&nbsp; <br>if @OrderType != 0&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; begin&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @strTmp = "&lt;(select min"&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @strOrder = " order by [" + @fldName +"] desc"&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; end&nbsp;&nbsp; <br>else&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @strTmp = "&gt;(select max"&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @strOrder = " order by [" + @fldName +"] asc"&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; end&nbsp;&nbsp;&nbsp;&nbsp; <br>if @PageIndex = 1&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; begin&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if @strWhere != ""&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @strSQL = "select top " + str(@PageSize) +" "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#43;&#64;&#115;&#116;&#114;&#71;&#101;&#116;&#70;&#105;&#101;&#108;&#100;&#115;">+@strGetFields</a>+ "&nbsp; from " + @tblName + " where " + @strWhere + " " + @strOrder&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @strSQL = "select top " + str(@PageSize) +" "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#43;&#64;&#115;&#116;&#114;&#71;&#101;&#116;&#70;&#105;&#101;&#108;&#100;&#115;">+@strGetFields</a>+ "&nbsp; from "+ @tblName + " "+ @strOrder&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; end&nbsp;&nbsp; <br>else&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; begin&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @strSQL = "select top " + str(@PageSize) +" "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#43;&#64;&#115;&#116;&#114;&#71;&#101;&#116;&#70;&#105;&#101;&#108;&#100;&#115;">+@strGetFields</a>+ "&nbsp; from "&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + @tblName + " where [" + @fldName + "]" + @strTmp + "(["+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["+ @fldName + "] from " + @tblName + " " + @strOrder + ") as tblTmp)"+ @strOrder&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if @strWhere != ""&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @strSQL = "select top " + str(@PageSize) +" "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#43;&#64;&#115;&#116;&#114;&#71;&#101;&#116;&#70;&#105;&#101;&#108;&#100;&#115;">+@strGetFields</a>+ "&nbsp; from "&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + @tblName + " where [" + @fldName + "]" + @strTmp + "(["&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + @fldName + "] from " + @tblName + " where " + @strWhere + " "&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; end&nbsp;&nbsp; <br>EXEC (@strSQL)&nbsp;&nbsp;&nbsp; <br>if @@error=0 return 1&nbsp;&nbsp;&nbsp; <br>SET NOCOUNT OFF&nbsp;&nbsp; <br>END&nbsp;&nbsp; <br>GO&nbsp; <br>CREATE PROCEDURE xsp_ination<br>(<br>@tblName&nbsp;&nbsp; varchar(64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>@strGetFields varchar(256) = "*", <br>@fldName varchar(64)="",&nbsp;&nbsp;&nbsp;&nbsp;<br>@PageSize&nbsp;&nbsp; int = 20,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>@PageIndex&nbsp; int = 1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>@OrderType bit = 1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>@strWhere&nbsp; varchar(256) = ""&nbsp;<br>)<br>AS <br>BEGIN<br>declare @strSQL&nbsp;&nbsp; varchar(1000)&nbsp;&nbsp; <br>declare @strTmp&nbsp;&nbsp; varchar(110)&nbsp;&nbsp;&nbsp;&nbsp; <br>declare @strOrder varchar(400)&nbsp;&nbsp; <br>SET NOCOUNT ON<br>if @OrderType != 0<br>&nbsp;begin<br>&nbsp;&nbsp;set @strTmp = "&lt;(select min" <br>&nbsp;&nbsp;set @strOrder = " order by [" + @fldName +"] desc" <br>&nbsp;end<br>else <br>&nbsp;begin <br>&nbsp;&nbsp;set @strTmp = "&gt;(select max" <br>&nbsp;&nbsp;set @strOrder = " order by [" + @fldName +"] asc" <br>&nbsp;end <br>if @PageIndex = 1<br>&nbsp;begin<br>&nbsp;&nbsp;if @strWhere != ""&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;set @strSQL = "select top " + str(@PageSize) +" "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#43;&#64;&#115;&#116;&#114;&#71;&#101;&#116;&#70;&#105;&#101;&#108;&#100;&#115;">+@strGetFields</a>+ "&nbsp; from " + @tblName + " where " + @strWhere + " " + @strOrder<br>&nbsp;&nbsp;else <br>&nbsp;&nbsp;&nbsp;set @strSQL = "select top " + str(@PageSize) +" "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#43;&#64;&#115;&#116;&#114;&#71;&#101;&#116;&#70;&#105;&#101;&#108;&#100;&#115;">+@strGetFields</a>+ "&nbsp; from "+ @tblName + " "+ @strOrder<br>&nbsp;end<br>else <br>&nbsp;begin<br>&nbsp;&nbsp;set @strSQL = "select top " + str(@PageSize) +" "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#43;&#64;&#115;&#116;&#114;&#71;&#101;&#116;&#70;&#105;&#101;&#108;&#100;&#115;">+@strGetFields</a>+ "&nbsp; from "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ @tblName + " where [" + @fldName + "]" + @strTmp + "(["+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["+ @fldName + "] from " + @tblName + " " + @strOrder + ") as tblTmp)"+ @strOrder<br>&nbsp;&nbsp;if @strWhere != "" <br>&nbsp;&nbsp;&nbsp;set @strSQL = "select top " + str(@PageSize) +" "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#43;&#64;&#115;&#116;&#114;&#71;&#101;&#116;&#70;&#105;&#101;&#108;&#100;&#115;">+@strGetFields</a>+ "&nbsp; from "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ @tblName + " where [" + @fldName + "]" + @strTmp + "(["<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " [" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ @fldName + "] from " + @tblName + " where " + @strWhere + " "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder <br>&nbsp;end<br>EXEC (@strSQL)<br>if @@error=0 return 1<br>SET NOCOUNT OFF<br>END<br>GO<br>&nbsp;<br>使用方法是(C#)： </p>
<p style="FONT-SIZE: 10pt">view plaincopy to clipboardprint?<br>sql = "EXEC [dbo].[xsp_ination] \"tblNEWS\",\"*\",\"id\",40," + pindex.ToString() + ",1,\"iType=" + type.ToString();&nbsp;&nbsp;&nbsp; <br>SqlDataReader sr = ExecuteReader(sql);&nbsp;&nbsp;&nbsp; <br>while (sr.Read())&nbsp;&nbsp;&nbsp; <br>{&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; ...&nbsp;&nbsp;&nbsp; <br>}&nbsp;&nbsp;&nbsp; <br>sr.Close();&nbsp; <br>sql = "EXEC [dbo].[xsp_ination] \"tblNEWS\",\"*\",\"id\",40," + pindex.ToString() + ",1,\"iType=" + type.ToString();<br>SqlDataReader sr = ExecuteReader(sql);<br>while (sr.Read())<br>{<br>&nbsp;&nbsp; ...<br>}<br>sr.Close();<br>&nbsp;<br>上面的优化技巧仅是一些常见的手段，如果你的系统（小系统就算了）遇到效率问题，可以与联高软件联系。 </p>
<p style="FONT-SIZE: 10pt">转载本文请注明出处，以便遇到优化困难的朋友可以找到联高提供帮助。</p>
<p style="FONT-SIZE: 10pt">本文来自CSDN博客，转载请标明出处：<a href="http://blog.csdn.net/jiangxinyu/archive/2008/09/03/2874201.aspx">http://blog.csdn.net/jiangxinyu/archive/2008/09/03/2874201.aspx</a></p>
<img src ="http://www.cppblog.com/jack-wang/aggbug/128736.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2010-10-06 02:24 <a href="http://www.cppblog.com/jack-wang/archive/2010/10/06/128736.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>执行带有"select ......"的存储过程后adoEOF报错</title><link>http://www.cppblog.com/jack-wang/archive/2010/07/05/119327.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Sun, 04 Jul 2010 16:59:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2010/07/05/119327.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/119327.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2010/07/05/119327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/119327.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/119327.html</trackback:ping><description><![CDATA[首先，<br>if (m_pRecordset-&gt;GetState() == /*ADOCG::adStateClosed*/adStateClosed)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br>&nbsp;&nbsp;}<br><br><br>然后再获取记录集中的数据<br>while(!m_pRecordset-&gt;adoEOF)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;... ...<br>}<br><br><br>O了！
<img src ="http://www.cppblog.com/jack-wang/aggbug/119327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2010-07-05 00:59 <a href="http://www.cppblog.com/jack-wang/archive/2010/07/05/119327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server数据类型介绍</title><link>http://www.cppblog.com/jack-wang/archive/2010/06/12/117751.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Sat, 12 Jun 2010 14:57:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2010/06/12/117751.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/117751.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2010/06/12/117751.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/117751.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/117751.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt">在计算机中数据有两种特征：类型和长度。所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类。<br>&nbsp;&nbsp;&nbsp;&nbsp; 在SQL Server 中每个变量、参数、表达式等都有数据类型。系统提供的数据类型分为几大类，如表4-2 所示。<br><br>&nbsp;&nbsp;&nbsp;&nbsp; 其中，BIGINT、 SQL_VARIANT 和TABLE 是SQL Server 2000 中新增加的3 种数据类型。下面分类讲述各种数据类型。<br><br>一、 整数数据类型<br>&nbsp;&nbsp;&nbsp;&nbsp; 整数数据类型是最常用的数据类型之一。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、INT （INTEGER）<br>INT （或INTEGER）数据类型存储从-2的31次方 （-2 ，147 ，483 ，648） 到2的31次方-1 （2 ，147 ，483，647） 之间的所有正负整数。每个INT 类型的数据按4 个字节存储，其中1 位表示整数值的正负号，其它31 位表示整数值的长度和大小。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、SMALLINT<br>SMALLINT 数据类型存储从-2的15次方（ -32， 768） 到2的15次方-1（ 32 ，767 ）之间的所有正负整数。每个SMALLINT 类型的数据占用2 个字节的存储空间，其中1 位表示整数值的正负号，其它15 位表示整数值的长度和大小。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、TINYINT<br>TINYINT数据类型存储从0 到255 之间的所有正整数。每个TINYINT类型的数据占用1 个字节的存储空间。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、BIGINT<br>BIGINT 数据类型存储从-2^63 （-9 ，223， 372， 036， 854， 775， 807） 到2^63-1（ 9， 223， 372， 036 ，854 ，775， 807） 之间的所有正负整数。每个BIGINT 类型的数据占用8个字节的存储空间。<br><br>二、 浮点数据类型<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入（Round up 或称为只入不舍）方式进行存储。所谓上舍入是指，当（且仅当）要舍入的数是一个非零数时，对其保留数字部分的最低有效位上的数值加1 ，并进行必要的进位。若一个数是上舍入数，其绝对值不会减少。如：对3.14159265358979 分别进行2 位和12位舍入，结果为3.15 和3.141592653590。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、REAL 数据类型<br>REAL数据类型可精确到第7 位小数，其范围为从-3.40E -38 到3.40E +38。 每个REAL类型的数据占用4 个字节的存储空间。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、FLOAT<br>FLOAT 数据类型可精确到第15 位小数，其范围为从-1.79E -308 到1.79E +308。 每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。当n 取1 到7 时，实际上是定义了一个REAL 类型的数据，系统用4 个字节存储它；当n 取8 到15 时，系统认为其是FLOAT 类型，用8 个字节存储它。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、DECIMAL<br>DECIMAL数据类型可以提供小数所需要的实际存储空间，但也有一定的限制，您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。可将其写为DECIMAL[ p [s] ]的形式，p 和s 确定了精确的比例和数位。其中p 表示可供存储的值的总位数（不包括小数点），缺省值为18； s 表示小数点后的位数，缺省值为0。 例如：decimal （15 5），表示共有15 位数，其中整数10 位，小数5。 位表4-3 列出了各精确度所需的字节数之间的关系。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、NUMERIC<br>NUMERIC数据类型与DECIMAL数据类型完全相同。<br>注意：SQL Server 为了和前端的开发工具配合，其所支持的数据精度默认最大为28位。但可以通过使用命令来执行sqlserver.exe程序以启动SQL Server，可改变默认精度。命令语法如下：SQLSERVR[/D master_device_path][/P precisim_leve1]<br>&nbsp;&nbsp;&nbsp;&nbsp; 例4-4: 用最大数据精度38 启动SQL Server<br>sqlservr /d c:\ Mssql2000\data\master.dat /p38<br>/*在使用了/P 参数后,如果其后没有指定具体的精度数值,则默认为38 位./*<br><br>三、二进制数据类型<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、BINARY<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BINARY 数据类型用于存储二进制数据。其定义形式为BINARY（ n）， n 表示数据的长度，取值为1 到8000 。在使用时必须指定BINARY 类型数据的大小，至少应为1 个字节。BINARY 类型数据占用n+4 个字节的存储空间。在输入数据时必须在数据前加上字符&#8220;0X&#8221; 作为二进制标识，如：要输入&#8220;abc &#8221;则应输入&#8220;0xabc &#8221;。若输入的数据过长将会截掉其超出部分。若输入的数据位数为奇数，则会在起始符号&#8220;0X &#8221;后添加一个0，如上述的&#8220;0xabc &#8221;会被系统自动变为&#8220;0x0abc&#8221;。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、VARBINARY<br>VARBINARY 数据类型的定义形式为VARBINARY（n）。 它与BINARY 类型相似，n 的取值也为1 到8000，若输入的数据过长，将会截掉其超出部分。不同的是VARBINARY数据类型具有变动长度的特性，因为VARBINARY数据类型的存储长度为实际数值长度+4个字节。当BINARY数据类型允许NULL 值时，将被视为VARBINARY数据类型。<br>一般情况下，由于BINARY 数据类型长度固定，因此它比VARBINARY 类型的处理速度快。<br><br>四、 逻辑数据类型<br>&nbsp;&nbsp;&nbsp;&nbsp; BIT： BIT数据类型占用1 个字节的存储空间，其值为0 或1 。如果输入0 或1 以外的值，将被视为1。 BIT 类型不能定义为NULL 值（所谓NULL 值是指空值或无意义的值）。<br><br>五、字符数据类型<br>&nbsp;&nbsp;&nbsp;&nbsp; 字符数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。一般情况下，使用字符类型数据时须在其前后加上单引号&#8217;或双引号&#8221; 。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 CHAR<br>CHAR 数据类型的定义形式为CHAR[ （n） 。 以CHAR 类型存储的每个字符和符号占一个字节的存储空间。n 表示所有字符所占的存储空间，n 的取值为1 到8000， 即可容纳8000 个ANSI 字符。若不指定n 值，则系统默认值为1。若输入数据的字符数小于n，则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长，将会截掉其超出部分。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、NCHAR<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NCHAR 数据类型的定义形式为NCHAR[ （n）]。 它与CHAR 类型相似。不同的是NCHAR数据类型n 的取值为1 到4000。 因为NCHAR 类型采用UNICODE 标准字符集（CharacterSet）。 UNICODE 标准规定每个字符占用两个字节的存储空间，所以它比非UNICODE 标准的数据类型多占用一倍的存储空间。使用UNICODE 标准的好处是因其使用两个字节做存储单位，其一个存储单位的容纳量就大大增加了，可以将全世界的语言文字都囊括在内，在一个数据列中就可以同时出现中文、英文、法文、德文等，而不会出现编码冲突。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、VARCHAR<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR数据类型的定义形式为VARCHARn）。 它与CHAR 类型相似，n 的取值也为1 到8000，若输入的数据过长，将会截掉其超出部分。不同的是，VARCHAR数据类型具有变动长度的特性，因为VARCHAR数据类型的存储长度为实际数值长度，若输入数据的字符数小于n ，则系统不会在其后添加空格来填满设定好的空间。<br>一般情况下，由于CHAR 数据类型长度固定，因此它比VARCHAR 类型的处理速度快。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、NVARCHAR<br>NVARCHAR数据类型的定义形式为NVARCHAR[ （n） ]。 它与VARCHAR 类型相似。不同的是，NVARCHAR数据类型采用UNICODE 标准字符集（Character Set）， n 的取值为1 到4000。<br><br>六、文本和图形数据类型<br>&nbsp;&nbsp;&nbsp;&nbsp; 这类数据类型用于存储大量的字符或二进制数据。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、TEXT<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TEXT数据类型用于存储大量文本数据，其容量理论上为1 到2的31次方-1 （2， 147， 483， 647）个字节，在实际应用时需要视硬盘的存储空间而定。<br>SQL Server 2000 以前的版本中，数据库中一个TEXT 对象存储的实际上是一个指针，它指向一个个以8KB （8192 个字节）为单位的数据页（Data Page）。 这些数据页是动态增加并被逻辑链接起来的。在SQL Server 2000 中，则将TEXT 和IMAGE 类型的数据直接存放到表的数据行中，而不是存放到不同的数据页中。 这就减少了用于存储TEXT 和IMA- GE 类型的空间，并相应减少了磁盘处理这类数据的I/O 数量。<br>&nbsp;&nbsp;&nbsp;&nbsp; 2 NTEXT<br>&nbsp;&nbsp;&nbsp;&nbsp; NTEXT数据类型与TEXT.类型相似不同的,是NTEXT 类型采用UNICODE 标准字符集(Character Set), 因此其理论容量为230-1(1, 073, 741, 823)个字节。<br>&nbsp;&nbsp;&nbsp;&nbsp; 3 IMAGE<br>&nbsp;&nbsp;&nbsp;&nbsp; IMAGE 数据类型用于存储大量的二进制数据Binary Data。其理论容量为2的31次方-1(2,147,483,647)个字节。其存储数据的模式与TEXT 数据类型相同。通常用来存储图形等OLE Object Linking and Embedding，对象连接和嵌入）对象。在输入数据时同BINARY数据类型一样，必须在数据前加上字符&#8220;0X&#8221;作为二进制标识<br><br>七、 日期和时间数据类型<br>&nbsp;&nbsp;&nbsp;&nbsp; 1 DATETIME<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATETIME 数据类型用于存储日期和时间的结合体。它可以存储从公元1753 年1 月1 日零时起到公元9999 年12 月31 日23 时59 分59 秒之间</p>
<img src ="http://www.cppblog.com/jack-wang/aggbug/117751.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2010-06-12 22:57 <a href="http://www.cppblog.com/jack-wang/archive/2010/06/12/117751.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>