以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 利用下拉窗口进行赋值,该怎么改成事务的方式处理啊? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140468) |
-- 作者:guosheng -- 发布时间:2019/9/6 9:33:00 -- 利用下拉窗口进行赋值,该怎么改成事务的方式处理啊? 下拉窗口的dropdownclosed事件: If e.Form.dropdownbox.name="启动发票结转" 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("启动发票结转").value Is Nothing messagebox.show("合同相关信息不能为空") Else drr1("创建日期")=rq drr1("创建人")=_UserName drr1.save endif [此贴子已经被作者于2019/9/6 9:34:55编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/9/6 10:00:00 -- 没看懂。有什么问题? |
-- 作者:guosheng -- 发布时间:2019/9/6 10:17:00 -- 以上利用下拉窗口进行赋值的操作,怎么改成帮助中,"数据库事务"的方式赋值啊?如果采用这种方式,窗口的控件是不是就不能绑定到表字段啊?
|
-- 作者:有点蓝 -- 发布时间:2019/9/6 10:22:00 -- 这种无法使用事务,事务只能使用sql更改数据才有用。 这个用法到底有什么问题?和控件绑定有什么关系?
|
-- 作者:guosheng -- 发布时间:2019/9/6 10:29:00 -- 问题是:点击 确定按钮后,增加的数据量(我贴到只是部分赋值操作)比较大,不用 事务处理,怕用户端的操作没有执行完毕啊。 我的思路是(还没测):把窗口的控件跟表字段不关联,然后 点击 确定 按钮后,执行sql insert语句,把窗口控件的值传给 insert的value参数,如果sql没执行完毕,就回滚。不知道思路对不对啊。 如果这个思路没问题的话,insert成功后,怎么找到这一行(找到_identify),追载或加载到用户本地啊?
[此贴子已经被作者于2019/9/6 10:38:30编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/9/6 10:40:00 -- 不管窗口控件有多少个,如果都是绑定一行数据,那么没有必要使用事务。除非是涉及到几个表的数据需要同步操作。这时可以使用sql进行事务操作 |
-- 作者:guosheng -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/9/6 16:55:00 -- 事务没有结束,无法查询新增的数据的。 dim cnt as integer = cmd.ExecuteNonQuery if cnt > 0 then msgbox(插入成功)
|
-- 作者:guosheng -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/9/6 17:37:00 -- json发上来看看 |