LacaK wrote:
Dennis Poon  wrote / napĂ­sal(a):

I tried, the results are:

@@character_set_client      : utf8
@@character_set_connection  : latin1
@@character_set_database   : latin1


Dennis, do you received my reply?:

IMO @@character_set_connection is wrong and must be utf8.
I will try fix it, but first can you try as workaround this:
- after connection is established can you use MySQLConnection1.ExecuteDirect('SET NAMES ''utf8'''); - and then check again @@character_set_client, @@character_set_connection (IMO both must be utf8 ... if they will be, then your program should work as expected ... can you test it again?)

-Laco.

I tried  MYSQLConnection1.ExecuteDirect('SET NAMES ''utf8'';');
and recheck
  @@character_set_client    : utf8
  @@character_set_connection : utf8
  @@character_set_database : latin1

So, it corrected one variable.
This is okay now


I re-ran my test but still  ?????? after applyUpdates.
When I use your test program I receve same result as you describe.
But when I add into procedure TForm1.FormCreate(Sender: TObject);
begin
 MySQL55Connection1.ExecuteDirect('SET NAMES ''utf8''');  // <-- ADDED
 SQLQuery1.Open;
end;

It works for me as expected ... so now I am confused with your results ... can you try again please your test application with added line ... (it will require patch for mysqlconnection in all cases, but before want have confirmed, that it helps)

-Laco.


Laco,

My apology. My last attempt did not recreate a fresh database table for testing so it started with the ruined table values and thus did not give the correct result.
Your Set Names command did the trick.
Thanks a lot.

By the way, why isn't a semicolon required at the end of SET NAMES 'utf8' command? I tried both with and without semicolon and neither raise an error.

Dennis

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to