2010-02-23 24 views
11

ausführen Wenn SQL-Anweisungen durchführen wie UPDATE und INSERT die üblichen .fetch*() Methoden auf der Cursor Instanz offensichtlich gelten nicht für die Anzahl der Zeilen geändert.Gibt die Anzahl der geänderten Zeilen nach sqlite3

Im Falle der Ausführung einer der oben genannten Anweisungen, was ist der richtige Weg, um die entsprechende Zeilenanzahl in Python und die entsprechende API in der Sqlite3 C-Schnittstelle zu erhalten?

Antwort

20

Nachdem Sie Ihre Cursor.execute*() Methoden mit Ihren UPDATE- oder INSERT-Anweisungen aufgerufen haben, können Sie Cursor.rowcount verwenden, um die Anzahl der Zeilen anzuzeigen, die von dem Ausführungsaufruf betroffen sind.

Wenn ich raten müsste, würde ich sagen, die Python-Lib ruft int sqlite3_changes(sqlite3*) von der C-API, aber ich habe den Code nicht angeschaut, so kann ich nicht sicher sagen.

+0

und die entsprechende C-Funktion? –

+0

Bearbeitet mit der vermuteten C-API, die verwendet wird. – mockobject

Verwandte Themen