带有智能完成功能的万能查询分析器的开发心得

        使用Microsoft Vistual Stdio最让人赞不绝口的是它的智能完成,而我们在写SQL语句的时候却还是最原始的方法一个一个字母的输入,我们必须记住每一张表名、字段名、表之间的关联字段信息等等,如何有效的提高开发速度,答案就是实现类似MS的智能完成功能。
        SpDevelop已经实现了数据库设计和基本的查询分析器,在这个基础上开发继续开发,现在已经实现了一下几个功能:

一、智能完成功能
         * 表/视图名称完成
         * 列名称完成
         * JOIN/JOIN ON 完成
         * 自动把关键字转换成大写
         * 关键字自动弹出

二、支持多种数据库
        查询分析器可以支持对MsSQL,Oracle,Sybase,MySQL,ProstgreSQL等多种数据库的操作。

三、多种导入导出功能
        可以将查询出来的结果导出成XML,Text,Excel等格式的数据文件

开发心得:
1、我们采用SharpDevelop中的开源编辑器ICSharpCode.TextEditor为编辑器,并指定为TSQL格式,这个开源的编辑器虽然比不上一些商用的,但基本够用而且速度比较快(打开一兆的SQL语句速度基本不影响), 应用代码如下:

1             TextEditorControl txtEditor  =   new  TextEditorControl();
2             txtEditor.SetHighlighting( " TSQL " );   // 实现SQL着色
3             txtEditor.ShowEOLMarkers  =   false ;
4             txtEditor.ShowSpaces  =   false ;
5             txtEditor.ShowTabs  =   false ;
6             txtEditor.ShowInvalidLines  =   false ;
7             txtEditor.Dock  =  DockStyle.Fill;
8             txtEditor.VRulerRow  =   200 ;
2、SQL语句的分析,由于SQL语法比较有限,自己编写一个语法分析器。这个语法分析器的难点在于性能的优化上。
3、SpDevelop框架和其中数据库建模插件中已经提供了一些编程接口,获取数据库建模中数据库信息或者连接上各种数据库获取数据库信息。为了实现能够从各种数据库中灵活的获取信息,注意使用继承机制和单一模式来编程
4、导出数据,我们这里就没有再做重复的工作,采用了Rama Krishna一个比较好的导出类


SOS:
1、如何在SQL Server Management Studio Express 2005上开发插件。

如果有开发这方面兴趣的哥们,一块到本园的SpDevelop开发团队来混吧(感谢dudu),欢迎大家的加入!

       现在本插件基本已经可以满足一些日常的操作,可到  www.spdevelop.com下载。
     
    

你可能感兴趣的:(查询)