:cry:
j'ai passé des heures à chercher comment afficher les caractères accentués d'une base ACCESS avant de plonger dans la LCL et de trouver la fonction OnGetText
un petit tour par ici m'aurais permis de gagner pas loin de 6h dans mes dev ... :ouin:
donc j'ai trouvé comme un grand :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
procedure TDM.QueryGetText(Sender: TField; var aText: string; DisplayText: Boolean);
begin
atext := AnsiToUTF8(Sender.AsString);
end;
procedure TDM.QueryAfterOpen(DataSet: TDataSet);
var
count: longint;
begin
count := 0;
while count<DataSet.RecordCount do begin
// DataSet.FieldDefs[count].Name :=AnsiToUTF8(DataSet.FieldDefs[count].Name);
DataSet.Fields[count].OnGetText:=@DM.QueryGetText;
inc(count);
end;
end; |
(Je réécris afin d'être bien clair pour tout le monde)
Vous remarquerez en commentaire la ligne où j'essaye de transformer les noms de champs ... la manip ne fonctionne pas. Lorsque je connecte via un DataSource la requête à un TDBGrid, les têtes de colonnes ont toujours les accents ACCESS (cad des ?) !
N'ayant rien trouvé dans les recherches google avec les mots clé 'ACCESS charset encoding' et tout un tas d'autre combinaison, ni dans le wiki de lazarus, nous devrions peut-être rajouter cette astuce et dans la faq lazarus de developpez, et dans le wiki officiel ?
@bientôt