Bonjour,

J'ai déja posé la question dans le forum interbase et l'on m'a dit de venir la posé ici.

J'ai fait une recherche sur le forum mais je n'ai rien trouvé pour résoudre mon problème.

J'ai créé ma base de donnée avec le CHARACTER SET ISO8859_1.
Voici par exemple la structure d'une des tables (c'est le metadata de IBconsole):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CREATE TABLE "SEXE" 
(
  "I_ID_SEXE"	INTEGER NOT NULL,
  "S_LIB_SEXE"	VARCHAR(50) CHARACTER SET ISO8859_1,
 PRIMARY KEY ("I_ID_SEXE")
);
Ma table est donc correctement configuré.
J'utilise les composants suivants :
TIBDatabase
TIBTransaction
TIBQuery
TIBUpdateSQL

J'ai bien double clické sur le TIBDatabase pour obtenir la ligne suivante :Et quand je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
try {
    IBUpdateSQL2->InsertSQL->Clear();
    IBUpdateSQL2->InsertSQL->Add(TempSQL + ") VALUES (" + TempSQL2 + ")");
    IBUpdateSQL2->Apply(ukInsert);
    IBTransaction1->Commit();
    }
catch ( ... )
      {
      IBTransaction1->Rollback();
      Application->MessageBox(("La commande " + TempSQL + ") VALUES (" + TempSQL2 + ") a échoué").c_str(),"Attention", MB_OK + MB_ICONWARNING + MB_TOPMOST);
      }
S'il y a un caractère accentué, j'ai :
Le projet Serveur.exe a provoqué une classe d'exception EIBInterBaseError avec le message 'arithmetic exception, numeric overflow, or string truncation
Cannot transliterate character between character sets'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer.
C'est à dire qu'il ne voit pas mon CHARACTER SET ISO8859_1.

La ligne qui m'indique la commande qui échoue m'affiche ceci :
La commande INSERT INTO SEXE (I_ID_SEXE, S_LIB_SEXE) VALUES (2, 'Féminin') a échoué
Sachant que ma table est vide et que je peux la recréer, que je peux mettre des enregistrements avec des accents dans IBConsole mais pas dans mon programme, que faire pour résoudre ce problème?

Merci