Delphi手动创建数据集

习惯了.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;

转载于:https://www.cnblogs.com/dashan9zj/archive/2009/02/09/1386970.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WINCE基于hive注册表的实现

1.WINCE注册表概述 WINCE注册表保存着应用程序、驱动、用户参数配置和其他配置设定的数据&#xff0c;WINCE提供自由选择基于RAM还是基于hive的注册表&#xff0c;其中基于RAM注册表本质是堆栈文件&#xff0c;保存在RAM中&#xff0c;如果RAM的供电掉电了&#xff0c;除非OEM…

【转】DICOM之Print!!!!!!!!!

转自&#xff1a;https://blog.csdn.net/weixin_41556165/article/details/81064531 基本概念&#xff1a; Film:在DICOM协议中使用Film来统称不同的Hard Copy&#xff0c;例如photographic film和paper。 DICOM Print的数据流由Print Session、Print Job、Print&#xff08;h…

静态html js文件上传,js实现动态添加上传文件页面

发邮件是需要添加一些文件&#xff0c;每添加一个文件&#xff0c;页面上可以显示一个表单文件上传选项。此功能为&#xff1a;初始时刻只有一个添加按钮&#xff0c;当点击添加文件时&#xff0c;会增加一个选择文件和删除区域&#xff0c;同时显示上传按钮&#xff0c;当点击…

JS截取字符串

使用 substring()或者slice() 函数&#xff1a;split() 功能&#xff1a;使用一个指定的分隔符把一个字符串分割存储到数组例子&#xff1a;str”jpg|bmp|gif|ico|png”;arrtheString.split(”|”);//arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组 函…

WINCE6.0文件系统及存储管理器

*******************************LoongEmbedded******************************** 作者&#xff1a;LoongEmbedded 时间&#xff1a;2010.12.03 类别&#xff1a;WINCE嵌入式系统 ********************************LoongEmbedded******************************** Filesys.…

【转】Wireshark网络抓包(一)——数据包、着色规则和提示

转自&#xff1a;https://www.cnblogs.com/strick/p/6261463.html 一、数据包详细信息 Packet Details面板内容如下&#xff0c;主要用于分析封包的详细信息。 帧&#xff1a;物理层、链路层 包&#xff1a;网络层 段&#xff1a;传输层、应用层 1&#xff09;Frame 物理层…

昆明第八中学2021高考成绩查询,昆明市第八中学2021年招生录取分数线

同学们选择学校的时候肯定会先了解学校的招生分数&#xff0c;如果最新的招生分数还没有公布&#xff0c;可以参考以前的招生分数信息。具体为同学们分享下昆明市第八中学招生录取分数线的信息。学生想要选择到一流的学校就要有百分百的努力才行&#xff0c;因为好的学校要求也…

解决问题:HTTP 错误 401.1 - 未授权:登录失败【转】

解决问题&#xff1a;HTTP 错误 401.1 - 未授权&#xff1a;登录失败HTTP 错误 401.1 - 未授权&#xff1a;登录失败 Internet 信息服务 -----------解决这个问题&#xff0c;折磨了两天&#xff0c;终于搞定了&#xff0c;首先我按照其他仁兄的提示做了一遍&#xff1a;【解决…

【转】Wireshark网络抓包(二)——过滤器

转自&#xff1a;https://www.cnblogs.com/strick/p/6261915.html 一、捕获过滤器 选中捕获选项后&#xff0c;就会弹出下面这个框&#xff0c;在红色输入框中就可以编写过滤规则。 1&#xff09;捕获单个IP地址 2&#xff09;捕获IP地址范围 3&#xff09;捕获广播或多播地址…

html访问虚拟目录路径,IIS7.5虚拟目录物理路径指向共享文件夹详解

本文重点描述如何使用IIS访问共享资源来架设站点或执行 ASP.Net 等脚本。UNC是 Universal Naming Convention 的简称&#xff0c;也叫通用命名规范、通用命名约定。网络(范指局域网)上资源的完整位置名称。通常情况下&#xff0c;拥有多台服务器的朋友在使用IIS建立站点的时候&…

