c# – 访问数据库事务插入限制
发布时间:2020-12-16 01:58:08 所属栏目:百科 来源:网络整理
导读:在您需要提交之前或Access / Jet抛出错误之前,您可以在Access事务中执行的插入数量是否有限制? 我目前正在运行以下代码,希望确定这个最大值是多少. OleDbConnection cn = new OleDbConnection( @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:tempmy
在您需要提交之前或Access / Jet抛出错误之前,您可以在Access事务中执行的插入数量是否有限制?
我目前正在运行以下代码,希望确定这个最大值是多少. OleDbConnection cn = new OleDbConnection( @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:tempmyAccessFile.accdb;Persist Security Info=False;"); try { cn.Open(); oleCommand = new OleDbCommand("BEGIN TRANSACTION",cn); oleCommand.ExecuteNonQuery(); oleCommand.CommandText = "insert into [table1] (name) values ('1000000000001000000000000010000000000000')"; for (i = 0; i < 25000000; i++) { oleCommand.ExecuteNonQuery(); } oleCommand.CommandText = "COMMIT"; oleCommand.ExecuteNonQuery(); } catch (Exception ex) { } finally { try { oleCommand.CommandText = "COMMIT"; oleCommand.ExecuteNonQuery(); } catch{} if (cn.State != ConnectionState.Closed) { cn.Close(); } } 当我在一个未通信的事务中达到2,333,920个插入时,我在生产应用程序上收到的错误是:“超出文件共享锁定计数.增加MaxLocksPerFile注册表项”.禁用事务修复了此问题. 解决方法
是的,实际上有一个限制.你清楚地达到了它.每
Microsoft’s documentation:
在那个链接上有几个解决方法.第二个更现实,它暂时改变最大锁. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |