Hallo zusammen,
ich habe eine Problem mit MS Access. Ich schreibe ein kleine WebProgramm, welches als datenbank Access nutzt. Jetzt für ich per insert einen Satz in die Datenbank ein. Dannach wird der Benutzer, insofern der insert geklappt hat, auf die nächste Seite weitergeleitet. Auf dieser Seite wird der satz, der zuvor mit insert in die Tabelle eingefügt wurde, geprüft. Jetzt scheint das aber so schnell zu gehen, dass der Satz noch nicht in der Tabelle steht, und ich damit auf einen Fehler laufe. Was kann ich tun, um zu warten, bis Access den Satz wirklich verarbeitet hat? Hier der Code für die Datenbankanbindung:
<pre>
public void SQLProcessor(bool Active, string SQL)
{
if (fQuery != null)
{
fQuery.Close();
}
if (fConn != null && fConn.State == System.Data.ConnectionState.Open)
{
fCmd = new System.Data.OleDb.OleDbCommand(SQL, fConn);
if (Active)
{
try
{
fQuery = fCmd.ExecuteReader();
}
catch (System.Data.OleDb.OleDbException aExp)
{
throw (new Exception(aExp.Message, aExp.InnerException));
}
}
else
{
try
{
fCmd.ExecuteNonQuery();
if (fCmd.Connection.State == System.Data.ConnectionState.Executing)
{
System.Threading.Thread.Sleep(1000);
}
}
catch (System.Data.OleDb.OleDbException aExp)
{
throw (new Exception(aExp.Message, aExp.InnerException));
}
}
fCmd.Dispose();
fCmd = null;
}
}
</pre>
ich habe eine Problem mit MS Access. Ich schreibe ein kleine WebProgramm, welches als datenbank Access nutzt. Jetzt für ich per insert einen Satz in die Datenbank ein. Dannach wird der Benutzer, insofern der insert geklappt hat, auf die nächste Seite weitergeleitet. Auf dieser Seite wird der satz, der zuvor mit insert in die Tabelle eingefügt wurde, geprüft. Jetzt scheint das aber so schnell zu gehen, dass der Satz noch nicht in der Tabelle steht, und ich damit auf einen Fehler laufe. Was kann ich tun, um zu warten, bis Access den Satz wirklich verarbeitet hat? Hier der Code für die Datenbankanbindung:
<pre>
public void SQLProcessor(bool Active, string SQL)
{
if (fQuery != null)
{
fQuery.Close();
}
if (fConn != null && fConn.State == System.Data.ConnectionState.Open)
{
fCmd = new System.Data.OleDb.OleDbCommand(SQL, fConn);
if (Active)
{
try
{
fQuery = fCmd.ExecuteReader();
}
catch (System.Data.OleDb.OleDbException aExp)
{
throw (new Exception(aExp.Message, aExp.InnerException));
}
}
else
{
try
{
fCmd.ExecuteNonQuery();
if (fCmd.Connection.State == System.Data.ConnectionState.Executing)
{
System.Threading.Thread.Sleep(1000);
}
}
catch (System.Data.OleDb.OleDbException aExp)
{
throw (new Exception(aExp.Message, aExp.InnerException));
}
}
fCmd.Dispose();
fCmd = null;
}
}
</pre>
Comment