Sqlite 如何使用TProgressBar显示TFDScript执行的进度?

Sqlite 如何使用TProgressBar显示TFDScript执行的进度?,sqlite,delphi,firedac,Sqlite,Delphi,Firedac,我在MyScript.sql文件中有一些脚本 表格上有我的TProgressBar。 我想用TFDScript读取脚本,并根据脚本移动progressbar 我的代码是 Var Lista: TStringList; // SQL DDL list for creating table and populate table I: Integer; Begin With FDConn Do //FDConn is my FaireDac con

我在MyScript.sql文件中有一些脚本 表格上有我的TProgressBar。 我想用TFDScript读取脚本,并根据脚本移动progressbar

我的代码是

    Var

      Lista: TStringList; // SQL DDL list for creating table and populate table
      I: Integer;
    Begin

  With FDConn Do    //FDConn is my FaireDac connection
  Begin
    LoginPrompt := False;
    With Params Do
    Begin
      Clear;
      DriverID := 'SQLite';
      Database := 'MyDatabase.sdb';
      LoginPrompt := False;
    End;

    Lista := TStringList.Create;
    Lista.Clear;
    Try

      FDScript.ValidateAll;   //FDScript is TFDScript and prgBar is TProgressBar
      prgBar.Max := FDScript.TotalJobSize - 1;
      prgBar.Update;

      Lista.Clear;
      Lista.LoadFromFile('MyScript.sql');

// Now how I can read script 1 line by 1 line and move progress bar with
prgBar.StepIt;
prgBar.Update;`
您可以处理事件并读取其中的内容,例如,属性,以确定要继续处理的字节数和要处理的字节数。例如:

procedure TForm1.FDScript1Progress(Sender: TObject);
begin
  ProgressBar1.Max := TFDScript(Sender).TotalJobSize;
  ProgressBar1.Position := TFDScript(Sender).TotalJobDone;
end;

如果进度条控件的进度值是按百分比设置的,那么最好阅读该属性。

我不知道怎么做,你能发布一些代码说明它是如何工作的吗?当然,我添加了一个示例。但对于TotalPct10Done,则不适用。对于TProgressBar,最好读取TotalJobSize和TotalJobDone。