解决方案 »

  1.   

    我猜你想自己做个WEBSERVICE,直接执行客户端发来的SQL语句?
    然后要判断SQL语句是否允许执行?
      

  2.   

    可以在MSDN先把关键字都找全。http://msdn.microsoft.com/zh-cn/library/ms189822.aspx然后在把这些关键字做成一张表。比如下面这种表关键字     软件     版本
    --------------------
    AS   sqlserver   2000
    AS   sqlserver   2005
    AS   sqlserver   2008
    AS   sqlserver   2012
    in     sqlserver   2000
    in     sqlserver   2005
    select mysql  ..
    可以通过这张字典就能查到  AS 关键字,对应 sql2000,sql2005,sql2008,sql2012版本
     in 关键字,对应 sql2000,sql2005不知能解决楼主的问题没?
      

  3.   

    我猜想应该有现成的方法可用,比如SQL Server Management ,它能识别所有的关键字并标出颜色,不知道能不能调用这些方法。
      

  4.   

    从根源解决问题,培训用户一些基础的sql知识,避免关键字的输入。再者,你所说的 “某个字符串”,指的是字段,你会根据用户创建的字段来拼接sql语句
    每次拼接的时候都加上 "[字段]"  ,其实这是比较规范的sql语法。
      

  5.   

    数据库用户自己设计,然后通过你的软件来创建表?
    既然是通过你的软件来创建表,你就不要让他们自己拼接SQL语句了,根据他们选择的内容拼接个SQL语句不就行了...另:如果用户可以直接对数据库操作,你这都是在做无用功...
      

  6.   

    那是数据库客户端里保存了关键字,所以才能识别出来,而不是当你查询数据库的时候才知道到底哪些是关键字.
    好比VS也能识别int,if,else这些,并标成蓝色.不代表你程序能够直接使用编译器内部方法.
      

  7.   

    程序连接数据库,不管用的哪种方式,也只是引入了一个DLL,里面有各种对数据库的操作函数
    不管引入的是什么DLL,它毕竟不是客户端,没有那种方法让你直接用.
      

  8.   

    用户肯定是不愿意学的,至于加[]倒是一个办法。没有用过MySql,不知道MySql数据库能不能也用这种办法。最好是用现有的办法,因为还涉及到其它的内容。
      

  9.   

    就算你能直接调客户端的功能,也不是每台客户机都安装了客户端啊.
    有些电脑安装个精简版的客户端就可以通过程序访问数据库了(其实就类似注册了个DLL),根本连个界面都没有.
    还有用WEBSERVICE连数据库的,连客户端都可以没有...