Frage

Ich mache einen Wrapper von SQLite C API.Und ich möchte ROFID als Ganzzahl-Typ zurückgeben.Um den Fehlerfall zu markieren, benötige ich einen ungültigen Wert des RowID.Gibt es ungültiger Wert von sqlite rowiD?Oder alle Werte in signierten 64-Bit-Ganzzahlen gelten für ROWID?(Denn wenn es ist, muss ich einen anderen Weg wählen, um den Markierungsfehler-Fall zu implementieren)

War es hilfreich?

Lösung

Zeilen-IDs sind 64-Bit-integere ganze Zahlen, sodass das Maximum 0x7FFFFFFFFFFFFFFFll ist.Wenn jedoch keine negative oder null-Zeilen-ID explizit eingegeben wurde, sind automatisch generierte Zeilen-IDs immer größer als Null.Wenn Sie sicher sein können, dass Zeilen-IDs immer automatisch generiert werden, dann wären Null- oder -1 sichere Werte für Fehlerstatusrenditen.

weiter nachzudenken, merke ich, dass der sqlite3_last_insert_rowid-API-Anruf null zurückgibt, wenn jemals nichts in den Tisch eingesetzt wurde, wodurch Null eine de-facto-Zeilen-ID erstellt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top