clientdataset的使用】的更多相关文章

ClientDataSet组件本来是给midas用的,也是所谓的borland的三层数据技术,使用这个控件必须发行midas.dll挺麻烦的 open是通过应用的SQL语句为SELECTexecute通过对应的SQL语句为INSERT.UPDATE.DELETE等语句…
核心提示:如何捕获ClientDataSet.ApplyUpdates的错误,不用ReconcileError... var cdsEmp:TClientDataSet; //保存 procedure TfrmEmp.btnSave(Sender: TObject); begin cdsEmp.RemoteServer.AppServer.BegTrans; try cdsEmp.ApplyUpdates(0); //更新错误在这一句发生,但是我却永远也捕获不到, //我想自已在异常处理里显示这…
现在,DATASNAP倾向于使用JSON作为统一的数据序列格式,以期达到跨平台的效果.于是使用JSON便成为热点. unit uJSONDB;   interface uses SysUtils, Classes, Variants, DB, DBClient, SuperObject, Dialogs; type TJSONDB = class   private class function getJsonFieldNames(res: ISuperObject):TStringList ;…
最近维护一个项目,里面用到ClientDataSet,由于之前接触ClientDataSet比较少,所以这个星期补了一下关于ClientDataSet的知识,并在此记录下我所了解到的并应用到实际项目中的ClientDataSet的知识. 项目新需求:1.从别的数据库导入物料资料,并允许操作员做修改后保存提交:2.从别的数据库导入价格资料,并允许操作员做出修改并保存:3.记录相应的日志.4.允许操作员过滤关键字查找. (PS:项目的数据连接模式为:ADOConnection→ADOQuery→Da…
场景,程序想检查是否存在某个字段的值是空的,如果存在,则不允许增加记录,否则允许增加记录. 解决这个问题,我一开始用了两种错误的方法 if not clientdataset.locate('AFieldName','',[]) then //如果存在字段AFieldName的值为空的记录,则不允许增加一行记录append clientdataset.append else exit; 第二种错误方法 ClientDataset.Filtered := false; ClientDataset.…
使用ADO控件 .ClientDataSet .增加了从表与主表的关连字段 SheetID,别的设置全为默认.如图1所示 图1 ======= 问题 BUG: 打开主表与从表,先不对主表进行任何操作.图2所示. 图2 在从表编辑中,使用 ClientDataSet2.Delete; 进行对从表进行删除行,将该SheetID(B41170600011)的从表的所有行删除.如图3所示. 图3 在进行图3操作时,鼠标焦点不要点击主表结构,在删除完从表的数据后直接点击主表的所对应的字段,不要点到别的字段…
TField对象的SetText和GetText事件处理函数 使用TField对象的SetText和GetText事件处理函数可方便的解决字段的代码与代码所对应值的显示问题 TSimpleDataset/TClientDataset对象的Aggregation 使用TDataset对象的Aggregate属性可以来计算客户端数据集中数据的总计数值.平均值或是计算最大值和最小值. 使用TBookMark来标记记录书签, 访问数据集中的数据 通过使用TBookMark以及TDataset对象的 Bo…
非原创  摘自:http://hi.baidu.com/yagzh2000/blog/item/fc69df2cb9845de78b139946.html三层中主从表的操作(删除.新增.修改)一定要在一个事物中完成,那在Delphi中的事物又如何控制呢?我们在开发客户端时,如果为了在一个事物中而用TSqlConnection的事物来控制是徒劳的,没有一点意义,因为真正事物控制是在服务端的TDataSetProvider中产生的,它是自动产生事物的,如果有错误产生,它会回滚事物. 当客户端的Cli…
clientdataset.open 报错  Name not unique in this context clientdataset有一些自定义字段,clientdataset绑定了adoquery,但是看字段没有重复,clientDataSet的字段和ADOQuery的字段也没有重复. adoquery.open(); cds1.open();//error 与ADOQuery无关,单独打开 ds3->Open();也报错 绕了一大圈,才是某个字段不存在引起的. 2018.10.15 是的…
1.   与TTable.TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端.很多数据库应用程序都用了BDE,BDE往往给发布带来很大的不便,因而TClientDataSet最大的特点是它不依赖于BDE(Borland Database Engine),但它需要一个动态链接库的支持,这个动态链接库叫DBCLIENT.DLL.在客户端,也不需要用TDatabase构件,因为客户端并不直接连接数据库.由于TClientDataSet是从TD…
ClientDataSet的数据查找.我所介绍的心得和技巧都是用ClientDataSet来做范例,也可以应用于其他的一些DataSet.废话就不多说了.我们还是先看代码,让后再总结.1.Scanning 扫描数据查找这是最简单最直接也是最慢的一种方法,遍历所有数据:procedure TForm1.ScanBtnClick(Sender: TObject);varFound: Boolean;beginFound := False;ClientDataSet1.DisableControls;…
mormot中间件成功匹配客户端FDMemTable和ClientDataSet…
Delphi中ClientDataSet的用法小结 TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件.该控件封装了对数据进行操作处理的接口和功能,而本身并不依赖上述几种数据库驱动程序,基本上能满足单机"瘦"数据库应用程序的需要. 一.TClientDataSet的基本属性和方法介绍 1.FieldDefs: 字段定义列表属性 开发者可通过单击属性编辑器中该属性编辑按钮,或在该控件上单击右键选择弹出菜单中的&q…
ClientDataSet.First;while not ClientDataSet.eof dobegin  ClientDataSet.edit;  ClientDataSet.FieldByName('行号字段').asInteger := ClientDataSet.RecNo;  ClientDataSet.next;end;…
ClientDataSet字段不能进行编辑时的解决方法: procedure ModifyClientDataSet(const YesOrNot: Boolean;  cs : TClientDataSet);var  i : Integer;begin  // 当 YesOrNot 为 true 时为只读  为false 是可进行修改  for i := 0 to cs.FieldCount -1 do  begin    cs.Fields[i].ReadOnly := YesOrNot;…
1.  需要2个ClientDataSet组件: 2.  clientDataSet1连接目标表,clientDataSet2连接源表,如果无法直接连接,使用DataSetProvider进行桥接: 3.  复制clientDataSet2结构到clientDataSet1: for I := 0 to clientDataSet2.FieldDefs.Count-1 do fieldNames:=fieldNames+clientDataSet2.FieldDefs[i].Name+';';…
​​​将Delphi升级到10.1.2后,从客户端传ClientDataset的Delta数据到服务端程序时,出现var and out arguments must match parameter错误.后来查了服务端程序的相应函数: UpdateDelta(const vDelta: OleVariant;strTableName,strKeyFieldName,strFieldList:String): String; 该函数的定义与客户服生成的接口文件ServerMethods.pas​中…
https://community.embarcadero.com/index.php/blogs/entry/firedac-in-memory-dataset-tfdmemtable ClientDataSet FieldDefs Add Field CreateDataSet 动态创建字段 FDMemTable1.Close(); FDMemTable1.FieldDefs.Clear(); FDMemTable1.FieldDefs.Add('ID', ftInteger, 0, Tru…
delphi 10.1 berlin datasnap提交clientdataset.delta报:invalid variant type conversion(类型转换错误)问题的解决,需要打这个补丁:30530_hotfix_for_datasnap 打了补丁以后,经测试,问题解决. DataSnapServer240.bpl这个包一定要覆盖.…
ClientDataSet的版本兼容性 在Delphi的早期版本中,Data这个Variant类型的值内部使用的是AnsiString来存贮的字节流,但我并不确定Delphi从什么时候开始,将其改为了Byte数组类型,你可以通过VarType函数来检测它的类型. 1.将数据集的Data保存到MessagePack协议数据流或文件: var    AMsgPack:TQMsgPack; begin   AMsgPack:=TQMsgPack.Create;   ...   AMsgPack.AsV…
ClientDataSet + DataSetProvider  +FDQuery 有 bug ClientDataSet + DataSetProvider  +ADOQuery正常. ClientDataSet 没有变,问题就出在DataSetProvider  和FDQuery 之间.FDQuery 单独执行sql语句正常.DataSetProvider  与FDQuery 之后sql的结果就有错误了.…
dbgrid是用来在界面上显示数据的,需要连接源dbgrid1.datasource := datasource1; datasource:作为dbgrid,clientDataset的连接桥梁,需要数据集datasource1.dataset := clientDataSet1; 一个简单的例子如下: uses db,midaslib;//没有midaslib会出现缺少midas.dll,就算系统注册midas.dll,运行程序还是会报内存错误: procedure TForm1.FormCr…
一个ClientDataset的Delta与XML相互转换的文章: 大家都知道TClientDataSet的Delta属性保存数据集的变化,但是Delta是OleVariant类型的属性,这样如果用Delphi写Webservice,就有需要把它转成XML,特别是其他语言也要用这个Webservice的时候,因为如果Delta能和XML相互转换,Delta包的结构就是透明的了.而TClientDataSet却没有提供DeltaXML这样的属性,之前在网上找了一下,发现网上的都是把Delta赋给另…
Linux ClientDataSet libmidas.so.2 DELPHI LINUX程序使用CLIENTDATASET控件,部署的时候需要libmidas.so,相当于WINDOWS程序的MIDAS.DLL. DELPHI 10.2 TOKYO发布却漏掉了这个.现在终于可以提供下载了. 官方下载地址: http://cc.embarcadero.com/item/30765 官方推荐用FDMEMTABLE替代CLIENTDATASET,老程序才使用CLIENTDATASET. 在DELP…
UNIDAC不能识别CLIENTDATASET的TSINGLEFIELD FIREDAC,UNIDAC这些通用的数据引擎,对某种数据库的支持,细节方面总有BUG. UNIDAC6.2.8发现不能识别CLIENTDATASET的TSINGLEFIELD,一改为TFLOATFIELD,立马就能识别.…
看到一篇介绍ClientDataSet和TDataSetProvider,非常精彩,特此保存. =========================================================================== TClientDataSet用法 第十一章 TClientDataSet 与TTable.TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端.TClientDataSet最大的特点是它不依赖于…
DELPHI +ClientDataSet+DBGRIDEH  进行排序因为使用了DBX+ClientDataSet,所以排序显得简单些,只需要设定几个属性就OK了.1.DbGridEH 中设定:OptionsEh中dghAutoSortMarking:=True; SortLocal:=True; Columns的Title.TitleButton:=True; 2.在单元中引用 EhLibCDS 这样就实现了点击title进行排序,而且不回资料库再捞资料. (追加备注:在使用发现如果设定了C…
ClientDataSet中使用Post提交变更的数据时,实际上并没有更新到后端数据库中,而是提交到了由DataSnap管理的数据缓冲区中.当使用了ClientDataSet.ApplyUpDates(MaxErrors:integer)方法才更新到数据库中.ApplyUpDates方法也只更新修改的数据,这些数据放在ClientDataSet.Delta属性中.调用AppplyUpDates更新到数据库的同时Delta中的数据也会被清空,注意最后的对话框.下面对数据进行修改,删除等操作,并查看…
delphi Midas SQLServer的自增字段的处理1.新增时,表中有自增字段,但是不希望用Refresh,直接ApplyUpdates直接看见自增字段的值在DataSetProvider.AfterUpdateRecord写如下代码 .DataSetProvider.Options.poPropogateChanges:=True; .procedure TForm1.DataSetProvider1AfterUpdateRecord(Sender: TObject; .SourceD…
  clientdataset的使用(一) Delphi做为一个快速应用开发工具,深受程序员的喜爱.其强大的组件功能,让程序员能够轻松. 高效地完成常见的界面开发.数据库应用等功能.然而,帮助的相对缺乏,使得许多组件的功能并 不为人们正确地使用,究其原因,仍然是认识上的问题.对于MIDAS开发中的核心部件, TClientDataSet 和TDataSetProvider,由于资料的缺乏,人们在网上大多谈论的是李维的书籍内容 .我有幸在BDN上见到了Cary Jensen的Professiona…