Hier ist die SQLite-Abfrage, die ich mit ganzzahligen Werten bin Bindung:SQLite Mismatch Fehler in Wert Bindung
Id ist der Integer-Typ in der Tabelle.
SELECT Id, FName,SortString, 1 as OrderStr
FROM CTable
WHERE ? = Id AND SortString glob '[A-Z]*'
UNION
SELECT Id, FName,SortString, 2 as OrderStr
FROM CTable
WHERE ? = Id AND SortString NOT glob '[A-Z]*'
ORDER BY OrderStr, FName DESC LIMIT ? OFFSET ?
sqlite3_stmt * c_list_x = NULL; sqlite3_prepare_v2 ist erfolgreich. Wenn ich jetzt wie folgt bin:
int Id = 1;
sqlite3_bind_int(c_list_x ,1, Id);
sqlite3_bind_int(c_list_x ,2, Id);
int Ergebnis = sqlite3_step (c_list_x);
Ergebnis ist 20 (SQLite Mismatch: Datentyp Mismatch)
Warum erhalte ich diese auch nach dem ganzzahligen Wert verbindlich?
Kann mir jemand helfen, das gewünschte Ergebnis zu bekommen?
Warum vergleichen Sie eine ganze Zahl mit einer Zeichenfolge? –
@GordonLinoff Ich habe dich nicht verstanden. Wo vergleiche ich String mit einem Int? –
Ich habe sogar versucht, Casting: sqlite3_bind_int (c_list_x, 1, static_cast (Id)); aber kein Glück. –