Foxtable(狐表)用户栏目专家坐堂 → 为什么偶尔会出现增加记录为空值?


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

主题:为什么偶尔会出现增加记录为空值?

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


加好友 发短信
等级:婴狐 帖子:41 积分:579 威望:0 精华:0 注册:2014/5/3 10:42:00
为什么偶尔会出现增加记录为空值?  发帖心情 Post By:2014/5/19 21:06:00 [只看该作者]

我设计了一个码单输入窗口,控件采取不绑定表字段的方式,在输入最后一个控件值经校验确认后执行addnew()增添记录命令。

同时将本日流水表以及总流水表增加一行记录,然后给每个字段分别赋上对应控件的值。同时,命令打印机输出打印标签。

目前基本运行正常。

但是,突然今天发现,有一次出现本日流水表出现了空白记录而与之对应的总流水是正常记录,而另一次是本日流水表是正常记录,而总流水对应了一条空白记录。

 

对此,我想请教大师:

 

1. 是否需要在代码中加入校验程序,以确保每次addnew()后再给每个字段赋值的行为获得了成功?

 

2. 到底是什么原因造成了这种情况?

 

3. 改用INSERT INTO这样的SQL语句是否能保证不出错?

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/19 21:13:00 [只看该作者]

 偶尔出现?你的是网络环境?如果是网络环境,有可能是记录没有被及时的保存进去。

 

 如果是网络环境,建议你新增一行的时候,马上save这一行,确保数据保存了。

 

 又或者你用insert into,这样直接新增会好一些,记得加上事务 http://www.foxtable.com/help/topics/2933.htm

 


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


加好友 发短信
等级:婴狐 帖子:41 积分:579 威望:0 精华:0 注册:2014/5/3 10:42:00
  发帖心情 Post By:2014/5/19 21:32:00 [只看该作者]

我还只是先用的单机环境。

 

我现在重新审查了如下代码:

       Dim r As Row = Tables("lot").addnew()
       Dim r1 As Row = Tables("newline").addnew()

            r("orderno")=Ord1
            r("net")=e.Form.controls("numericcombobox1").value
            r("loss")=e.Form.controls("numericcombobox2").value
            r("gross")=r("net")+r("loss")
            r("dyelot")=e.Form.controls("textbox1").value
            r("lot")=e.Form.controls("textbox15").value
            r("art_no")=art1
            r("art_name")=artname
            r("color_no")=Col1
            r("inspdate")=Date.Today
            r("bar") = barcd
            r("roll")=rollnum
            r("inspector")="A"
            r1("orderno")=Ord1
            r1("net")=e.Form.controls("numericcombobox1").value
            r1("loss")=e.Form.controls("numericcombobox2").value
            r1("gross")=r("net")+r("loss")
            r1("dyelot")=e.Form.controls("textbox1").value
            r1("lot")=e.Form.controls("textbox15").value
            r1("art_no")=art1
            r1("art_name")=artname
            r1("color_no")=Col1
            r1("inspdate")=Date.Today
            r1("bar") = barcd
            r1("roll")=rollnum
            r1("inspector")="A"
            DataTables("newline").save()
            DataTables("lot").save()

 可能是应该分别增加和赋值并存盘,而不是像现在这样一起增加,赋值,再存盘。

当然我可能应增加记录检查代码。

  



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/19 21:36:00 [只看该作者]

代码应该是没什么错的。看看是不是对应的事件印象了,比如 datacolchanged 事件,赋值的时候影响到也不一定。

 回到顶部