首先从文件读出*.sql的内容放在一个字符串里面,不过要把GO去掉
再用一个ADOCommand组件,设置ADOCommand的commandtext为刚才的字符串就可以拉

解决方案 »

  1.   

    用SQLServer自带的查询分析器,文件---打开---
      

  2.   

    不能用SQL自带的,我要在DELPHI程序中实现的。
      

  3.   

    在SQL server 上建个存储过程Exec_SQL(@strSQL text)
    在delphi中读入.sql文件的内容,作为参数传给存储过程。
      

  4.   

    送佛送到西,存储过程的编写也很简单:
    /*
    功能:
      执行@strSQL语句
    */
    CREATE PROCEDURE sp_ExecSQL(@strSQl text) AS
      exec(@strSQL)
      

  5.   

    我写了这样的存储过程,
    CREATE PROCEDURE sp_ExecSQL(@strSQl text) AS
      exec(@strSQL)然后用stroedproc调用
     with SP_exec do
     begin
      close;
      procedurename:='sp_ExecSQL;1';
      Parameters.ParamByName('@strSQl').Value:=filename;
      ExecProc;
      close;
     end;可是这样运行后提示第一行有错误,这是为什么?
      

  6.   

    参数类型怎么没有设置?另外,filename是文件名?应该是从文件读出的字符串
      

  7.   

    楼上的
    参数刷新一下
    sp_exec.Parameters.refresh;
      

  8.   

    把'sp_ExecSQL;1'换成'sp_ExecSQL'试试
      

  9.   

    一样的.
    存储过程在建立是没有出错,可是在调用时的过程中出错。(提示存储过程第1行有误)
    我所传入的filename,是文件的内容。
      
      

  10.   

    用AdoQuery1.SQL.LoadFromFile
    一样的结果,提示第1行有错误.
      

  11.   

    先把问题定位:先传一个简单的sQL语句给存储过程。如果没有问题则要看看
    读取的脚本内容是否有问题。
      

  12.   

    我在查询分析器里这样实验了一下,是可以的:
    exec sp_execsql 'begin transaction
                       select count(*) from tbl_awards
                       truncate table tbl_awards
                       select count(*) from tbl_awards
                     rollback'
      

  13.   

    导入的SQL语句是没错可以在SQL脚本分析器中运行的且这个是从SQL中导出的脚本。
    在存储过程中不能直接写的,因为这个是SQL脚本是会动态改变的。
      

  14.   

    badhorse(小虾) :你有没有邮箱或QQ,我发过去你看看。
      

  15.   

    我做了个控件:
    www.ifrance.com/man8888/main.php
    找下载中心,我的控件/TGo.