如何用adoquery读取一个.sql文件,并运行?
如题,在线等待!!
如题,在线等待!!
解决方案 »
- 解释下面的代码 特别是这个“^”
- sql语句错误!!麻烦砍下了 说我的where 错了
- 实现一算法,看谁能做得出。给出两点的坐标,画长方形,其中两点成线为长方形的长,宽可以是定值(如20)。
- 如何学习Delphi
- 关于用SQL语句插入记录的问题,急急急!!!谁能解决,高分高分啊
- 急,请问在xp下怎样屏蔽“power”关机键。win2k下阻截WM_POWERBROADCAST消息就行,但是xp下不行。
- 如何保存CSDN论坛上的页面
- 哪位有am2000控件组和Tsdbgrid控件?
- 请问webbrowser中使用COOKIE或者SESSION的问题,点入看问题详细描述(UP即给分)
- delphi6.0中怎么调用系统时间及年月日啊
- 真让人心寒
- 放分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里面去,不要用文件导入进去,运行下看行不行.