German Umlaute with Lazarus

this is known bug and should be already fixed.

try to login to relativity before opening table.
in my sample, I use

  if not tbl_test31144_utf8.Active then begin
     RemoteDataAdapter.login;
  end;

It Seems that My App is freezing when i do a more than a few Selects…

This works:

procedure TDM.Setup_Dataset(Sender: TObject);
var
   sql_string_camp : String;
begin
    sql_string_camp :=      'SELECT * FROM CAMPS '+
                                    'WHERE ( REG_NO > 0)';

    with DM.RemoteDataAdapter do
    begin
         login;
         FillWithDASql(tbl_camps,sql_string_camp, nil);
    end;

    tbl_bible_art_list.IndexFieldNames := 'ART';
    DM.ApplyFilter(tbl_bible_art_list,'((C_NO = ''' + camp_ident_part + ''' OR C_NO = ''' + g_country  + ''') )','ART');
end;    

This works:

procedure TDM.check_user_access_rights(Sender: TObject);
begin
     RemoteDataAdapter.FillWithDASql(tbl_AccessRights,'SELECT description FROM AccessRights', nil);
     db_rights := tbl_AccessRights.FieldByName('description').AsString;
end;   

This Code does not Work / Did before without json:
I do not get any Error Message it just takes forever…

procedure TDM_member.setup_dataset(Sender: TObject);
var
   param_ar1, param_ar2 :DataParameterArray;
   par_ar1, par_ar2 :DataParameter;
begin
  param_ar1 := DataParameterArray.Create;
  par_ar1 := param_ar1.Add;
  par_ar1.Name := UTF8Encode('C_NO');
  par_ar1.Value := camp_ident_part;

  param_ar2 := DataParameterArray.Create;
  par_ar2 := param_ar2.Add;
  par_ar2.Name := UTF8Encode('C_NO');
  par_ar2.Value := camp_ident_part;

  begin
       dm.RemoteDataAdapter.login; // Aded just this Line
       dm.ApplyFilter(tbl_member,'((C_NO = ''' + camp_ident_part + ''') AND (STAT_DEL = 0))','F_NAME');
       dm.RemoteDataAdapter.FillWithDASql(
          [DM.tbl_camps,
           tbl_member],
           ['SELECT * FROM CAMPS '+
                      'WHERE (AREA_NO > 0)',
            'SELECT * FROM MEMBER '+
            '         WHERE (STAT_DEL = 0)'+
            '         ORDER BY F_NAME'],
          [param_ar1,
           param_ar2]);
  end;

  tbl_member.Open;
end;    

this is known bug and should be already fixed.
Is this Bugfix included in the new release on next Saturday?

Is there any advantage of json over bin?

Correction
The Code works, but it takes much much ( minutes ) longer to open the Table compare to bin ( insted of json )

procedure TDM_member.setup_dataset(Sender: TObject);
var
   param_ar1, param_ar2 :DataParameterArray;
   par_ar1, par_ar2 :DataParameter;
begin
  param_ar1 := DataParameterArray.Create;
  par_ar1 := param_ar1.Add;
  par_ar1.Name := UTF8Encode('C_NO');
  par_ar1.Value := camp_ident_part;

  param_ar2 := DataParameterArray.Create;
  par_ar2 := param_ar2.Add;
  par_ar2.Name := UTF8Encode('C_NO');
  par_ar2.Value := camp_ident_part;

  begin
       dm.RemoteDataAdapter.login; // Aded just this Line
       dm.ApplyFilter(tbl_member,'((C_NO = ''' + camp_ident_part + ''') AND (STAT_DEL = 0))','F_NAME');
       dm.RemoteDataAdapter.FillWithDASql(
          [DM.tbl_camps,
           tbl_member],
           ['SELECT * FROM CAMPS '+
                      'WHERE (AREA_NO > 0)',
            'SELECT * FROM MEMBER '+
            '         WHERE (STAT_DEL = 0)'+
            '         ORDER BY F_NAME'],
          [param_ar1,
           param_ar2]);
  end;

  tbl_member.Open;
end;

The Umlaute are still not visible…
Could you send me your MySQL Table so i can test it in my environment?

Did change back to bin i get the Table displayed in 2-3 Sec compare to json 1-2 Min ( not kidding )

CREATE TABLE `TEST31144_UTF8` (
  `ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `WSTR` VARCHAR(20) NOT NULL,
  `WMEMO` TEXT NOT NULL,
  PRIMARY KEY (`ID`)
)
ENGINE = InnoDB
CHARACTER SET utf8 COLLATE utf8_general_ci;

it depends on data…json format is format that uses human-readable text to transmit data objects consisting of attribute–value pairs. It is used for asynchronous browser/server communication (AJAJ), largely replacing XML, but some overhead will be present at coding into this format and decoding from this format …

Sorry, it is not working…

Did use your Project Sample with your SQL Table.

I used this connection String:
MySql.NET?Server=localhost;Database=mydatabase;User ID=myuser;Password=mypassword; convert zero datetime=True;

In the App it lok ok but if you check the MySQL Table it look like this:

hmm, I have no problems with it:

connection string is

MySql.NET?Server=localhost;Database=test;User ID=root;Password=root;

Look’s fine from your Screenshot… But not on my Side… :cry:
In the Moment i think it is positive that it works in general but i like it also to work for me… :confused:

Would it be possible to send you my connection Data ( by Mail ) so you could just run your Programm ( from above ) and tell my if it works for you?
Would be a great help

you can create a simple testcase, like my one, include table DDL and send it to support@.
I’ll review it

Thank’s for the Great Support and the Patience in solving this Problem :smile:

1 Like