不用的,Query 是个数组,不是只能一行,只要你遇到go 你再执行就行了,这是一个执行SQL脚本的例子: Procedure TFrm_main.suiButton2Click(Sender: TObject); Var i: integer; ss: TstringList; Begin If Edit1.Text <> '' Then Begin Try Screen.Cursor := crHourGlass; ss := TStringList.Create; ss.LoadFromFile(Edit1.Text); With ADOQuery1 Do Begin close; SQL.Clear; SQL.Add(' use ' + dbname); ExecSQL; close; SQL.Clear; For i := 0 To ss.Count - 1 Do Begin If lowercase(ss[i]) = 'go' Then Begin ExecSQL; close; sql.clear; End Else SQL.Add(ss[i]); End; End; Screen.Cursor := crDefault; Messagebox(handle, '数据库升级成功!', '提示:', MB_OK + MB_ICONINFORMATION); Except Begin Screen.Cursor := crDefault; Messagebox(handle, '数据库升级失败(可能是您己经升级过或数据库遇到未知错误)!', '提示:', MB_OK + MB_ICONERROR); Raise; End; End; End; End;
Procedure TFrm_main.suiButton2Click(Sender: TObject);
Var
i: integer;
ss: TstringList;
Begin
If Edit1.Text <> '' Then
Begin
Try
Screen.Cursor := crHourGlass;
ss := TStringList.Create;
ss.LoadFromFile(Edit1.Text);
With ADOQuery1 Do
Begin
close;
SQL.Clear;
SQL.Add(' use ' + dbname);
ExecSQL;
close;
SQL.Clear;
For i := 0 To ss.Count - 1 Do
Begin
If lowercase(ss[i]) = 'go' Then
Begin
ExecSQL;
close;
sql.clear;
End
Else
SQL.Add(ss[i]);
End;
End;
Screen.Cursor := crDefault;
Messagebox(handle, '数据库升级成功!', '提示:', MB_OK + MB_ICONINFORMATION);
Except
Begin
Screen.Cursor := crDefault;
Messagebox(handle, '数据库升级失败(可能是您己经升级过或数据库遇到未知错误)!', '提示:', MB_OK + MB_ICONERROR);
Raise;
End;
End;
End;
End;
frmdata.Query1.SQL.LoadFromFile('c:\sbcz.txt');
frmdata.Query1.ExecSQL;