|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité de passage
![]() Inscription : avril 2003 Messages : 14 ![]() |
j'accède à une base Interbase 6.0 via une application Delphi 6 et quand j'update un champ texte avec ce char set CHARACTER SET ISO8859_1 que je sois sous delphi 6 ou sous IB console j'ai le message :
Citation:
Le problème viens sans doute du charset mais pourquoi et quel charset mettre. Si quelqu'un pouvait m'eclairer sur les différents charset ca serait super sympa. Merci beaucoup. |
|
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Je pense que vous n'avez pas configurer la connexion delphi/interbase de la bonne manière.
Il faut non seulement préciser lors de la création de la base (ou colonne) le char set que l'on veut utiliser (couramment pour le Français le ISO8859_1) ce que vous avez apparemment bien fait, mais également préciser au composant de connexion à la base que l'on veux utiliser le charset Iso8859_1. Je ne sais pas quel provider vous utilisez mais si ce sont les composants IB il suffit de double cliquer sur le TIBDataBase et bien renseigner le CHARSET. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2003 Messages : 14 ![]() |
J'utilise des composants BDE TDatabase et des composants IB TIBDatabase mais j'ai bien renseigné le CHARACTER SET dans le composant IB mais ca ne marche pas pour autant.
En plus je ne peux pas enlever le CHARACTER SET de ma base sans perde mes données... SUPER Why?? |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
peux tu nous donner l'ordre insert qui pose probleme et les caractèristiques exacte de la colonne texte qui pose probleme ?
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2003 Messages : 14 ![]() |
la définition de la colonne est :
Code :
CLIENT VARCHAR(50) CHARACTER SET ISO8859_1 Code :
INSERT INTO TABLEUSER (USER) VALUES ('Gérard') ; dès que je met des accents :
|
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
mais le composant dans lequel tu as mis l'insert est attaché au IB ou BDE ? Pour BDE je ne peux pas te dire comment le configurer mais il faut le faire c'est certain et pour le IBDatabase (si c'est bien ca que ton composant insert utilise) il faut double cliquer dessus et choisir jeux de caractère : ISO8859_1 ce qui ajoute ceci à la chaine de connexion : lc_ctype=ISO8859_1. S'il n'y a pas ça ca ne peux pas marcher. Peux tu confirmer que tu as bien vérifié ce parametre ? |
|
|
|
00
|
|
|
#7 | |
|
Invité de passage
![]() Inscription : avril 2003 Messages : 14 ![]() |
oui j'ai bien mis ce paramètre dans le composant IB mais ca ne marche pas meiux
la seule manière que j'ai trouvée pour que je puisse mettre des accents est sous IBConsole quand je référence la base je lui met le CHARACTER SET a ISO8859_1 et là je peux entrer des accents sans problème. Mon problème c'est que je peux pas reconstruire ma base car les données qu'elle conient ne doivent pas etre perdues et en plus j'ai une tonne de procedures stockées... donc j'ai bien regardé les composants IB et il y a bien Citation:
De plus ca ne pose pas problème pour mes BLOB. Je suis perplex et paumé |
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
J'avoue ne pas avoir le temps d'essayer les différentes possibilitées.
Ce que je sais c'est qu'en effet lorsque je crée une base, je précise bien lors de la création ISO8859_1. Je ne sais pas trop comment ratrapper la chose, moi j'essayerai d'extraire les métadonnées de la base avec un logiciel tel IBExpert ainsi que les données. Ensuite modification du début du script pour avoir le DEFAULT CHARACTER SET ISO8859_1. Et enfin exécuter ce script qui normalement devrait permettre de tout retrouver comme avant... |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : avril 2003 Messages : 14 ![]() |
Merci qd même je suis en train d'essayer cela mais bon c'est vachement long et compliqué (surtout recreer les utilisateurs et les roles avec les bons droits
Maintenant je ferais gaffe en créant ma base |
|
|
00
|
|
|
#10 | |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
|
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : avril 2003 Messages : 14 ![]() |
merci je vais regarder avec IBexpert
|
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : janvier 2003 Messages : 7 ![]() |
Salut, J'ai eu le meme pb en utilisant les composants dbexpress. En fait, ça vient d'Interbase. Pour resoudre se pb, j'ai supprimé " CHARACTER SET ISO8859_1 " Lors de creation de ta table, inscrit simplement : CLIENT VARCHAR(50) , !!! Verifie de ne pas avoir créer ta base avec un script du genre : SET SQL DIALECT 3; CREATE DATABASE 'C:\Develop\DataBase\MyBase.gdb' USER 'SYSDBA' PASSWORD 'masterkey' PAGE_SIZE 4096 DEFAULT CHARACTER SET ISO8859_1; A+ |
|
|
00
|
|
|
#13 | |||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
Mais cette méthode est valable si tu ne comptes pas demander à interbase de : 1-trier correctement par exemple voilà comment le tri se fera en characterSet=none: Code :
Code :
Voilà. Donc si celà ne vous dérange pas alors oui c'est la solution de facilité. Mais d'un autre coté pour avoir des tris correctes, il ne faut pas utiliser les caractères accentués et de préférence les données d'une même colonne en minuscule ou tout en majuscule. Dans ce cas là oui le tri sera correcte. Donc je rappel que pour éviter d'avoir des tris qui ne ressemblent à rien et que les recherches dans les chaines soient cohérentes il faut utiliser par exemple le characterset=Iso8859_1 avec une collation FR_FR. Au niveau des déclaration dans la base de donnée mais également au niveau de la connection à cette base. |
|||||
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : avril 2003 Messages : 14 ![]() |
voila j'ai recrée ma base comme ca ca marche maintenant avec le defaut characterset=Iso8859_1
et mes champs avec le characterset=Iso8859_1 avec une collation FR_FR. mes tris sont bon et mes accents aussi... j'ferais gaffe maintenant.... merci! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com