clientDataSet和TDataSetProvider对数据的操作

Delphi 使用 Datasnap 进行三层应用开发 转载记录: Delphi 使用 Datasnap 进行三层应用开发,积累了几种技术,总结如下: 1、(推荐!)在 Datasnap 服务端 使用 TDatasetProvider,客户端 使用 TDSProviderConnection 1)采用Datasnap Server ,可以使用TCP/IP、Http 通信。TDatasetProvider能够提供“元数据与业务数据”。 推荐:采用(FireDac技术) TFDConnection 连接数据库,通... 阅读详情
 dbgrdh1: TDBGridEh;
    con1: TADOConnection;
    qry1: TADOQuery;
    idmsg1: TIdMessage;
    ds2: TDataSource;
    ds1: TClientDataSet;

    dtstprvdr1: TDataSetProvider;


配置连接

qry.con指向con1

dtstprvdr1 的dataset指向qry1

dtstprvdr1 .option.poAllowCommandText=True

TClientDataSet.providerName=dtstprvdr1

ds2的dataset指向ds1

DBGrid1  datesource 指向 datasource1

在ds1.里面写如下代码

 ds1.Close;
    ds1.CommandText:='select * from Tree';
    ds1.Open;

得到查询的结果如下所示




//提交添加数据

    ds1.Insert;
    ds1.FieldByName('id').AsString:='cc';
    ds1.FieldByName('name').AsString:='aa';
    ds1.FieldByName('parentID').AsString:='bbb';
    //ds1.post;(当这个不能实现的时候就用下面的实现更新)
    ds1.ApplyUpdates(0); //填充数据

//删除数据

    ds1.Close;
   ds1.CommandText:='DELETE FROM Tree WHERE Tree.id='+ QuotedStr('4');
   ds1.Execute;

//更新数据

  ds1.Close;
   ds1.CommandText:='UPDATE Tree SETTree.id=xx  WHERE Tree.id=xx';
   ds1.Execute;

//字段排序

  ds1.IndexFieldNames:='id';

//筛选数据

 ds1.Filter:='name like '+QuotedStr('a%');   //筛选的表达式
 ds1.Filtered:=True;  //显示筛选后的数据消息



//TcxDBTextEdit    


设置dataBiding的datafield 为数据库指定的字段名称,datasource为指定数据库的datasource 



//绑定TLookUpComboBox

properties  -> ListField

properties  ->FieldKey

properties  ->ListSource

这三个分别设置就可以显示出结果


//TcxDBDateEdit   数据绑定日期控件


// DataClientSet执行SQL语句

首先,放一个TSQLDataSet+TDatasetProvider+TClientDataSet控件在窗体上,然后设置SQLDataset的SQLConnection属性为TSQLConnection1。

注意:如果用ClientDataSet控件查询,需要首先设置TDatasetprovider-options-poallowcommandtext 设为True.然后TDataSetprovider才能接受ClientDataSet的SQL语句。

procedure TForm1.Button1Click(Sender: TObject);
begin
self.ClientDataSet1.Close;
self.SQLDataSet2.Close; //必须先关闭SQLDataSet2,否则会报错。
self.ClientDataSet1.CommandText:='insert into main (title) values (''QQQQQQQQQQQQQQQ'')';
self.ClientDataSet1.Execute;

self.ClientDataSet1.Close;
self.ClientDataSet1.CommandText:='select * from main';
self.ClientDataSet1.Open;
end;

用SQL语句可以直接添加数据记录到数据库中,不用再ApplyUpdates方法,谢谢。



//dataclientset 之间的副局拷贝

 CDS2.AppendData(CDSEmployee.Data,False); 

或者是

CDS2.Data:=  CDSEmployee.Data;


 将DS1(数据源)的dataset = CDS2


dbgrdh2.DataSource:=DS1;  //绑定数据源


这样dbgrdh2就会显示数据。


//判断dbgridth数据类型

 if  CDSEmployee.Fields[0].DataType in [FTInteger,FtFloat]  then
   begin
        ShowMessage('AA');
   end;



Delphi中数据库内容编辑实践:从Edit方法到组件应用 本文还有配套的精品资源,点击获取 简介:Delphi编程环境通过Edit方法提供了一种交互式方式编辑数据库记录。本文将详细介绍使用Delphi中的数据库组件,如TDataSource、TTable和TField,执行编辑操作的过程。同时,本文还将探讨TDBEdit控件的数据绑定,以及事务处理和编辑过程中的注意事项,为开发者构建稳定和健壮的数据库应用程序提供指导。 ... 阅读详情

相关推荐

delphi调用sql server 中DTS导入数据,纯delphi代码

delphi调用sql server 中DTS导入数据,纯delphi代码;需要安装sqlserver dts;支持txt\access\sqlserver\xls 之间的批量导入处理,事务保护,保证数据完整性,效率高

TClientDataSet 模拟 EXCEL表

日常处理数据时,经常需要,从EXCEL表格中,批量导入数据,通过 XLSReadWriteII编程,会很快导入。但是,客户提供的EXCEL表的字段,数据格式,字段的排序,有很大的区别。因此,能否做一个能够批量导入,很有必要。同时,又需要将EXCEL表能够,直接导入并显示在DBGridEh中。三、创建ClientDataSet的字段。约定Sheet=0,即第1个表。二、分析EXCEL表相关参数。

lyhoo163的专栏 2560

ClientDataSet数据更新,Delta解析,视图更新

将ClientDataset的Delta数据打包成JSon字符串 可以将这个JSon字符串传递到服务端, 进行解码,生成更新的SQL语句. 主键更新. 建议主键使用GUID,这样更新数度快, SELECT可以多个表,但是要更新的字段不要AS成其他名字. 打包的时候指定要更新的表和更新主键. 思路不错的.封装到位. 数字字段删除也可以更新.

delphi开发学习四:TClientDataSet与TDataSetProvider控件使用实例

1、TClientDataSet控件 通过TClientDataSet控件可以建立瘦客户端的应用程序,且数据执行效率较高,但它不能和数据库自动连接,程序中必须制定它如何获取数据。一般情况下,TClientDataSet 控件获取数据的方式主要有 3 种:从本地文件中获取、从本地的另外一个数据集对象中获取以及通过 IAppServer 接口来获取。 2.TDataSetProvider 控件

u011846249的专栏 7131

TClientDataSet用法

delphi的TClientDataSet用法,客户端数据处理详解

TSP、MTSP问题遗传算法详细解读及python实现

写在前面 遗传算法是一种求解NPC问题的启发式算法,属于仿生进化算法族的一员。仿生进化算法是受生物行为启发而发明的智能优化算法,往往是人们发现某种生物的个体虽然行为较为简单,但生物集群通过某种原理却能表现出智能行为。于是不同的人研究不同的生物行为原理,受到启发而发明出新的仿生进化算法。比如免疫优化算法,蚁群算法,模拟退火算法等,这些算法以后也会简单介绍。 本文的主题是遗传算法,该算法也是受到生物行为启发。物竞天择,适者生存,优胜劣汰,是该优化算法的核心思想。笔者在业务中需要用到遗传算法求解TSP问题,但是网

weixin_47675950的博客 9306

delphiXE客户端TClientDataSet调用服务器返回的TDataSet

delphiXE客户端TClientDataSet调用服务器返回的TDataSet 上篇讲了:因为TDataset为所有数据集组件中的基类,是个抽象类和虚拟类,所以不能直接引用其大部分的属性、方法和函数,必须通过其派生类来转化后,再使用其属性、方法和函数;只能使用有限的属性、方法和函数。 比如:Dataset.recordCount 这样引用是要报错的。只能使用 while ...

pulledup的博客 568

用RFSoC ZU47DR搭建软件无线电原型:从零配置Vivado到生成第一个射频信号

本文详细介绍了如何使用Xilinx RFSoC ZU47DR开发板搭建软件无线电原型系统,从Vivado环境配置到生成首个射频信号的全流程。通过整合ARM处理器、FPGA逻辑和高速ADC/DAC,该平台为通信算法验证提供了高效解决方案,特别适合SDR开发者和通信工程师快速实现原型设计。

weixin_26763955的博客 590

ClientDataSet

看到一篇介绍ClientDataSet和TDataSetProvider,非常精彩,特此保存。 ================================================================================= 前台:D7或D2005; DBExpress连接组件:TSqlConnection,TSqlQuery ,TDataSetProvi

时光如流水的专栏 1970

【分布式系统学习】CAP原理详解

概述:互联网最重要任务莫过于海量数据处理,即大规模分布式系统,分布式是互联网的核心技术!!!如上所述,分布式系统是无法同时满足CAP三个特性的。1.Atomicity(原子性)一个事务中的所有操作,要么全部完成,要么全部不完成,不会在中间某个环节结束。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。2.Consistency(一致性)在事务开始之前和事务结束以后,数据库的完整性没有被破坏。3.Isolation(隔离性)

大龄烤红薯的博客 5024

MCP详解:手把手教你理解和如何使用各种开源MCP服务

MCP 作为一种开放协议,为 AI 模型与外部世界的连接提供了标准化的解决方案。它不仅降低了开发门槛,还极大地扩展了 AI 应用的边界。无论是开发者还是普通用户,都可以通过 MCP 更高效地利用 AI 技术,实现更多智能化的功能。

王哥儿聊AI的博客 6055

ClientDataSet加上TDataSetProvider的数据保存问题

ClientDataSet加上TDataSetProvider的数据保存问题前台:D7或D2005; DBExpress连接组件:TSqlConnection,TSqlQuery ,TDataSetProvider,TClientDataSet;后台:SQL Server 200

SUNSTONE的Delphi笔记 1万+

【C++】构造函数之初始化列表(Initialization list of constructors)

本讲主要是构造函数的初始化列表的讲节,但是本节很重要,可以关乎后面写项目

m0_62599305的博客 2233

Delphi:ClientDataset+TDataSetProvider的数据保存问题

