技术开发 频道

在VFP上使用DM数据库

  Visual FoxPro的游标有三种:只读游标、可读写游标、可更新游标。

  1.只读游标是那种不能被修改的游标。

  2.可读写游标是那种可以进行读写操作,但游标上的数据变更不被反映到数据源。

  3.可更新游标是那种可以进行读写操作,并且任何数据变动都会反映到数据源。

  也就是说,我们想要通过游标在VFP更新DM数据库中的表,需要的是一个可更新游标。

  很遗憾,上述通过SQLEXEC()函数直接取得的游标,是一个可读写游标,也就是说如果我们修改mycursor中的值,VFP不会将修改同时更新到DM上。

  这样可达不到我们使用DM的目的,所以在使用mycursor之前,我们还需要将游标mycursor设置为可更新游标。

  VFP提供了设置游标属性的函数,使用方法如下:

  设置可更新游标共有5步

  A.CURSORSETPROP("TABLES",数据源表名,可更新光标名)

  此步骤设定的是数据源里(SQL Server)待更新的表名,如果涉及多个表就这样写:CURSORSETPROP("TABLES","T1,T2","MyCursor")。

  B.CURSORSETPROP("KEYFIELDLIST",关键字段,可更新光标名)

  此步骤是设定关键字段的,这个关键字段是这可更新光标的字段,而不是数据源里字段。

  C.CURSORSETPROP("UPDATABLEFIELDLIST",可更新字段列表,可更新光标名)

  此步骤设定的是在可更新光标里哪些字段的变动要被反映到数据源,即哪些字段时可更新的。

  D.CURSORSETPROP("UPDATENAMELIST",前后段字段对应关系列表,可更新光标名)

  此步骤设定前后端字段的对应关系。

  E.CURSORSETPROP("SENDUPDATES",.T.,可更新光标名)

  按上述步骤,设置游标为可更新游标:

  CURSORSETPROP("Tables","TBL_VFP_DM","mycursor")

  CURSORSETPROP("KeyFieldList","ID,NAME,CONTENT","mycursor")

  CURSORSETPROP("UpdatableFieldList","ID,NAME,CONTENT","mycursor")

  CURSORSETPROP("UpdateNameList","ID TBL_VFP_DM.C1,NAME

  TBL_VFP_DM.C2,CONTENT TBL_VFP_DM.C3","mycursor")

  CURSORSETPROP("SendUpdates" ,.t.,"mycursor")

 

0
相关文章