• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi手动创建数据集

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

习惯了.net的DataTable,便习惯性的认为Delphi中也有类似的东西,结果搞了好久才搞定,看来看去是拿着Delphi实现.net的思想,生搬硬套了,不过倒也解决了一些问题语言间的思想差别还是有的呃。

1数据集的创建CreatDataSet: TDataSet;

目标是创建一个类似于DataTable的对象,我们可以指定列的字段,也可以手动添加行。

在Delphi中是用DB.TDataSet来实现的(相当于DataTable,与.net的DataSet可是两个概念啊)。

在这里要用到DBClient.TClientDataSet,至于两者的关系,自己去查吧。

方法如下:

function TForm3.CreateDataSet: TDataSet;

var

dsTemp:TDataSet;

cdsTemp: TClientDataSet;

begin

//初始化

dsTemp := TDataSet.Create(Application);

try

    //字段名设置

    with dsTemp.FieldDefs do

    begin

      Add('code',ftString,8);

      Add('name',ftString,20);

      Add('Number',ftInteger);

    end;

    //创建DataSet

    cdsTemp := TClientDataSet.Create(Application);

    if dsTemp.FieldDefs <> nil then

    begin

      cdsTemp.FieldDefs.Assign(dsTemp.FieldDefs);

      cdsTemp.CreateDataSet;

      result := (cdsTemp as TDataSet);

    end;

finally

    //内存释放

    dsTemp.Free;

end;

end;

2 数据集数据的添加AddDataToSet;很简单的 打开数据集-添加行-赋值-提交

function TForm3.AddDataToSet(AdsData: TDataSet): TDataSet;

var

intLoop:Integer;

begin

//打开数据集

AdsData.Open;

with AdsData do

begin

    for intLoop := 0 to 10 do

    begin

      Append;//添加

      FieldByName('Code').AsString := 'Code' + intToStr(intLoop);

      FieldByName('Name').AsString := 'Name' + intToStr(intLoop);

      FieldByName('Code').AsInteger := intLoop;

      post;//提交

    end;

end;

end;

3 修改数据集中某个Field的值 ChangeDataSetValue。这个在.net中可以直接改,不过在这里还是有区别的。这里我们把刚才建的数据集中Name Field的值给改掉

示例代码如下:

   AdsData.Open;                                      //打开

   AdsData.First;                                    

   while Not AdsData.Eof do

   begin

     AdsData.FieldByName('Name').ReadOnly := false;     //只读属性修改

     AdsData.Edit;                                      //打开编辑

     AdsData.FieldByName('Name').AsString := 'NewName'; //修改

     AdsData.Post;                                      //提交

     AdsData.Next;

   end;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
图形图像平面几何变换类(Delphi版)发布时间:2022-07-18
下一篇:
delphi中的LISTVIEW怎么与数据库连接发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap