我这个做法不知道对不对, 结果存起来了 如何调用呢. function TMedUser.GetUserListVar: Variant; var UserCDS:TClientDataSet; begin try UserCDS:=TClientDataSet.Create(nil); if not FAdoCOn.Connected then FAdoCOn.Open; with UserCDS do begin FieldDefs.Add('AutoNo',ftInteger); FieldDefs.Add('UserName',ftString,20); FieldDefs.Add('UserReMark',ftString,20); FieldDefs.Add('UserPass',ftString,20); Open; end; with FAdoUser do begin close; sql.Text:='Select * from UserName '; Open; First; while not eof do begin UserCDS.Append; UserCDS.FieldByName('AUtoNo').AsInteger:=FieldByName('AutoNo').AsInteger; UserCDS.FieldByName('UserName').AsString:=FieldByName('UserName').AsString; UserCDS.FieldByName('UserReMark').AsString:=FieldByName('ReMark').AsString; UserCDS.FieldByName('UserPass').AsString:=FieldByName('UserPass').AsString; UserCDS.Post; Next; end; end;
我本来就是这个做的但是会报错, Missing data provider or data packet procedure Tfmtest.Button9Click(Sender: TObject); var MedUser:TMedUser; begin try MedUser:=TMedUser.Create;
TUser=Class private fdata:TClientDataSet; public property UserDataSet:TClientDataSet read GetUserDataSet; end;
function TMedUser.GetUserDataSet: TClientDataSet; var UserCDS:TClientDataSet; begin try UserCDS:=TClientDataSet.Create(nil); if not FAdoCOn.Connected then FAdoCOn.Open; with UserCDS do begin FieldDefs.Add('AutoNo',ftInteger); FieldDefs.Add('UserName',ftString,20); FieldDefs.Add('UserReMark',ftString,20); FieldDefs.Add('UserPass',ftString,20); Open; end; with FAdoUser do begin close; sql.Text:='Select * from UserName '; Open; First; while not eof do begin UserCDS.Append; UserCDS.FieldByName('AUtoNo').AsInteger:=FieldByName('AutoNo').AsInteger; UserCDS.FieldByName('UserName').AsString:=FieldByName('UserName').AsString; UserCDS.FieldByName('UserReMark').AsString:=FieldByName('ReMark').AsString; UserCDS.FieldByName('UserPass').AsString:=FieldByName('UserPass').AsString; UserCDS.Post;
construcotr TUser.Create; begin {创建fdata} fData:=TClientDataSet.create(nil); {构建fData的Fields} ...... end;
destructor TUser.destroy; begin {释放fdata} fdata.free; end;
procedure TUser.Load; begin {实现读取数据并写入fData}; SQL:=''; Query.Open; while not Query.eof do begin fdata.append; fdata.fieldbyname('???').AsXxxxx:=Query.fieldbyName('???').AsXxxxxx; .... fdata.post; Query.next; end; end;
var User:TUser; begin User:=TUser.create; User.load; while not user.data.eof do begin ???:=User.Data.FieldByName('').AsXXXXX; ...... user.data.next; end; end;