以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  一个奇怪的问题,写非狐表建立的表的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174664)

--  作者:hitzfeld
--  发布时间:2022/1/25 17:49:00
--  一个奇怪的问题,写非狐表建立的表的问题
最近在做金蝶的数据库,发现了一个奇怪的问题?如果是狐表的表,新增记录我们直接addnew就可以了。但是非狐表的表引入之后,要写入记录则要加下面的代码:
Tables("t_item").addnew   \'t_item是金蝶的表
Tables("t_item").Position =0
With Tables("t_item")
    .Position = .Rows.Count - 1
End With
\'写自己要的代码
Tables("t_item").current.save
如果不加Position哪段代码,则写入的必定是空行?(空行的意思是,addnew之后的全部代码都不执行,但是save有执行)。虽然能实现写表了。但是还是不理解为什么要这样才能正确写入?学生愚钝,请老师指教。



--  作者:有点蓝
--  发布时间:2022/1/25 20:39:00
--  
如果不是foxtable默认的主键,而是自定义主键的。应该这样操作

dim dr as datarow = dataTables("t_item").addnew 
dr("主键列") = "xxx"
dr("某某列") = "xxx"
dr.save

dim idx as integer = Tables("t_item").findrow(dr)
Tables("t_item").Position =idx

--  作者:hitzfeld
--  发布时间:2022/1/27 1:21:00
--  
谢谢蓝老师!我又学习到新内容了。
但是对于原理还是没能理解(主要是不明白为什么是空行),您如果有空能给讲解下吗?谢谢!

--  作者:有点蓝
--  发布时间:2022/1/27 8:41:00
--  
非自增主键的表,不能使用table.addnew新增,而必须使用datatable.addnew新增,并且必须给主键列赋值
--  作者:hitzfeld
--  发布时间:2022/1/28 3:54:00
--  
感谢蓝老师的耐心指点!图片点击可在新窗口打开查看