万能数据库查询分析器使用技巧之(九)
马根峰
(广东联合电子服务股份有限公司,广州 510300)
作者博客:
CSDN博客:http://blog.csdn.net/magenfeng
新浪博客: http://blog.sina.com.cn/magenfeng
QQ空间: http://user.qzone.qq.com/630414817
1 “万能数据库查询分析器”简介
中国本土程序员马根峰推出的个人作品----万能数据库查询分析器,中文版本《DB查询分析器》、英文版本《DB Query Analyzer》。
万能数据库查询分析器集哈希技术、链表等多种数据结构于一体,使用先进系统开发技术,经历4年的研究、开发、测试周期后在2006年面世。之后7年来一直在进行不断地完善、升级,到目前为止,最新版本为3.02。万能数据库查询分析器具有长达7万多行代码的工作量,使得其具有强大的功能、友好的操作界面、良好的操作性、跨越各种数据库平台乃至于EXCEL。
在《程序员》2007第2期的“新产品&工具点评”部分,编辑“特别推荐”了“万能数据库查询分析器”发布。本期只点评了5个工具,分别是“Adobe Acrobat 8 中文版”、“迅雷搜索 1.7新版上线”、“Google桌面搜索 5.0中文发布”、“BEA发布 WebLogic SIP Server 3.0”和特别推荐“万能数据库查询分析器”发布。前面4个都是国内外大型软件公司的产品,只有“万能数据库查询分析器”是个人创作的软件。截止到目前,在国内最著名的软件下载网站“中关村在线”中下载量达9万多次,位居整个数据库类排行谤中前20位。
截止到2011年11月9日,在Google搜索关键字“DB查询分析器”、“DB Query Analyzer”,搜索结果分别在80万、150万左右;在Baidu搜索关键字“DB查询分析器”、“DB Query Analyzer”,搜索结果均在40万左右。
2 引言
下面前台以英文版本《DB Query Analyzer》、后台以MS ACESS为数据库、操作系统为WIN7为例,简单介绍一下最新的3.02版本中新增的功能---“文本限定符”。允许用户自已来设定“字符”型字段的“文本限定符”,可以指定双引号、单引号将“字符”型字段的值标识,也可以什么都不用。这一功能,还可以实现当文本字段中出现0AH(即ASCII码是10的字符)时,导出的文件用EXCEL打开时不会出现记录条数跟查询出来的不符的情况。
要注意的是,“文本限定符”的设置、“导出文件时带表头”这两个设置一旦更改,则会马上生效,包括已经打开的窗口。这一点有别于“SQL脚本间的分隔符”设置,一旦更改“SQL脚本间的分隔符”的设置,只会在新打开的窗口中生效。更改“SQL脚本间的分隔符”设置前已经打开的窗口中,还会用以前的设置。
笔者在2005年在做广深高速回传流水这个既包含海量数据、又涵盖了广东联合电子服务股份有限公司基本上整个现金业务流程操作的项目时,就发现用DB2的Export功能的Of del 参数导出数据时,这些数据即使用DB2的Import功能也导入不到另外一台小型机完全相同表结构的数据库中。最终笔者自己编写了一个程序来发现问题,最终发现了原因:Unix的文件是以0AH为行结束符的,这一点有别于Windows操作系统(0DH + 0AH 是Windows文件的行结束符)。这样,如果用Excel打开字段中含有0AH的导出文件时,如果不对文本字段进行处理,EXCEL文件的行数就会跟SQL执行的记录数不符。
前台系统: DB Query Analyzer 3.02 + WIN 7
后台系统: MS ACCESS
3 建立MS ACCESS数据库的ODBC数据源
运行《DB查询分析器》,点击菜单项“工具--->ODBC数据源管理器”,来创建基于MS ACCESS的数据源“four_stations”,如下图所示。
图1 创建示例中的基于MS ACCESS的ODBC数据源“four_stations”
接下来连接数据源,点击菜单项“文件--->连接”,在“连接数据库”窗口中,选择ODBC数据源“four_stations”,不用输入用户名和口令,即可连接数据库。
4 使用单引号作为文本限制符来导出文件
在“万能数据库查询分析器”中文版本《DB查询分析器》、英文版本《DB Query Analyzer》中,默认的“文本限制符”是None,即对于文本字段,显示的时候,什么都不加。我们设置单引号作为“文本限制符”。
其实在本例中,用单引号或者None作为“文本限制符”时,导出的文件用EXCEL打开时,均会出现多出一行的情况,在此只以单引号来演示,有兴趣的朋友可以用None来作为“文本限制符”来操作一下。
如图2所示,执行查询(方法是 按F5或者点击菜单项“查询--->运行”),结果如下。
图2 单引号作为“文本限制符”的执行结果,以表格显示结果,返回11条记录
执行上面的语句,并以文本显示结果,返回11条记录。
图3 单引号作为“文本限制符”的执行结果,以文本显示结果,返回11条记录
将查询到的结果导出到文件,并用EXCEL打开,如下图所示。发现行数多了一行,第6行和第七行实际是一条记录。
图4 导出的文件用EXCEL打开
导出的文件再用UltraEdit打开,就会发现用红色框中多了一个0AH。
图5 导出的文件用UltraEdit打开,就会发现用红色框中多了一个0AH
5 使用双引号作为文本限制符来导出文件
现在,我们设置双引号作为“文本限制符”。点击菜单项“工具--->选项”,打开“选项”窗口,如图6
图6 设置双引号作为“文本限制符”
设置双引号作为文本限制符,执行查询结果图7所示。
图7 双引号作为“文本限制符”的执行结果,以Grid方法来显示
双引号作为文本限制符后,导出执行结果到文件中,再用EXCEL打开该文件,如图8所示。
图8 双引号作为文本限制符后,导出执行结果到文件中,再用EXCEL打开该文件
DB 查询分析器 5.03 下载地址:
http://xiazai.zol.com.cn/detail/27/264455.shtml
DB Query Analyzer 5.03下载地址:
http://xiazai.zol.com.cn/detail/43/420901.shtml
备注:
如果您的计算机上安装有“万能数据库查询分析器”以前的版本,请先将旧版本卸载 ,然后再安装新版本,谢谢!