以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 跟二进制耗上了,继续请教 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74946) |
-- 作者:bahamute -- 发布时间:2015/9/23 11:13:00 -- 跟二进制耗上了,继续请教 以下代码从命令窗口测试正常(命令窗口return语句改为return nothing),但是放到任务栏就报错: System.InvalidOperationException: 此
OleDbTransaction 已完成;它再也无法使用。 在
System.Data.OleDb.OleDbTransaction.Commit() 在
Foxtable.Connection.Commit() 在
UserCode.Ab2sVfnWKSLDdT4vZ(TopicLinkEventArgs e) 难道不能用数据库事务? Tables("文件模板").Filter="[文件名]=\'正式工工资考勤导入模板\'" If Tables("文件模板").Current Is Nothing Then Return End If Dim dr As DataRow = Tables("文件模板").Current.DataRow If dr.RowState = DataRowState.Added Then \'如果是新增行,必须先保存才能插入文件 dr.Save() End If Dim fl As String = ProjectPath & dr("_Identify") & ".xls" If dr.SQLLoadFile("文件",fl) Then \'如果提取文件成功 Dim Proc As New Process \'打开文件 Proc.File = fl Proc.Start() End If [此贴子已经被作者于2015/9/23 11:16:49编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/9/23 11:18:00 -- 代码只要正确,放在那里都没问题。 |
-- 作者:bahamute -- 发布时间:2015/9/23 11:19:00 -- 请教大红袍,这几句提示的哪方面的问题?是否和加了事务有关? System.InvalidOperationException: 此 OleDbTransaction 已完成;它再也无法使用。 在 System.Data.OleDb.OleDbTransaction.Commit() 在 Foxtable.Connection.Commit() 在 UserCode.Ab2sVfnWKSLDdT4vZ(TopicLinkEventArgs e) |
-- 作者:大红袍 -- 发布时间:2015/9/23 11:20:00 -- 同样的代码,不可能在另外一个地方就不行。 |
-- 作者:bahamute -- 发布时间:2015/9/23 11:21:00 -- 任务栏代码加了数据库事务处理 |
-- 作者:bahamute -- 发布时间:2015/9/23 11:24:00 -- 测试了一下,注释掉任务栏数据库事务代码后,正常了,难道二进制列不支持使用事务? |
-- 作者:大红袍 -- 发布时间:2015/9/23 11:28:00 -- 封装的方法里面,和你加的事务,不是同一个。你也可以理解成你无法控制里面的东西。如果出错,会给你返回值的 |
-- 作者:bahamute -- 发布时间:2015/9/23 11:40:00 -- 也就是说SQLLoadFile方法并不是常规访问数据库的方法,数据库事务不支持 改为常规访问方式就可以了,是这个意思吗? |
-- 作者:大红袍 -- 发布时间:2015/9/23 11:43:00 -- 你用事务,也检查不出错误,因为它不是sql语句。
而且,方法里面已经用了事务了。 |
-- 作者:bahamute -- 发布时间:2015/9/23 14:34:00 -- 请问,有没有读写二进文件案例或者代码?谢谢。 |