Строки хранятся как "??????" используя массив FireDAC DML - PullRequest
0 голосов
/ 14 мая 2018

У меня есть эта проблема, когда вставка данных в базу данных Firebird 2.5 с использованием массива FireDAC DML с Delphi XE7 хранит строковые данные как «??????»текст, изображение ниже:

enter image description here

У меня есть TList и я зацикливаю их, передавая параметры:

//ADetalles is a TList<TServiciosDetRec>

ADataSet.Params.ArraySize := ADetalles.Count;

ADataSet.ParamByName('id').DataType := ftInteger;
ADataSet.ParamByName('nombre').DataType := ftString;
ADataSet.ParamByName('serv').DataType := ftInteger;
ADataSet.ParamByName('check').DataType := ftInteger;

for i := 0 to ADataSet.Params.ArraySize -1 do begin

  ADataSet.ParamByName('id').AsIntegers[i] := AIndex;
  ADataSet.ParamByName('nombre').AsStrings[i] := ADetalles.Items[i].SNombre; //<--- Here the Problem
  ADataSet.ParamByName('serv').AsIntegers[i] := ADetalles.Items[i].SCodigo;
  ADataSet.ParamByName('check').AsIntegers[i] := AListChecked.Items[ADetalles.IndexOf(ADetalles.Items[i])].Checked.ToInteger;

end;

ADataSet.Execute(ADataSet.Params.ArraySize,0);

Вот запись:

  TServiciosDetRec = record
    SNombre: String;
    SCodigo: Integer;
    SSelected: Boolean;
  end;

Вставка данных одна за другой с использованием обычного ExecSQL, строки хранятся правильно, но с использованием массива исполнения DML нет.

...