powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Неожиданный поворот с ftString и ftWideString.
7 сообщений из 7, страница 1 из 1
Неожиданный поворот с ftString и ftWideString.
    #40008955
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Установили ПО в Грузию как сразу возникли нюансы))

В местах преобразования json текста в TDataset, возникает проблемы со текстовыми значениями.

Если в TDataset создаём поле ftString (FieldType = ftString)

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TJSONDatasetAdapter.AddFieldDef(FieldName: string; FieldType: TFieldType;
  FieldSize: Integer = 0);
  var FieldDef: TFieldDef;
begin
  FieldDef          := fDatasetRef.FieldDefs.AddFieldDef;
  FieldDef.Name     := FieldName;
  FieldDef.DataType := FieldType;
  if FieldSize > 0 then
    FieldDef.Size   := FieldSize;
end;



далее когда парсим json стандартными средствами и засовываем в таблицу текст:

Код: pascal
1.
2.
3.
4.
var v        : TJSONValue;
...
...
fDatasetRef.FieldByName(FieldName).AsString   := TJSONString(v).Value;  <-- FieldName имеет ftString



то когда мы обращаемся к TDataset и читаем строку получаем "???????? 25" вместо "მანიკური 25".

Поменяли на ftWideString, как всё заработало как надо.

Используем DX10.2... я понимаю что String (unicodeString) и WideString это не совсем одно и тоже... и вопрос: Если во всём проекте изменить ftString на WideString - будут подводные камни? если TDataset используется только для чтения...
...
Рейтинг: 0 / 0
Неожиданный поворот с ftString и ftWideString.
    #40008957
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUS,

String и ftString - разные вещи.
...
Рейтинг: 0 / 0
Неожиданный поворот с ftString и ftWideString.
    #40008958
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUSя понимаю что String (unicodeString) и WideString это не совсем одно и тоже...

Теперь обрати внимание, что String и ftString тоже имеют разницу в две буквы. И второе,
внезапно, это AnsiString.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неожиданный поворот с ftString и ftWideString.
    #40008962
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Я вот читаю документацию от эмбаркадеро ftString - это Character or string field.

но как мне казалось, string - в новых версиях это unicodeString)) но не как привычный в 7-ке Ansi
...
Рейтинг: 0 / 0
Неожиданный поворот с ftString и ftWideString.
    #40008964
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUSв новых версиях это unicodeString))

Ты пропустил слово "Delphi", а это важно, поскольку ftString - не в Delphi, а в СУБД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неожиданный поворот с ftString и ftWideString.
    #40008966
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Игорь_UUSв новых версиях это unicodeString))

Ты пропустил слово "Delphi", а это важно, поскольку ftString - не в Delphi, а в СУБД.


теперь всё встало на свои места! спасибо!
...
Рейтинг: 0 / 0
Неожиданный поворот с ftString и ftWideString.
    #40009069
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://docwiki.embarcadero.com/RADStudio/Sydney/en/Unicode_Support_(FireDAC)

To read / write Unicode string values programmatically use:

The TField.AsWideString or TField.Value properties.
TField.AsString on Delphi 2009 and later. On earlier Delphi versions, the reading/writing of the AsString property may lead to conversion loss, because AsString returns ANSI strings there.
To read/write the Unicode field on any Delphi version:

Код: pascal
1.
2.
3.
FDQuery1.Edit;
FDQuery1.Fields[0].AsWideString := FDQuery1.Fields[0].AsWideString + 'русский' + 'english';
FDQuery1.Post;
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Неожиданный поворот с ftString и ftWideString.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]