我用程序动态创建数据库,创建数据库成功,但在利用ADO调用从MS SQL中生成的SQL脚本创建表及存储过程时,总是提示脚本第一行出错,脚本在MS SQL 查询分析器中运行是成功的,请问各位大侠这是什么原因??急!

解决方案 »

  1.   

    程序:
    ADOQuery2.Connection:=ADOConnection1;
          //创建数据库
          ADOQuery2.SQL.Text:='USE master '+
          'IF EXISTS (SELECT * FROM sysdatabases WHERE Name = '''+'Clothing'+''')'+
          ' BEGIN'+
          ' DROP DataBase Clothing'+
          ' END;'+
          ' CREATE DATABASE Clothing'+
          ' ON'+
          '( NAME = Clothing_Data,FILENAME = '''+ExtractFilePath(Application.ExeName)+'\DataBase\Clothing_Data.mdf'+''' )';
          ADOQuery2.ExecSQL;
          //建数据库表
          ADOQuery2.Close;
          ADOQuery2.SQL.Clear;
          ADOQuery2.SQL.LoadFromFile(ExtractFilePath(Application.ExeName)+'Clothing.sql');
          ADOQuery2.ExecSQL;
    -------------------------------------------------------------
    部分脚本:
    USE Clothing if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[P_ComputeMoney]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[P_ComputeMoney]if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[P_InKuCun]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[P_InKuCun]if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[P_In_DataSetScroll]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[P_In_DataSetScroll]if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[P_In_KuCun]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[P_In_KuCun]if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[P_In_Nextbill]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[P_In_Nextbill]总是提示脚本第一行出错
      

  2.   

    把USE Clothing 去掉就可以了,这是选择数据库的,ado中已经指定了连接
      

  3.   

    那你打开sql查询分析器,进入你刚创建的数据库,打开脚本文件,执行看看
      

  4.   

    在Use DatabaseName 后加多一行 GO (还有一些地方也一样 建议使用数据库生成一份脚本看一下)
    如:
     USE master
     GO
    查询分析器与从Delphi中传过去执行批语句有那么点不多,最大的区别就是GO上面
      

  5.   

    你的sql脚本,是不是从sql server生成的,如果是的话,重新创建一个空的文本文件,把你生成的那个文件里面的内容全部复制,粘贴到你刚刚新建的文本文件中。然后删除老的文件。把你刚刚新建立的文件名修改为Clothing.sql,应该就好了。我曾经遇到过类似的问题,直接用sql server德总是有问题,换个文件,全复制出来就好了,试验看看吧!