对于一般从MS SQL Server数据库导出的一些T-SQL语句(如go,set ... off,create procedure等)只能靠查询分析器来手工执行,无法在delphi前台用Query等控件来执行。谁能帮忙解决!!!

解决方案 »

  1.   

    不行的,经常写存储过程的可能知道,如果在一台机器上导出的SQL脚本,经常用带一些如
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS OFF 
    GO
    等这样的语句,到其他机器上只有查询分析器才能执行,Query控件会报错!不信可以随便导出一个存储过程脚本拿到delphi上试试!!!
      

  2.   

    可以用啊!Query.Execute
    有些不可以,在数据库里弄吧!
      

  3.   

    脚本里的GO用adoquery.Execute代替,有一个GO就执行一次
    adoquery.sql.add(SET QUOTED_IDENTIFIER OFF );
    adoquery.Execute
    adoquery.sql.add(SET ANSI_NULLS OFF );
    adoquery.Execute
      

  4.   

    to 楼上:
    这样做也太繁琐了吧!在说不止go,还有许多Query不能识别的语句,难道要一一分解,
    能否在前台调用query analyzer来执行,或更强大的数据集控件???
      

  5.   

    终于找出一个方法了,不知道行不行,大家试试?
    在程序中调用此命令:
    osql -U username -P password -S servername -d dbname -i filename
      

  6.   

    如何使用这条语句“osql -U username -P password -S servername -d dbname -i filename”,????
      

  7.   

    ADOConnection1.BeginTrans;
    .....ADOConnection1.CommitTrans;如何?
      

  8.   

    to dragonth(幽灵剑客):
    用winexec函数
      

  9.   

    to liulangnanhai(流浪男孩):
    ...代表什么?