Bonjour,
Dans ma petite base de données SQLite, j'ai une table "Countries" avec des colonnes ID, Name et Url; j'insère mes données dans cette table avec ce bout de code:
("o" étant un ISuperObject)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SQL.Text := 'INSERT OR IGNORE INTO Countries (Name, Url) VALUES (:p0, :p1);'; Params[0].AsString := o.S['CountryName']; Params[1].AsString := o.S['CountryUrl']; ExecSQL;
Le problème est qu'une fois les données insérées, si j'essaye de faire un...
... ça ne marche pas (retourne "0" alors que l'entrée est bien présente dans la BDD avec un ID > 0) !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SQL.Text := 'SELECT ID FROM Countries WHERE Name = :p0'; Params[0].AsString := o.S['CountryName']; Open; iCountryID := Fields[0].AsInteger;
Par contre si je fais...
... là ça marche !?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SQL.Text := 'SELECT ID FROM Countries WHERE Name LIKE :p0'; Params[0].AsString := o.S['CountryName']; Open; iCountryID := Fields[0].AsInteger;
J'ai l'impression que c'est un problème avec l'unicode, auriez-vous des suggestions pour m'en sortir ?
PS: aperçus dans SQLiteSpy...
EDIT: après vérification avec un autre outil (extension "SQLite Manager" pour Firefox), j'ai ces drôles de caractères invisibles dans mes cellules, savez-vous à quoi ils correspondent ?
![]()
Partager