У меня есть эта проблема, когда вставка данных в базу данных Firebird 2.5 с использованием массива FireDAC DML с Delphi XE7 хранит строковые данные как «??????»текст, изображение ниже:
![enter image description here](https://i.stack.imgur.com/PbDqs.png)
У меня есть 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 нет.