Sperrtabelle mit Transaktion in ODBC
Posted: 06 Jan 2025, 21:30
Code: Select all
ret = SQLExecDirect( stmt2, "BEGIN", SQL_NTS );
ret = SQLTables( stmt1 );
for( SQLFetch( stmt1 ); ; SQLFetch( stmt1 ) )
{
// get catalog
// get schema
// get table
ret = SQLExecDirect( stmt2, "IF NOT EXIST( SELECT * FROM WHERE name = AND schema = ) INSERT INTO VALUES( , , .... )", SQL_NTS );
}
ret = SQLExecDirect( stmt2, "COMMIT", SQL_NTS );
Ich habe ein paar Fragen zum obigen Code.
- Für den Zeitraum dieser Transaktion muss gesperrt sein, damit kein Lese-/Schreibzugriff möglich ist.
Wie kann ich das tun? - Ich glaube, ich benötige eine Transaktion. Liege ich mit der Abfrage der INSERT-Anweisung richtig?
- Soll ich in der Transaktion zwei Abfragen durchführen und dabei die Datensatzüberprüfung und die tatsächliche Einfügung aufteilen?