Ok, со конвертацией стринга джоб выполнился успешно, но вот класс мне не удалось поправить
Вот этот код:
clsBinData.setData(tabOutputLogData.Data);
поле Data в таблице типа Контейнер
Я проверила, как оно заполняется, вроде должно быть все правильно.
Создаем запись в таблице tabOutputLog в методе saveData
X++:
tabOutputLog.saveData(this.readfilebin(_filename));
В методе readfilebin читаем файл и с помощью getData() пишем данные в контейнер.
X++:
container readfilebin(filename _filename)
{
fileIOPermission fileIOPermission;
BinData clsBinData; // = new BinData();
filename TmpFile = _filename;
container Con;
;
fileIOPermission = new FileIOPermission(_filename, #io_read);
fileIOPermission.assert();
LclsBinData = new BinData();
if (!clsBinData.loadFile(_filename))
{
CodeAccessPermission::revertAssert();
throw error(strFmt("@EXP425", TmpFile));
}
Con = clsBinData.getData();
CodeAccessPermission::revertAssert();
return Con;
}
В метод saveData передаем контейнер
X++:
public void saveData(container _cntData)
{
CIREXPOutputLogData ltabInputLogData;
;
ttsbegin;
ltabInputLogData = CIREXPOutputLogData::find(this.UnloadNumber,true);
if (ltabInputLogData)
{
ltabInputLogData.Data = _cntData;
ltabInputLogData.update();
}
else
{
ltabInputLogData.clear();
ltabInputLogData.UnloadNumber = this.UnloadNumber;
ltabInputLogData.Data = _cntData;
ltabInputLogData.insert();
}
ttscommit;
}
По идее в контейнере должен быть BLOB
Но почему-то я не могу конвертировать этот контейнер в стринг
edtStr = BinData::dataToString(tabOutputLogData.Data);
Ловлю трассировку стека, неправильный параметр
Может быть эта ошибка из.за того, что контейнер пустой в моем примере?