DataSnap服務器生成的ID自動更新到客戶端

好久沒有去動Delphi了,忽然興起作個小程序,一個表的ID,在服務器端的應用服務器上生成,如何刷新到客戶端?小程序

查看了TDataSetProvider的Options屬性,比之前增長了一個poPropogateChanges,解釋以下:服務器

Changes made by the server to updated records as part of the update process are sent back to the client and merged into the client dataset.ide

 

代碼在服務器端TDataSetProvider的BeforeUpdateRecord事件中,生成ID,以下:spa

    if UpdateKind = ukInsert then
      DeltaDS.FieldByName('DRUG_INFO_ID').AsInteger:= GetPrimaryKey('T_DRUG_INFO','DRUG_INFO_ID');
   
server

客戶端ApplyUpdates(0) 後,發現ID仍然沒有更新,百思不得其解,後來將AsIneger改爲NewValue,一切就行了,真是無語....事件

  if UpdateKind = ukInsert then
        DeltaDS.FieldByName('DRUG_INFO_ID').NewValue := GetPrimaryKey('T_DRUG_INFO','DRUG_INFO_ID');
io

相關文章
相關標籤/搜索