Salut à tous,
Cela fait deux jours que j'ai un problème pour récupérer des enregistrements de type chaîne, avec des accents, et triés dans mon application .NET.
Je me suis donc penché dans un premier temps sur les chararcter set et collate. Jusqu'à maintenant même en appliquant les méthodes que j'ai pu voir sur le net, mes tris ne fonctionnaient pas (je pense avoir essayé tout ce qui est possible, à partir de isql ou de IBQuery, mais ca ne marchait pas !). J'ai fini par tester IBEasy+ avec lequel ca marche niquel en précisant à la création de la base, connexion à celle-ci et création des champs le character set et le collate! J'obtiens donc dans IBEasy+ mes enregistrements, triés comme il faut.
A partir de mon appli .NET, la requête non triée est retournée parfaitement, parcontre dès que j'ajoute un order by avec ou sans collate fr_fr, l'appli se bloque (aucune exception n'est lancée !).
J'imagine que cela vient des jeux de caractères ou des string en .NET, mais je ne vois pas comment faire !
J'ai configuré ma connexion/ma requête de la manière suivante en C# :
Le programme se bloque au moment de remplir le dataSet (dataA.Fill(dataS)).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 FbConnectionStringBuilder sb = new FbConnectionStringBuilder(@"User=SYSDBA;Password=masterkey;Database=""" + Application.StartupPath + @"\test.FDB"";ServerType = 1;"); sb.Charset = "ISO8859_1"; myConnection = new FbConnection(sb.ToString()); myConnection.Open(); FbCommand com = new FbCommand("select * from t order by t_name;", myConnection); /* Avec ou sans collate FR_FR après le order by t_name */ com.Parameters.Add("Charset", "ISO8859_1"); FbDataAdapter dataA = new FbDataAdapter(com); dataA.Fill(dataS); myConnection.Close();
Auriez-vous une idée de ce qui pourrait provoquer cela?
Je vous remercie d'avance
Grég
PS: peut être ce poste aura t'il plus sa place dans la partie .NET du forum?
Partager