In einem meiner Programme greife ich mit OleDb auf eine Access-Datenbanktabelle mit 20000 Rows und 150 Columns zu:
Folgendes Statement produziert ein "Max locks per file exceeded (error 3057)"
sobald die Tabelle "table" etwa mindestens 15000 Einträge hat.
----------------------------------------------------------
OleDbCommand qry = new OleDbCommand();
transaction.PrepareCommand(qry4);
qry.CommandText = "DELETE * FROM table WHERE flag = 0";
int count1 = qry.ExecuteNonQuery();
----------------------------------------------------------
Wenn das gleiche Statement direkt in Access abgesetzt wird funktioniert es.
"DELETE * FROM table WHERE flag = 0"
Derzeit umgehe ich das Problem in dem ich in der Registry den key
von default 9500 auf etwa 20000 erhöhe
Registrykey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\<version>\Engines\Jet <version>\MaxLocksPerFile
Hat jemand von Euch schon mal das Phänomen beobachtet. Ist das ein Bug in
der System.OleDb ? Warum wird diesen Limit bei einem Statement überhaupt überschritten
Danke für eine Hinweis.
Kagel