Zugriffsbeschränkung für DB-Transaktionseinfügung

Gibt es eine Beschränkung für die Anzahl der Einfügungen, die Sie in einer Access-Transaktion vornehmen können, bevor Sie einen Commit ausführen müssen oder bevor Access / Jet einen Fehler auslöst?

Ich führe momentan den folgenden Code aus, um herauszufinden, was dieses Maximum ist.

OleDbConnection cn =
                new OleDbConnection(
                    @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\temp\myAccessFile.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();
                }
            }

Der Fehler, den ich in einer Produktionsanwendung erhalten habe, als ich 2.333.920 Einfügungen in einer einzelnen nicht festgeschriebenen Transaktion erreichte, war: "Anzahl der Dateifreigabesperren überschritten. Erhöhen Sie den Registrierungseintrag MaxLocksPerFile". Das Deaktivieren von Transaktionen behebt dieses Problem.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage