delphi把Clientdataset的Delta保存到数据库

  1. //ATableName-表名, AKeyField-主键,多个主键用;隔开,如 ;pid;times;  from:unit HlsImplBase;  
  1. function THlsImplBase.UpdateTableData(ATableName, AKeyField: AnsiString; var AData: Variant): Boolean;  
  2. var  
  3.   LSql: string;  
  4.   LDataSet: TDataSet;  
  5.   LProvider:  TProvider;  
  6.   LErrCount: Integer;  
  7.   I: Integer;  
  8. begin  
  9.   Result := False;  
  10.   if ATableName = '' then Exit;  
  11.   if AKeyField = '' then Exit;  
  12.   
  13.   LSql := 'select * from ' + ATableName + ' where 1 = 2';  
  14.   LDataSet := CreateDataSet(LSql);  
  15.   if not Assigned(LDataSet) then Exit;  
  16.   
  17.   LProvider := TProvider.Create(nil);  
  18.   LProvider.UpdateMode := upWhereKeyOnly;  
  19.   LProvider.DataSet := LDataSet;  
  20.   AKeyField := LowerCase(AKeyField);  
  21.   for I := 0 to LDataSet.FieldCount - 1 do  
  22.   begin  
  23.     if (LowerCase(LDataSet.Fields[I].FieldName) = AKeyField) or  
  24.         (Pos(';' + LowerCase(LDataSet.Fields[I].FieldName) + ';', AKeyField) > 0then  
  25.       LDataSet.Fields[I].ProviderFlags := LDataSet.Fields[I].ProviderFlags + [pfInKey]  
  26.     else  
  27.       LDataSet.Fields[I].ProviderFlags := [];  
  28.   end;  
  29.   try  
  30.     try  
  31.       LProvider.ApplyUpdates(AData, -1, LErrCount);  
  32.     except  
  33.     end;  
  34.     Result := LErrCount = 0;  
  35.   finally  
  36.     LDataSet.Free;  
  37.     LProvider.Free;  
  38.   end;  
  39.     
  40. end
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi中,DBGridEh是一个非常常用的数据表格控件,它可以用于显示和编辑数据库中的数据。而LookupDisplay是DBGridEh中的一个属性,用于提供表格中关联表字段的显示值。 通常情况下,DBGridEh的LookupDisplay属性用于显示关联字段的显示值,该值将从关联表中获取。在使用DBGridEh时,需要使用ClientDataSet组件来提供数据。ClientDataSet是一种内存数据集,可以在客户端应用程序中存储和处理数据。 要在DBGridEh中使用LookupDisplay属性,首先需要在ClientDataSet中定义关联字段。关联字段是指与主表的某个字段关联的从表的字段。在ClientDataSet的字段编辑器中,可以通过设置LookupDataset、LookupKeyFields和LookupResultField属性来定义关联字段。 LookupDataset属性用于指定从表所在的ClientDataSet组件,LookupKeyFields属性是用来指定主表与从表关联的字段名,LookupResultField属性则是用来指定从表中要显示的字段名。 然后,在DBGridEh的Columns属性中找到需要显示关联字段的列,将这些列的LookupDisplay属性设置为True。这样,DBGridEh将会自动从关联表中获取相应的显示值,并在表格中显示出来。 总的来说,使用Delphi中的DBGridEh和ClientDataSet组件,可以很方便地实现表格中两列的LookupDisplay功能,即从关联表中获取显示值并显示在表格中,提供更友好的用户界面和数据交互体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值