程序: 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]总是提示脚本第一行出错
把USE Clothing 去掉就可以了,这是选择数据库的,ado中已经指定了连接
那你打开sql查询分析器,进入你刚创建的数据库,打开脚本文件,执行看看
在Use DatabaseName 后加多一行 GO (还有一些地方也一样 建议使用数据库生成一份脚本看一下) 如: USE master GO 查询分析器与从Delphi中传过去执行批语句有那么点不多,最大的区别就是GO上面
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]总是提示脚本第一行出错
如:
USE master
GO
查询分析器与从Delphi中传过去执行批语句有那么点不多,最大的区别就是GO上面