XML文档的基本操作

已知有一个XML文档&#xff08;bookstore.xml&#xff09;如下&#xff1a; <?xml version"1.0" encoding"gb2312"?> <bookstore> <book genre"fantasy" ISBN"2-3631-4"> <title>Oberons Legacy</title&…

delphi 发送html邮件,delphi发送html带附件邮件

varhtml: TIdText;beginif not SMTP.Connected thenSMTP.Disconnect();trySMTP.Connect;tryif SMTP.Authenticate then //验证beginEMessage.Recipients.EMailAddresses : FUser;EMessage.ClearBody;//清空正文html: TIdText.Create(EMessage.MessageParts);EMessage.Subject:N…

【转】DICOM:DICOM三大开源库对比分析之“数据加载”

背景&#xff1a; 上一篇博文DICOM&#xff1a;DICOM万能编辑工具之Sante DICOM Editor介绍了DICOM万能编辑工具&#xff0c;在日常使用过程中发现&#xff0c;“只要Sante DICOM Editor打不开的数据&#xff0c;基本可以判定此DICOM文件格式错误&#xff08;准确率达99.9999%…

wince Hive注册表实现机制

WinCE下的注册表可以分为两种&#xff0c;一种是RAM based&#xff0c;另外一种是HIVE based了.这要根据你在PB里添加的是哪种配置. 用PB向导新建的WinCE工程文件默认会用RAM based. Hive 注册表可以实现掉电不丢失数据.那它是如何实现这种机制的呢. RAM based 注册表因为是把信…

html中点击照片时放大缩小,基于jquery实现一张图片点击鼠标放大再点缩小

. 代码如下:var isopen false;var newImg;var w 200; //将图片宽度200var h 200; // 将图片高度 200$(document).ready(function(){$("img").bind("click", function(){newImg this;if (!isopen){isopen true;$(this).width($(this).width() w);$(th…

css入门之head区设置

收藏夹小图标 如果你将本站加入收藏夹&#xff0c;可以看到在收藏夹网址之前的IE图标变成了本站特别的图标。要实现这样效果很简单&#xff0c;首先制作一个16x16的icon图标&#xff0c;命名为favicon.ico&#xff0c;放在根目录下。然后将下面的代码嵌入head区&#xff1a; &l…

初识WINCE的HIVE注册表

要点&#xff1a;1、WINCE5.0的注册表共分为两类&#xff0d;&#xff0d;RAM based及HIVE based&#xff1b;2、RAM based注册表特点是在内核启动时&#xff0c;被释放到内存&#xff0c;用户可以修改&#xff0c;但由于是基于内存的方式&#xff0c;所以在系统掉电后&#xf…

【转】Dicom基础知识

DICOM 文件可以大致分为两部分&#xff1a; 一部分&#xff1a;与 图像 相关 的 元 信息 &#xff0c;包括患者信息&#xff0c;检查信息&#xff0c;序列信息&#xff0c;图像信息等等。 另一部分&#xff1a;图像的像素数据。 在解析DICOM文件中的像素数据的时候&#xff0c;…

04751计算机网络安全讲解,【19份】04751计算机网络安全自考试卷_历年真题自考答案及解析_湖南080901计算机科学与技术(原B080702计算机及应用)专业-自考生资料网...

1、资料如何使用本商城提供资料为WORD版&#xff0c;可打印成纸质版&#xff0c;结合备考习惯&#xff0c;营造考试氛围。支持手机查看&#xff0c;随时随地&#xff0c;高效学习。WORD文档也可直接用于电脑端学习&#xff0c;快速浏览&#xff0c;永久使用。2、文档无法编辑&a…

湖北省汉十高速公路项目接近尾声,所想所感真的值得写写

湖北省汉十高速公路的项目是我接的第一个B/S结构的软件项目&#xff0c;总体感觉吧&#xff1a;有点粗糙。虽然基本功能已经实现。想来不经意的来了一个公司竟然还能做一个这样的项目。前前后后2个月的开发周期&#xff0c;也让我感到做此类项目&#xff0c;需要你的技术点很多…