我想在SQL语句在发送到数据库前的对他进行校验,检查基本的语法是否正确!!
并且提取出SQL语句中的所有字段名、参数名和表名,如果是转换的字段名也提取出来
如:
select tab1.a1, tab1.a2 ,sum(tab2.a3+tab1.a4) countCol 
from tab1,tab2
where a1=:param1 and tabl1.a2=:param2我想提取的结果是:
字段:tab1.a1、tab1.a2 、countCol
表:tab1、tab2
参数::param1 、:param2大家有什么好的经验和方法

解决方案 »

  1.   

    用一个memo控件将SQL语句显示出来,然后在查询分析器里进行检查。
    我不知道你说的是不是这个意思
      

  2.   

    不好提取吧。delphi内部处理传给数据库
    gz
      

  3.   

    只是想简单的解析出sql语句中的字段、表和参数
      

  4.   

    select tab1.a1, tab1.a2 ,sum(tab2.a3+tab1.a4) as countCol 
    from tab1,tab2
    where a1=:param1 and tabl1.a2=:param2
      

  5.   

    我以前看过类似的sql检验问题,你查查原来的贴子
      

  6.   

    as countCol是必须的,没有as不行。
      

  7.   

    我曾经试过自己编写一个语法自动推进器,来解析SQL 的一些语法,后来发现在MS SQL 中有非常多的特例,基本的一些语句是正确的,但是,如果自户自定义了一些过程,外部过程,函数,表等等,因此,觉得,不如通过异常进行捕获更合适。
    网上也有一些控件,比如SQLPARSE,但仅仅只能解析基本的SELECT ,INSERT,UPDATE语句,而且做的比较局限性,是作者们自己领域中所用的。
    P。S。好久没来了,我现在已经转到JAVA和。NET的阵营了,大家还是坚守阵地吧。