Procedure ExecuteSQLByDelphi(const FileName:String;ADOCommand:TADOCommand);
var
SourceSQLScript:TStringList;
SQLScriptCanExecute:TStringList;
i:Integer;
tmpString:String;
begin
SourceSQLScript:=TStringList.Create;
try
SQLScriptCanExecute:=TStringList.Create;
try
SourceSQLScript.LoadFromFile(FileName);
//中间这里只须按"GO"拆分成不同的段即可,其它可以直接传递给ADOCommand.CommandText执行。
for i:=0 to SourceSQLScript.Count-1 do
Begin
tmpString:=SourceSQLScript.Strings[i];
if UpperCase(Trim(tmpString))='GO' then
Begin
ADOCommand.CommandText:=SQLScriptCanExecute.Text;
ADOCommand.Execute;
SQLScriptCanExecute.Clear;
Continue;
End;
SQLScriptCanExecute.Add(tmpString);
End;
if SQLScriptCanExecute.Count>0 then
Begin
ADOCommand.CommandText:=SQLScriptCanExecute.Text;
ADOCommand.Execute;
End;
finally
SQLScriptCanExecute.Free;
end;
finally
SourceSQLScript.Free;
end;
end;
var
SourceSQLScript:TStringList;
SQLScriptCanExecute:TStringList;
i:Integer;
tmpString:String;
begin
SourceSQLScript:=TStringList.Create;
try
SQLScriptCanExecute:=TStringList.Create;
try
SourceSQLScript.LoadFromFile(FileName);
//中间这里只须按"GO"拆分成不同的段即可,其它可以直接传递给ADOCommand.CommandText执行。
for i:=0 to SourceSQLScript.Count-1 do
Begin
tmpString:=SourceSQLScript.Strings[i];
if UpperCase(Trim(tmpString))='GO' then
Begin
ADOCommand.CommandText:=SQLScriptCanExecute.Text;
ADOCommand.Execute;
SQLScriptCanExecute.Clear;
Continue;
End;
SQLScriptCanExecute.Add(tmpString);
End;
if SQLScriptCanExecute.Count>0 then
Begin
ADOCommand.CommandText:=SQLScriptCanExecute.Text;
ADOCommand.Execute;
End;
finally
SQLScriptCanExecute.Free;
end;
finally
SourceSQLScript.Free;
end;
end;