远程视图插入新数据后, 作为主键的标识列的值只能requery()才能得到刷新吗?
在SQLSERVER中做了个测试表, 表中有一个自增量标识列ID设置为主键,在VFP中做了个远程视图, 设置ID为主键, 更新条件中ID设置不更新
然后做了个表单, 数据环境添加了这个远程视图, 表单中用一个Grid操作这个视图
现在就象在操作本地表的感觉了,
增加一条新记录, ID值不处理, 随便弄几个数据进其它字段
再增加新记录, ID值仍然不处理, 只是保证其它字段不全为空
增加若干新记录, 会看到ID值本应当自增量, 结果全部保持为空.
现在转到SQL里面直接查看, ID值正常自动增量
回到VFP中requrey(), Grid刷新, 得到正常的ID值
现在进一步试验, 把所有的ID乱改值, 结果如猜想的一样, 没有任何不良影响(这个好理解, 更新条件已经设置为不更新了嘛)
但有一点搞不明白的是:
1.主键是ID, 现在本地视图主键看起来已经失效了, 系统是如何保证远程更新的主键对比的呢?
2.假设视图其实控制着另一个表, 主键与SQLSERVER同步, 没有理由让视图显示无效的ID值啊, 完全可以让ID同步体现SQLSERVER里的值啊,
这样某种情况下如果主键能用上的话, 就不必requery()了, 能节约网络和服务器开销
3.以上情况是不是说明, 当在视图设计时, 把主键设置为不更新后, 随后对视图的所有操作都可以忽略主键(不需要做任何维护)呢?