Liaison d'un 'unsigned long' (uint64) dans une instruction sqlite3? C ++

Je suis en utilisant le sqlite3 bibliothèque est disponible à sqlite.org.

J'ai quelques unsigned longs que j'aimerais stocker dans une base de données. Je ne veux pas construire la requête de moi-même et de la laisser ouverte à une sorte d'injection (qu'il soit accidentel ou pas). Donc, je suis en utilisant le sqlite_bind_* fonctions de "désinfecter" mes paramètres.

Le problème est qu'il n'y a pas une fonction de type unsigned long des nombres entiers, tout entiers.

int sqlite3_bind_int(sqlite3_stmt*, int, int);

int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);

Je vais certainement avoir des numéros qui vont déborder si je suis incapable de les stocker dans un unsigned manière.

Vais-je avoir besoin pour gérer moi-même? (c'est à dire la conversion d'un type non signé après la sélection de la bd ou de la conversion en type signé avant l'insertion en base de données)

Si je dois gérer moi-même, comment pourrait-on comparer les requêtes qui sont stockés sous forme d'un entier long signé lorsque les comparaisons sont vraiment conçus pour être dans le non signé de gamme?

À la recherche à la Les types de données INTEGER qui se converti, on pourrait penser que unsigned longs peuvent être représentées sans problème.

Si il y a d'autres solutions, merci de m'éclairer!
Merci!

source d'informationauteur g19fanatic