Foxtable(狐表)用户栏目专家坐堂 → [求助]反馈一个严重的存储过程发现的问题


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

主题:[求助]反馈一个严重的存储过程发现的问题

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


加好友 发短信
等级:小狐 帖子:361 积分:3810 威望:0 精华:0 注册:2012/4/16 20:20:00
[求助]反馈一个严重的存储过程发现的问题  发帖心情 Post By:2018/8/24 12:04:00 [只看该作者]

问题是:新增行执行保存代码后,不会在后台数据库生成新的数据行,而是覆盖旧有的数据行,造成数据丢失。
1、用的是sql数据源,发生问题时网络状况不良。
2、用的狐表的保存代码:
dim r as row = tabels(“XXX“).addnew
....
r.save

3、发生问题的数据表中已经执行了近8000笔的数据操作,这是第一次发现这种情况,连续两笔操作,分别覆盖到[Identify]为1 和 3 的原数据行。
---------

数据安全是排在首位的,请官方分析狐表的存储过程,看看问题是怎么发生,要不然写出来的软件用的提心吊胆的。

@狐狸爸爸


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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/24 12:18:00 [只看该作者]

狐表没有使用存储过程,是逐条保存的。

相关操作的完整代码,或者实例请发上来测试。

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


加好友 发短信
等级:小狐 帖子:361 积分:3810 威望:0 精华:0 注册:2012/4/16 20:20:00
  发帖心情 Post By:2018/8/24 12:31:00 [只看该作者]

具体情况就是我1楼所说的,当时的情形已过去了,不可复制。我也没办法拿出实例给你。
请你们分析在各种极端网络情况下,有没有可能出现我所说的情况!
这很重要,望重视!!

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/24 13:42:00 [只看该作者]

恩,我们测试一下,看能不能出现这种问题

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


加好友 发短信
等级:七尾狐 帖子:1711 积分:16021 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/8/24 13:54:00 [只看该作者]

先删除,再更新,再保存,这样的语句也出问题,会经常自动增加很多记录,没找到规律
Dim tran As System.Data.SqlClient.SqlTransaction
try
    Dim conn As new System.Data.SqlClient.SqlConnection("server=voyo;uid=sa;pwd=hailun.;database=Test")
    conn.Open() '打开链接
    tran = conn.BeginTransaction()
    Dim mapping1 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("第一列", "第一列")
    Dim mapping2 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("第二列", "第二列")
    Dim copy As new System.Data.SqlClient.SqlBulkCopy(conn, System.Data.SqlClient.SqlBulkCopyOptions.Default, tran)
    Copy.ColumnMappings.Add(mapping1)
    Copy.ColumnMappings.Add(mapping2)
    copy.DestinationTableName = "表D" '指定服务器上目标表的名称
    copy.WriteToServer(DataTables("表D").basetable)   '你的datatable名字,执行把DataTable中的数据写入DB
    tran.Commit()                                  '提交事务
    msgbox("OK")
catch ex As exception
    msgbox(ex.message)
    tran.Rollback()    '返回False 执行失败!
End try

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/24 14:36:00 [只看该作者]

以下是引用xxfoxtable在2018/8/24 13:54:00的发言:
先删除,再更新,再保存,这样的语句也出问题,会经常自动增加很多记录,没找到规律
Dim tran As System.Data.SqlClient.SqlTransaction
try
    Dim conn As new System.Data.SqlClient.SqlConnection("server=voyo;uid=sa;pwd=hailun.;database=Test")
    conn.Open() '打开链接
    tran = conn.BeginTransaction()
……

肯定和这个用法没有关系,是你自己处理逻辑出错

 回到顶部