本帖最后由 guochunyang 于 2009-11-21 13:50:42 编辑

解决方案 »

  1.   

    只能是根据Sql语句以及关键字进行分析解析,增加适当的缩进
      

  2.   

    这个是个麻烦的事情,理论上标准解决方法是 先去国际标准化组织获取,sql的BNF文档格式说明,然后根据这个bnf文档解析。
    http://savage.net.au/SQL/sql-2003-2.bnf.html(sql 2003版bnf文件说明)不过应该有相对简单的方法,如果我没记错的话 SQL Assistant这个工具提供了相关的格式库,而且你可以基于他做二次开发。我想可以试一下具体的东西可以 google:SQL Assistant API
      

  3.   

    突然想起另外一个东西了 ,前两天在infoQ上看了一篇东西,好像是一种基于BNF规则推导,一个可自定义语言的库,我想可以一用。好像是irony
    去官方(http://irony.codeplex.com/)看了一下的确可以解决你的问题,官方本身就提供了一个sql语法探测的例子
      

  4.   

    谢谢wanghui0380
    1.SQL Assistant这个工具前几天安装了,刚才试了一下,自动提示功能还是不错的,2.BNF规则有时间研究一下。