Foxtable(狐表)用户栏目专家坐堂 → 利用下拉窗口进行赋值,该怎么改成事务的方式处理啊?


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

主题:利用下拉窗口进行赋值,该怎么改成事务的方式处理啊?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
利用下拉窗口进行赋值,该怎么改成事务的方式处理啊?  发帖心情 Post By:2019/9/6 9:33:00 [只看该作者]

下拉窗口的dropdownclosed事件:
If e.Form.dropdownbox.name="启动fa piao结转"
    If e.Selected Then '如果选择了值
        Dim tbl As Table = Tables("增加合同下拉窗口_table1")
        If tbl.Current IsNot Nothing Then
            Tables("租赁合同结转情况表").current("合同编号")=tbl.current("合同编号")
            Tables("租赁合同结转情况表").current("合同属性")=tbl.current("合同属性")
    Tables("租赁合同结转情况表").current("合同状态")=tbl.current("合同状态")
            Tables("租赁合同结转情况表").current("项目名称")=tbl.current("项目名称")
        End If
    End If
End If
引用下拉窗口的dropdownbox 所在的模式窗口(窗口控件已绑定表字段)的 确定按钮
Dim drr1 As Row = Tables("租赁合同结转情况表").current
If e.Form.Controls("启动fa piao结转").value Is Nothing
    messagebox.show("合同相关信息不能为空")
Else
    drr1("创建日期")=rq
    drr1("创建人")=_UserName
    drr1.save
endif

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/9/6 9:34:55编辑过]

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


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

没看懂。有什么问题?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2019/9/6 10:17:00 [只看该作者]

以上利用下拉窗口进行赋值的操作,怎么改成帮助中,"数据库事务"的方式赋值啊?如果采用这种方式,窗口的控件是不是就不能绑定到表字段啊?

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/6 10:22:00 [只看该作者]

这种无法使用事务,事务只能使用sql更改数据才有用。

这个用法到底有什么问题?和控件绑定有什么关系?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2019/9/6 10:29:00 [只看该作者]

问题是:点击 确定按钮后,增加的数据量(我贴到只是部分赋值操作)比较大,不用 事务处理,怕用户端的操作没有执行完毕啊。
我的思路是(还没测):把窗口的控件跟表字段不关联,然后 点击 确定 按钮后,执行sql insert语句,把窗口控件的值传给 insert的value参数,如果sql没执行完毕,就回滚。不知道思路对不对啊。

如果这个思路没问题的话,insert成功后,怎么找到这一行(找到_identify),追载或加载到用户本地啊?
[此贴子已经被作者于2019/9/6 10:38:30编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/6 10:40:00 [只看该作者]

不管窗口控件有多少个,如果都是绑定一行数据,那么没有必要使用事务。除非是涉及到几个表的数据需要同步操作。这时可以使用sql进行事务操作

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2019/9/6 16:54:00 [只看该作者]

Try
     Connections("cs2").BeginTransaction() '开始事务
      Dim cmd As new SQLCommand
      cmd.C

      cmd.CommandText = "Insert Into 租赁合同结转情况表……     ‘第一次新增操作
      cmd.ExecuteNonQuery
      ……
      cmd.CommandText = "Insert Into 租赁合同结转情况表……    ’第二次新增操作
      cmd.ExecuteNonQuery
     ……
      查询 第一次新增的行是否存在——应该怎么写代码(功能是需要步骤项某一行写数据,执行下边的update。想实现若存在符合条件的行就update,不存在就insert)? 可以用sqlfind查找吗? Dim drf As DataRow=DataTables("租赁合同结转情况表").sqlfind(……
      cmd.CommandText = "UPDAT  ……
      cmd.ExecuteNonQuery

       ……
      cmd.CommandText = "Insert Into 租赁合同结转情况表……    ’第三次新增操作
      cmd.ExecuteNonQuery

        Connections("cs2").Commit

     Catch ex As Exception '如果出错
        Connections("cs2").Rollback() '回滚事务,撤销所有操作
   End Try

[此贴子已经被作者于2019/9/6 16:58:28编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/6 16:55:00 [只看该作者]

事务没有结束,无法查询新增的数据的。

dim cnt as integer = cmd.ExecuteNonQuery
if cnt > 0 then msgbox(插入成功)

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2019/9/6 17:26:00 [只看该作者]

目前需求是这样的,
有一个接口传输来的数据:
编号   类别     金额
A01   租金     10            json第1条数据
A01   服务费   11           json第2条数据
A01   违约金   12            json第3条数据
……
接收数据的表结构:
编号   租金金额     服务费金额   违约金金额     ……
A01    10             11               12

因为接收的数据比较多,我想用事务进行处理:
目前做法是:
1、循环json,
2、看是否有编号为 A01 的行,若不存在则 insert,否则update。
但是若事务未提交,则怎么判断,是否insert过符合条件的行啊?
或者我的思路有问题吗,应该怎么改啊。

[此贴子已经被作者于2019/9/6 17:29:12编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/6 17:37:00 [只看该作者]

json发上来看看

 回到顶部
总数 40 1 2 3 4 下一页