10分求实例,是很困难的。可以给出方法,希望启发思路。 首先你必须使用若干数据库组件,那么假设为TADOConnection + TADOQuery; 然后将你的sql脚本使用文件类型或TStringList等读出; 最后,使用下面的算法(给出伪码): //前提:每句SQL以分号结尾;思路:将每句SQL读出后逐个执行。 procedure TXXForm.HandleSQL(str读出的字符串 : string); begin while str读出的字符串中有';'号 do begin 将分号以前的语句临时保存起来,赋给某字符串变量strTempSQL; with ADOQuery1 do begin Close; Clear; Text := strTempSQL; ExecSQL(strTempSQL); end; str读出的字符串 := str读出的字符串删去分号及其前面的语句; end; end;
sql.LoadFromFile('文件路径'+'文件名'); sql.execsql;
同意 chinaandys(执著追随DELPHI)的说法; 简单有效!
小弟我这样执行会出错 try with Adoquery1 do begin Close; SQL.Clear; SQL.LoadFromFile(ExtractFilePath(Application.ExeName) + '123.SQL'); EXECSQL; end; showmessage('执行成功'); except on e:exception do showmessage(e.Message); end; 求一提示
begin with adoquery1 do begin close; sql.LoadFromFile(extractfilepath(application.ExeName)+'123.sql');
首先你必须使用若干数据库组件,那么假设为TADOConnection + TADOQuery;
然后将你的sql脚本使用文件类型或TStringList等读出;
最后,使用下面的算法(给出伪码):
//前提:每句SQL以分号结尾;思路:将每句SQL读出后逐个执行。
procedure TXXForm.HandleSQL(str读出的字符串 : string);
begin
while str读出的字符串中有';'号 do
begin
将分号以前的语句临时保存起来,赋给某字符串变量strTempSQL;
with ADOQuery1 do
begin
Close;
Clear;
Text := strTempSQL;
ExecSQL(strTempSQL);
end;
str读出的字符串 := str读出的字符串删去分号及其前面的语句;
end;
end;
sql.execsql;
简单有效!
try
with Adoquery1 do
begin
Close;
SQL.Clear;
SQL.LoadFromFile(ExtractFilePath(Application.ExeName) + '123.SQL');
EXECSQL;
end;
showmessage('执行成功');
except
on e:exception do
showmessage(e.Message);
end;
求一提示
with adoquery1 do
begin
close;
sql.LoadFromFile(extractfilepath(application.ExeName)+'123.sql');
open;
end;