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 );
(Fehlerprüfung und Vorbereitung aus Gründen der Übersichtlichkeit weggelassen)
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?
[code]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 ); [/code] (Fehlerprüfung und Vorbereitung aus Gründen der Übersichtlichkeit weggelassen) Ich habe ein paar Fragen zum obigen Code. [list] [*]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?
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...
Ich schreibe ein Python -Skript, das eine Verbindung zu Azure Serverless SQL herstellt und die Zeilen für eine bestimmte Abfrage exportiert. Ich benutze Sqlalchemy. Ich erstelle die...