Delphi 中如何解析 SQL(如SQL SERVER) 脚本!
    意思是: 有一段SQL脚本,里面有insert ,select ,update ,create table,create procedure
等等语句,符合SQL语法标准的;
    我现在需要将她一条语句一条语句解析处理;有办法吗?
--------------------
例:  (sql脚本)
select * from table01
   where col01 = getdate()update table01 set .... create procedure procname
as 
....
---------------------------------------
解析出来是:
1. select * from table01
   where col01 = getdate()2. update table01 set .... 3. create procedure procname
   as 
....

解决方案 »

  1.   

    循环读取后用pos函数,取关键字的位置看看
      

  2.   

    數據結構 中前幾章就會講到的可能還更簡單, 因為, SQL 句子的首字符, 就只有簡單的這麼幾個
      

  3.   

    对,就判断insert ,select ,update ,create, delete 这些关键字的位置,然后截取前面的部分做为一条语句。然后循环处理
      

  4.   

    更简单:上述SQL脚本每段之间不是有个空行么?只要通过这个空行分割字符串就行了,哈哈。
      

  5.   

    你的sql语句中不包含子查询什么的吧?别把诸如
    select * from table1 where field1 in (select filed1 from table2)
    之类的也拆成俩
      

  6.   

    其中包含了复杂的子查询,还有可能会是SQL SERVER的独立的语句等等;
      declare @i:integer
      select @i
      select * from table01
      create procedure procname
      as .....
      if exists(.....)
      

  7.   

    呵呵,直接去问问微软是怎么解决这个问题的!
    其实你不用解析,直接把文本当成存储过程代码传给SQL Server去执行也是可以的!
      

  8.   

    與我們在SQL查詢分析器中一樣,在語句的後面加一個GO,且是大寫的,這個問題就可以解決
      

  9.   

    主要看你的文本,如果是从SQL导出的,把GO去掉可以直接在控件中执行。
      

  10.   

    呵呵
    SQL 事件探测器 可以很好的解决这个问题。