Forum: Datenbanken
Delphi
by jziersch,
4. Jun 2021
Die paar erstellten Felder sind TWideStringField.
Das war auch der Hinweis auf die Lösung, denn als ich mal probiert habe FormatString auf UTF8 zu ändern kam promt hier ein typ-mismatch.
Ich verwende in meinen queries nur diese Felder nicht, auch kein DBGrid. Wie in meinem Code gezeigt, kommt das Problem bei der Verwendung von FieldByName und ParamByName.
Forum: Datenbanken
Delphi
by jziersch,
4. Jun 2021
Hallo himitsu,
das mit AsString hatte ich auch so vorausgesetzt.
Wenn man aber FieldByName bzw. ParamByName verwendet macht es offenbar einen Unterschied, ob man AsString oder AsWideString verwendet. Bei AsWideString findet intern ein UTF8Encode statt - bei AsString auch, aber es wird ein ANSIfizierter String an diese Umwandlung übergeben. Dadurch werden Umlaute ÄÖÜ... korrekt in UTF8 in...
Forum: Datenbanken
Delphi
by jziersch,
4. Jun 2021
Ich hab den Fehler gefunden. Mit AsWideString gehts:
WPData.DBQuery.SQL.Text := 'UPDATE "WPFILEITEMS" SET NAME=:NAME WHERE FILE_ID=1';
WPData.DBQuery.ParamByName('NAME').AsWideString := s;
WPData.DBQuery.ExecSQL;
WPData.DBQuery.SQL.Text := 'SELECT NAME FROM "WPFILEITEMS" WHERE FILE_ID=1';
WPData.DBQuery.OPEN;
s2 := WPData.DBQuery.FieldByName('NAME').AsWideString;