Please provide an example of SDAC using a threaded query that populates a grid and can be cancelled with a breakexec. The threaded example in demos has a stop button - but does not use a breakexec pattern. Also, your help document doesn't have enough detail on how to do this.
Regards,
Pat
Basic Example of Threaded SDAC with Grid and BreakExec
Re: Basic Example of Threaded SDAC with Grid and BreakExec
You can run the query in a separate thread and, if necessary, terminate execution of the query in the main thread of the application.
For example:
For example:
Code: Select all
type
TExecThread = class(TThread)
private
FQuery: TMSQuery;
public
constructor Create(const Query: TMSQuery);
destructor Destroy(); override;
procedure Execute; override;
end;
implementation
{$R *.dfm}
{ TExecThread }
constructor TExecThread.Create(const Query: TMSQuery);
begin
inherited Create(True);
FQuery := Query;
end;
destructor TExecThread.Destroy;
begin
FQuery := nil;
inherited;
end;
procedure TExecThread.Execute;
begin
inherited;
FQuery.Open;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Thread: TExecThread;
begin
MSConnection1.Connect;
MSQuery1.SQL.Text := 'SELECT * FROM Table_Name';
Thread := TExecThread.Create(MSQuery1);
Thread.FreeOnTerminate := True;
Thread.Start;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
MSQuery1.BreakExec;
end;