Autor Beitrag
kagel
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 23.04.09 14:19 
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