vb中怎么检测sql的语法错误

解决方案 »

  1.   

    不明白楼主是什么意思,你如果想获取错误的话,直接用Err就可以了,如果是语法错误,err.Description会告诉你是什么错误的
      

  2.   

    把sql语句放到sql server下的sql分析器里面就好了
      

  3.   

    我的意思是
    在vb中只检查sql语句的正确性,而不执行sql语句!
      

  4.   

    你检查这个有什么意义吗?你难道是想让用户自己输入sql语句?
      

  5.   

    先到查詢分析器中執行一下,OK了再Copy到VB中去就行了嘛!
      

  6.   

    我的意思是
    在vb中只检查sql语句的正确性,而不执行sql语句!
    ---------------------------------------------何谓正确性,可以分成两个问题:
    1、检查sql语句的语法正确性
    2、检查sql语句的业务规则正确性如果你单纯地考虑语法,则抱着SQL参考看吧,把Select,Update,Insert等等SQL语句的语法研究清楚,在代码中实现吧如果还要考虑业务规则,那就要结合你的业务流程了,比如如果没有到年终,就不能年终结算,这是另一个层次的问题了。
      

  7.   

    print.debug sql
    吧字符串放到查询分析器上  防止看起来一样  实际是不一样的
      

  8.   

    只能把SQL语句当成是一个英文句子来不断的检测
    我怕没几个人能敢说他能完全的做出判断的程序来。
      

  9.   

    不过楼主可以做些限制用户输入的东西
    例如,只给个TEXT他填主要的东西
      

  10.   

    我的意思就是检查sql的语法是否正确,但并不执行,而且他是独立运行的,主要目的就是检查语句,现在好像有这种dll,但都要求注册而且dll太大,根本用不了那么多的功能,所以我想是不是有小一点的,或者sql应该是自己有这种,就象查询分析器!
      

  11.   

    除了Felix Colibri的Delphi SQL Parser
    和http://www.sqlparser.com/的General Sql Parser
    目前没找到其他的这类型工具了
    搜了下CSDN,唯一能提供点提示的,只有以下发言shangwg(shangwg)回复于 2004-06-11 00:21:51 
    这个类没法写的像查询分析器一样,但是你可以写一个类专门检查T-SQL的语法错误。   
    我曾经借助正则表达式实现过,相当复杂。
      

  12.   

    提供一种思路给楼主试下假定StrCmd是需要检测的语句,则StrCmd="Return " & StrCmd
    然后执行con.execute Strcmd
    如果con.errors有增加,则有误法错误,反之则无
      

  13.   

    如果con.errors有增加,则有语法错误,反之则无
    因为有加Return所以语句并不会真正执行