如何用adoquery读取一个.sql文件,并运行?
如题,在线等待!!
如题,在线等待!!
解决方案 »
- 毛遂自荐寻delphi兼职
- 如何判断本程序是否在运行中?
- 我是初学者??
- 怎么样让DBLookupComboBox1 过滤 DBLookupComboBox2 的内容!
- 如何在listview中实现象dbgrid点击title排序?
- 当我打开窗口文件时Delphi它就自已关闭了谁知道是怎么回事呀?
- 请问怎样创建ActiveX控件的接口属性?????????????????????????????????????????
- 初学编程,注册表求助?100分
- 强烈抗议,csdn不能查询!!!!!!!!!!!!!
- 三层结构数据的新增,修改和删除
- 真让人心寒
- 放分200 惨烈恭喜aiirii做大版主——夜星
读取的文件内容如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[dcn04]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[dcn04]
GO
CREATE TABLE [dbo].[dcn04] (
[nbf01c] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf02c] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf03c] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf04c] [char] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf05c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf06d] [datetime] NULL ,
[nbf07d] [datetime] NULL ,
[nbf08f] [float] NULL ,
[nbf09f] [float] NULL ,
[nbf10f] [float] NULL ,
[nbf11f] [float] NULL ,
[nbf12c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf13c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf14c] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf15c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf16c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf17c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf18d] [datetime] NULL ,
[nbf19c] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf20c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf21c] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf22f] [float] NULL ,
[nbf23f] [float] NULL
) ON [PRIMARY]GO
首先格式不一样的,首先,query控件作为一个单独的事物,不能含有go关键字另外:你把sql文件里的所有'变成两个单引号即''(不是双引号)在运行一下
if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[dcn04]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1)
drop table [dbo].[dcn04]CREATE TABLE [dbo].[dcn04] (
[nbf01c] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf02c] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf03c] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf04c] [char] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf05c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf06d] [datetime] NULL ,
[nbf07d] [datetime] NULL ,
[nbf08f] [float] NULL ,
[nbf09f] [float] NULL ,
[nbf10f] [float] NULL ,
[nbf11f] [float] NULL ,
[nbf12c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf13c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf14c] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf15c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf16c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf17c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf18d] [datetime] NULL ,
[nbf19c] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf20c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf21c] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf22f] [float] NULL ,
[nbf23f] [float] NULL
) ON [PRIMARY]
不用改引号,只需去掉go
if exists (select * from dbo.sysobjects where name = 'dcn04'
drop table [dbo].[dcn04]CREATE TABLE [dbo].[dcn04] (
[nbf01c] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf02c] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf03c] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf04c] [char] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf05c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf06d] [datetime] NULL ,
[nbf07d] [datetime] NULL ,
[nbf08f] [float] NULL ,
[nbf09f] [float] NULL ,
[nbf10f] [float] NULL ,
[nbf11f] [float] NULL ,
[nbf12c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf13c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf14c] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf15c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf16c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf17c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf18d] [datetime] NULL ,
[nbf19c] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf20c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf21c] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf22f] [float] NULL ,
[nbf23f] [float] NULL
) ON [PRIMARY]
drop table [dbo].[dcn04]CREATE TABLE [dbo].[dcn04] (
[nbf01c] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf02c] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf03c] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf04c] [char] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf05c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf06d] [datetime] NULL ,
[nbf07d] [datetime] NULL ,
[nbf08f] [float] NULL ,
[nbf09f] [float] NULL ,
[nbf10f] [float] NULL ,
[nbf11f] [float] NULL ,
[nbf12c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf13c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf14c] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf15c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf16c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf17c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf18d] [datetime] NULL ,
[nbf19c] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf20c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf21c] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf22f] [float] NULL ,
[nbf23f] [float] NULL
) ON [PRIMARY]
我可以用adoquery.sql.add();add一堆sql语句阿(当然好像sql是有长度限制的)
drop table [dbo].[dcn04]CREATE TABLE [dbo].[dcn04] (
[nbf01c] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf02c] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf03c] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nbf04c] [char] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf05c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf06d] [datetime] NULL ,
[nbf07d] [datetime] NULL ,
[nbf08f] [float] NULL ,
[nbf09f] [float] NULL ,
[nbf10f] [float] NULL ,
[nbf11f] [float] NULL ,
[nbf12c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf13c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf14c] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf15c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf16c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf17c] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf18d] [datetime] NULL ,
[nbf19c] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf20c] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf21c] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[nbf22f] [float] NULL ,
[nbf23f] [float] NULL
) ON [PRIMARY]
------------------------------------------------〉c:\a.sql; adoquery1.SQL.Clear;
adoquery1.SQL.LoadFromFile('c:\a.sql');
adoquery1.ExecSQL;----------------------------------------------->ok
var ifiles:textfile;
ss:string;
label Sqldo;
begin
AssignFile(ifiles,'dd.SQL');
reset(ifiles);
while not eoln(ifiles) do begin
memo1.lines.clear;
while not eoln(ifiles) do begin
ReadLn(ifiles,ss);
if ss='GO' then goto Sqldo;
Memo1.Lines.add(ss);
end;
Sqldo:
ADOCommand1.CommandText:=memo1.Text;
ADOCommand1.Execute;
end;
closefile(ifiles);
end;
你直接把语句拷到adoquery那个sql里面去,不要用文件导入进去,运行下看行不行.