熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PB編程 >> 正文

PB中數據窗口的多表更新[2]

2013-11-23 17:27:40  來源: PB編程 

  函數思路

   先針對第一個數據庫表調用Update函數更新注意參數的使用第一個參數作用是控制數據窗口更新前是否強制性調用AcceptText()在數據窗口更新前通過有效性驗證第二個參數是控制更新標志的復位為True時更新標志復位為False時更新標志不復位

   更改數據窗口的UpdateTable屬性使其指向第二個表並把第一個表的各數據項Update屬性和主鍵列的Key屬性改為No接著把第二個表的各數據項Update屬性和主鍵列的Key屬性改為Yes

   調用Update函數更新第二個表

   兩表更新成功後把兩表的列屬性主鍵屬性改回到初始狀態以便為下一次的兩表更新調用做好准備

  程序清單

  // ColName:數據窗口列名

  // Name[]Name[]:兩數據庫表選中項列名

  // nn:兩數據庫表選中項數量

  // i:循環計數器

  // Columns:數據窗口總列數

  String ColNameName[]Name[]

  Integer Columnsin=n=

  //下面程序找出dw―obj的兩表列名賦給Name[]Name[]

  Columns=Integer(dw―objDescribe(″DataWindowColumnCount″))

  FOR i= TO columns

  ColName=Upper(dw―objDescribe(″#″+String(i)+″Name″))

  IF Left(ColNameLen(Table))=Table and ColName〈〉Key THEN

  n=n+

  Name[n]=ColName

  END IF

  IF Left(ColNameLen(Table))=Table and ColName〈〉Key THEN

  n=n+

  Name[n]=ColName

  END IF

  NEXT

  // 下面程序存儲dw―obj確定返回值(True:成功False:失敗)

  IF dw_objUpdate(TrueFalse)= THEN

  FOR i= TO n

  dw―objModify(Name[i ]+″Update=No″)

  NEXT

  dw―objModify(Key+″Key=No″)

  dw―objModify(″DataWindowTableUpdate

  Table=′ ″+Table+″ ′ ″)

  FOR i= TO n

  dw―objModify(Name[i ]+″Update=Yes″)

  NEXT

  dw―objModify(Key+″Key=Yes″)

  IF dw―objUpdate()= THEN

  Commit;

  FOR i= TO n

  dw―objModify(Name[i ]+″Update=Yes″)

  NEXT

  dw―objModify(Key+″Key=Yes″)

  dw―objModify(″DataWindowTableUpdateTable=′ ″+Table+″ ′ ″)

  FOR i= TO n

  dw―objModify(Name[i ]+″Update=No″)

  NEXT

  dw―objModify(Key+″Key=No″)

  return True

  ELSE

  Rollback;

  return False

  END IF

  ELSE

  Rollback;

  return False

  END IF

  調用方法

  假設窗口名為w―update數據窗口為dw―數據庫表名和主鍵名分別為ttkk放置存盤按鈕按鈕Clicked事件的Script

  語句如下

  dw_AcceptText()

  IF dw―ModifiedCount()〉 or dw_DeletedCount()〉 THEN

  IF MessageBox(″提示信息″″是否存盤?″Question!YesNo!)= THEN

  IF f―update―table(dw―″t″t″k″k″) THEN

  Commit;

  ELSE

  Rollback;

  END IF

  END IF

  END IF

  綜上所述可以看出該方案具有很好的可擴展性稍加修改即可解決多表作為數據源的數據窗口的同步更新問題

       編輯推薦

       JEE高級框架實戰培訓視頻教程

       數據倉庫與數據挖掘培訓視頻教程

[]  []  


From:http://tw.wingwit.com/Article/program/PB/201311/24631.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.