En cherchant de l'aide de syntaxe pour SQLite, une chose très étrange se produit. Je cours la requête sur un iPhone.Syntaxe de SQLite (ordre en provoquant l'erreur)
Voici la requête qui échoue: (On suppose que les tables sont correctes, cela fonctionne très bien dans le plugin sqlite firefox)
select tcodes.DisplayOrder, StatusText, StatusCode
from tcodes
join tcode_transitions on tcode_transitions.available = tcodes.UNID
where StatusCode = 'AAA'
order by tcodes.DisplayOrder
Pour le faire fonctionner, je dois enlever l'ordre par clause, ce qui semble un peu étrange.
Voici l'appel:
// Open the database from the users filessytem
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
// Setup the SQL Statement and compile it for faster access
int rtn = sqlite3_prepare_v2(database, [sql UTF8String], -1, &compiledStatement, nil);
if(rtn != SQLITE_OK) {
NSLog(@"SQL Error: %d",rtn);
sqlite3_close(database);
}
}
dans ce qui précède, RTN est == 1, ce qui indique une erreur SQL.
Encore une fois, la requête fonctionne très bien à l'extérieur du téléphone. Est-il possible que les bibliothèques SQL sur l'iPhone aient une syntaxe différente pour l'ordre?
Dites-nous s'il vous plaît _how_ la requête échoue? Et essayez d'ajouter DisplayOrder pour sélectionner la clause ... –
Pouvons-nous obtenir un extrait du message d'erreur? – rexposadas
Certaines bases de données requièrent que la ou les colonnes spécifiées dans ORDER BY existent également dans la clause SELECT ... –