动态创建的 ClientDataSet 怎么样给 OwnerData 赋值?(20分)

  • 主题发起人 主题发起人 hoho5999
  • 开始时间 开始时间
H

hoho5999

Unregistered / Unconfirmed
GUEST, unregistred user!
本人正在做一个三层的pooler数据库,做 client 端UI时,想用一个动态的 ClientDataSet,可是不知道怎么给OwnerData赋值?
......
tempCDS := TClientDataSet.Create(self);
tempCDS.RemoteServer := DMMain.sConnect ;
tempCDS.ProviderName := dspQueryName;
tempCDS.close;
tempOwnerData := VarArrayOf([SQLStr, Null]);
tempCDS.BeforeGetRecords(nil, tempOwnerData);
tempCDS.Open;
//总是出现 error.
......
可是如果用一个固定的 ClientDataSet,在BeforeGetRecords event 里直接给 OwnerData 赋值,就没有错误了。为什么啊?请问高手们,怎么样给 OwnerData 赋值啊?用 commandText好像也出错 Invalid Argument。怎么办呢?给点儿指导吧。
 
你是想给动态创建的TClientDataSet创建事件代码吧!可以参考一下这段代码;
这里的Timer1事动态创建的的。Button1和Label1是拉的控件;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
Timer1:TTimer;
procedure MyTimer(Sender: TObject);
end;

var
Form1: TForm1;

implementation
{$R *.dfm}
procedure TForm1.MyTimer(Sender: TObject);
begin
Label1.Caption:=DateTimeToStr(now);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Timer1.Enabled then
begin
Timer1.Enabled:=false;
Button1.Caption:='Start';
end else
begin
Timer1.Enabled:=true;
Button1.Caption:='Stop';
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1:=TTimer.Create(nil);
Timer1.Enabled:=false;
Timer1.Interval:=1000;
Timer1.OnTimer:= MyTimer;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Timer1.Free;
end;
 
大侠,你的 code 我原版拷到一个新的 Form里,拖上一个 label 和 botton,编译通过,可是运行出错啊!没搞错吧?
 
我调试过,出什么错,我的msn:yunjianming@yahoo.com.cn
 
搞定了,什么都没改,重启机器就好了。天!谢谢,这是一点儿分,新手,分不多。
 
不客气,解决了就好
 
后退
顶部