如何使用delphi将Clientdataset的Delta保存到数据库中


本文摘自PHP中文网,作者一个新手,侵删。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

[delphi]

 view plain copy

//ATableName-表名, AKeyField-主键,多个主键用;隔开,如 ;pid;times;  from:unit HlsImplBase;

[delphi] view plain copy

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;

以上就是如何使用delphi将Clientdataset的Delta保存到数据库中的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

如何使用delphi将Clientdataset的delta保存到数据库中

更多相关阅读请进入《Clientdataset》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...