Foxtable(狐表)用户栏目专家坐堂 → 一个奇怪的问题,写非狐表建立的表的问题


  共有4037人关注过本帖树形打印复制链接

主题:一个奇怪的问题,写非狐表建立的表的问题

帅哥哟,离线,有人找我吗?
hitzfeld
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:5184 威望:0 精华:0 注册:2017/9/1 23:28:00
一个奇怪的问题,写非狐表建立的表的问题  发帖心情 Post By: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有执行)。虽然能实现写表了。但是还是不理解为什么要这样才能正确写入?学生愚钝,请老师指教。



 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:5184 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2022/1/27 1:21:00 [只看该作者]

谢谢蓝老师!我又学习到新内容了。
但是对于原理还是没能理解(主要是不明白为什么是空行),您如果有空能给讲解下吗?谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/27 8:41:00 [只看该作者]

非自增主键的表,不能使用table.addnew新增,而必须使用datatable.addnew新增,并且必须给主键列赋值

 回到顶部
帅哥哟,离线,有人找我吗?
hitzfeld
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:5184 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2022/1/28 3:54:00 [只看该作者]

感谢蓝老师的耐心指点!图片点击可在新窗口打开查看

 回到顶部