看到一篇介绍ClientDataSet和TDataSetProvider,非常精彩,特此保存。 =========================================================================== TClientDataSet用法第十一章 TClientDataSet  与TTable、TQuery一样,TClientDataSet也是从T...

weixin_30416871的博客 708

24、虚拟地理信息系统:技术与应用的全面解析

本文全面解析了虚拟地理信息系统(虚拟GIS)的技术架构与应用前景。文章从地理空间数据的增长出发,探讨了虚拟GIS在地形、建筑、天气等多维度数据的交互式可视化技术,重点介绍了全球层次结构、多分辨率模型、缓存分页机制及交互导航方法。系统已应用于天气分析、城市规划、应急响应等领域,并展望了未来在数据处理、模拟操作、移动可视化及智能城市、文化遗产保护等方向的发展路径与技术挑战。

v4w5x6的博客 88

Python控制LitePoint IQxel-MW 无线网络测试仪

由于项目需要进行WIFI和BT(蓝牙)的射频测试,所以需要开发一款支持WIFI/BT射频测试的工具。开发射频测试工具的话那肯定离不开仪表的控制。我们项目用的就Litepoint的IQxel-MW无线网络测试仪。这篇文章主要就是介绍一下如何控制仪表以及实现的过程!LitePoint是美国硅谷的一家仪器厂商,主要做一些无线通讯测试仪表,包括WIFI,BT(Bluetooth),LTE等等。

xgh1951的博客 1万+

C/S结构中成批保存CLIENTDATASET中的数据

<br />这应该不算是什么技巧,估计有数据库方面程序的Delphi程序员都知道;本来没有写想到<br /> 需要把它写成一篇贴子,但前不久看个别刚入门的兄弟的代码时。才发展他们还在刀<br /> 耕火种,为此才想把它写出来算是对入门的兄弟们的一点帮助,让大侠们见笑了;<br />  我们都知道TCLIENTDATASET有把对它其中的数据所做的修改记录下来的功能;如果需要还可以将<br />  修改回复到以前的某个状态,而且结合DATASETPROVIDER还可能自动完成改动到SQL映射,将改动成批提交到

xxhh07的专栏 801

1. 如何使用扣子工作流一键生成儿童绘本(可以发到小红书,微信公众号图文等)

本文介绍了使用扣子智能体一键生成儿童绘本的工作流。用户只需输入绘本主题,系统会自动生成Markdown格式内容,可直接发布到优快云、小红书等平台,还支持推送至微信公众号草稿箱。操作步骤包括:访问扣子网站导入工作流源代码,输入主题试运行,查看实时进度和最终输出结果。工作流编辑器会显示每个节点的执行状态和耗时,支持通过"查看日志"功能回溯历史运行记录。文末附有工作流源代码下载链接。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1245

ClientDataset

http://www.delphibbs.com/delphibbs/dispq.asp?lid=3317420--  DELPHI 论坛  (http://www.gz9f.com/bbs/list.asp?boardid=5)----  TClientDataSet加上TDataSetProvider的数据保存问题?  (http://www.gz9f.com/bbs/dispbbs.asp?

宋威的专栏 7136

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ClientDataSet.SetProvider 需要重复设置,我认为它可能存在问题

如果你使用代码创建TClientDataSet, TDataSetProvider, TDataSet并将其关联起来 TClientDataSet->TDataSetProvider->TDataSet  但指定其TClientDataSet.ProviderName字符串在Open ClientDataSet 可能会出现如下问题: invalid data packet 造成这个原因有

blue_morning的专栏 2270

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C\S结构中成批保存CLIENTDATASET中的数据

这应该不算是什么技巧,估计有数据库方面程序的DELPHI程序员都知道;本来没有写想到需要把它写成一篇贴子,但前不久看个别刚入门的兄弟的代码时。才发展他们还在刀耕火种,为此才想把它写出来算是对入门的兄弟们的一点帮助,让大侠们见笑了; 我们都知道TCLIENTDATASET有把对它其中的数据所做的修改记录下来的功能;如果需要还可以将 修改回复到以前的某个状态,而且结合DATASETP...

dibodang1423的博客 130

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ClientDataset+TDataSetProvider的数据保存问题

看到一篇介绍ClientDataSet和TDataSetProvider,非常精彩,特此保存。 ================================================================================= 前台:D7或D2005; DBExpress连接组件:TSqlConnection,TSqlQuery ,TDataSetProvide...

weixin_30542079的博客 516

ClientDataSet的使用技巧

1. TClientDataSet、TDataSetProvider的使用技巧ClientDataSet是一个功能强大的类,通过在内存中模拟表格,实现了其它数据集组件所不具备的强大功能。TClientDataSet从类的继承关系上来看,是TDataSet这个抽象类的子类,所以我们可以在TDataSet这个抽象层次上对其进行我们熟悉的操作,比如导航、排序、过滤、编辑。要注意的是,TClientDat...

zisongjia的博客 3637
上一篇: 远程连接SQL Server 2008,服务器端和客户端配置
下一篇: MMSQL游标的使用
蓝魔鬼仙
博客等级 码龄15年 14粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值