delphi把Clientdataset的Delta保存到数据库
//ATableName-表名, AKeyField-主键,多个主键用;隔开,如 ;pid;times; from:unit HlsImplBase;
function THlsImplBase.UpdateTableData(ATableName, AKeyField: AnsiString; var AData: Variant): Boolean; var LSql: string; LDataSet: TDataSet; LProvider: TProvider; LErrCount: Integer; I: Integer; begin Result := False; if ATableName = '' then Exit; if AKeyField = '' then Exit; LSql := 'select * from ' + ATableName + ' where 1 = 2'; LDataSet := CreateDataSet(LSql); if not Assigned(LDataSet) then Exit; LProvider := TProvider.Create(nil); LProvider.UpdateMode := upWhereKeyOnly; LProvider.DataSet := LDataSet; AKeyField := LowerCase(AKeyField); for I := 0 to LDataSet.FieldCount - 1 do begin if (LowerCase(LDataSet.Fields[I].FieldName) = AKeyField) or (Pos(';' + LowerCase(LDataSet.Fields[I].FieldName) + ';', AKeyField) > 0) then LDataSet.Fields[I].ProviderFlags := LDataSet.Fields[I].ProviderFlags + [pfInKey] else LDataSet.Fields[I].ProviderFlags := []; end; try try LProvider.ApplyUpdates(AData, -1, LErrCount); except end; Result := LErrCount = 0; finally LDataSet.Free; LProvider.Free; end; end;
好的代码像粥一样,都是用时间熬出来的
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2019-08-04 delphi 中配置文件的使用(*.ini)和TIniFile 用法
2019-08-04 Delphi 字符串加密与解密函数
2019-08-04 Delphi编写的等长加密与解密
2019-08-04 java和delphi共用的des加密解密
2019-08-04 delphi读写INI系统配置文件
2019-08-04 1.ini读写操作
2019-08-04 【经验】Delphi INI文件保存与读取