C/S数据库客户端,当在线程在设置表的Active时出错 |
尚未結案
|
visli
一般會員 發表:5 回覆:1 積分:1 註冊:2003-02-26 發送簡訊給我 |
unit Client_Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBClient, MConnect, SConnect; type
TForm1 = class(TForm)
SocketConnection1: TSocketConnection;
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; myThread = class(TThread) //一个线程
private
{ Private declarations }
CDataSet:TClientDataset;
protected
procedure Execute; override;
procedure changActive; //处理
public
constructor create(DataS:TClientDataset);
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.Active:=false;
ClientDataSet1.Active:=true;
ClientDataSet1.Close;
ClientDataSet1.Open; //这里操作都没问题。
end; { myThread } procedure myThread.changActive;
begin
CDataSet.Active:=True;
CDataSet.Open; //这也没问题 CDataSet.Active:=false;
CDataSet.Close; //就这两句会出错
end; constructor myThread.create(DataS: TClientDataset);
begin
inherited
create(false);
CDataSet:=DataS;
FreeOnTerminate:=True;
end; procedure myThread.Execute;
begin
inherited;
ChangActive;
end; procedure TForm1.Button2Click(Sender: TObject);
begin
myThread.create(ClientDataSet1);
end; end.
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |