Bonjour Serge,
Cela fait plusieurs fois que je vous vois écrire ça.
Comme j'ai quelques doutes j'ai voulu exécuter la requête suivante:en étant connecté à une base, la connexion à cette base étant définie dans un character set différent de l'iso8859_1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 execute block returns( i smallint, lettre char(1) character set iso8859_1) as begin i=0; while (i<=255) do begin lettre=ascii_char(i); suspend; i=i+1; end end
Cette expérience j'ai pu la faire avec IBExpert qui accepte les requêtes execute block (pas flamerobin), avec Delphi7 et Lazarus en utilisant des composants qui acceptent aussi ce type de requête.
Si les jeux de caractères de "lettre" et de la connexion sont les mêmes, il n'y a pas de problème, puisque Firebird ne fait pas de translittération. Mais s'ils sont différents, Firebird émet un message "Cannot transliterate character between character sets", et la lecture pas à pas dans IBExpert permet de constater que l'erreur se produit lors de la translittération du caractère 128, même lorsque le jeu de caractères de connexion est le win1252, jeu qui comprend bien ce caractère.
Amicalement
André
PS: essais faits avec FB server 2.5
Partager