SQL2000(SP4) + vb.net应用客户端。客户端应用从输出的log看已保存完成,而且已经打印了含有结算时间流水小票(事务后的处理)。
但还原当天晚上的数据库备份文件,发现对应数据的结算时间没有了。数据恢复到了结算前的状态。一个有4条数据出错。出错前发生过超时错误。2011-11-15 21:29:13 Microsoft OLE DB Provider for SQL Server
2011-11-15 21:29:13 ExecuteReaderInternal
2011-11-15 21:29:13 超时已过期
2011-11-15 21:29:13 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在 ClassLib.F009.Btn_SelectSave_Click(Object sender, EventArgs e)
2011-11-15 21:33:52 Microsoft OLE DB Provider for SQL Server
2011-11-15 21:33:52 ExecuteReaderInternal
2011-11-15 21:33:52 超时已过期
2011-11-15 21:33:52 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在 ClassLib.F009.Btn_SelectSave_Click(Object sender, EventArgs e)2011-11-15 21:34:31 Microsoft OLE DB Provider for SQL Server
2011-11-15 21:34:31 ExecuteReaderInternal
2011-11-15 21:34:31 超时已过期
2011-11-15 21:34:31 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在 ClassLib.F009.Btn_SelectSave_Click(Object sender, EventArgs e)
2011-11-15 21:35:12 Microsoft OLE DB Provider for SQL Server
2011-11-15 21:35:12 ExecuteReaderInternal
2011-11-15 21:35:12 超时已过期
2011-11-15 21:35:12 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在 ClassLib.F009.Btn_SelectSave_Click(Object sender, EventArgs e)请帮忙分析原因。分不够再加。
但还原当天晚上的数据库备份文件,发现对应数据的结算时间没有了。数据恢复到了结算前的状态。一个有4条数据出错。出错前发生过超时错误。2011-11-15 21:29:13 Microsoft OLE DB Provider for SQL Server
2011-11-15 21:29:13 ExecuteReaderInternal
2011-11-15 21:29:13 超时已过期
2011-11-15 21:29:13 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在 ClassLib.F009.Btn_SelectSave_Click(Object sender, EventArgs e)
2011-11-15 21:33:52 Microsoft OLE DB Provider for SQL Server
2011-11-15 21:33:52 ExecuteReaderInternal
2011-11-15 21:33:52 超时已过期
2011-11-15 21:33:52 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在 ClassLib.F009.Btn_SelectSave_Click(Object sender, EventArgs e)2011-11-15 21:34:31 Microsoft OLE DB Provider for SQL Server
2011-11-15 21:34:31 ExecuteReaderInternal
2011-11-15 21:34:31 超时已过期
2011-11-15 21:34:31 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在 ClassLib.F009.Btn_SelectSave_Click(Object sender, EventArgs e)
2011-11-15 21:35:12 Microsoft OLE DB Provider for SQL Server
2011-11-15 21:35:12 ExecuteReaderInternal
2011-11-15 21:35:12 超时已过期
2011-11-15 21:35:12 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在 ClassLib.F009.Btn_SelectSave_Click(Object sender, EventArgs e)请帮忙分析原因。分不够再加。
解决方案 »
- 在本机上多实例查询问题
- ~~~~~~~~!~~~~~~~~数据库备份除了生成insert数据和bak文件,还有哪些备份的方法人们用到的,谢谢指导!!~~~~~~~~~~~~~~~~~~~~~
- mssql不使用游标如何遍历结果集计算后并返回?
- sql server 2000数据库,每天的增量很大,该如何处理?
- 我用exec('select * into #t from table')怎么不能建立临时表
- 请教一个sql列级完整性约束问题?
- sql server 2000各个版本的区别。
- 怎样做一个通用程序,把一个表的数据移到另外一个表
- 请教一个这个StorProc该如何写
- MSSQL7中动态打开数据表问题,请指教!
- 操作数类型冲突 ntext与image不兼容 怎么解决兼容性?
- 请都关于replace替换不掉unicode字符问题
你说的不对。
是查询了4次,都超时了。而接下来的登录更新处理,从log上看都通过了。
而且我手上有通过后打印的小票,是从数据库里面查询出来的。说明当时已经登录成功了。
接下来12:00以后会对当天数据进行备份,但是从备份还原后没有找到成功登录的数据。从log上看,超时现象出现后,操作员没有关闭软件,而且进行了后续的登录操作。
我想了解的是,超时操作会对事务什么的有影响吗。
Try
Dim tran As OleDb.OleDbTransaction
tran = DBConnection.BeginTransaction ..........业务登录代码 tran.Commit()
tran.Dispose()
Me.Close() Catch ex As Exception
tran.Rollback()
Logger.WriteLog(ex, DBConnection)
MsgBox(ex.Message, MsgBoxStyle.Critical, Constant.CON_TITLE_ERR)
Finally
tran.Dispose()
End Try
我觉得我写的异常处理应该没有问题。中间的业务登录log都正常输出了。而且也没有异常的log信息。
这时回滚指令开始执行,按照时间点进行回滚,导致已经登录的3条数据也被回滚了。不知道这的事是否可能发生?