|
|
#1 |
|
Участник
|
Передать binary поле
Нужно перекачать varbinary поле, содержащее картинку, из внешней таблицы в аксаптовскую табличку (AX2012R3)
Помогите, пожалуйста, правилько перобразовать типы. Пишу: X++: System.Data.SqlClient.SqlConnection sqlConnection;
System.Data.SqlClient.SqlDataReader dataReader;
System.Data.SqlClient.SqlCommand command;
str comandText;
SqlStatementExecutePermission permission;
container image;
String conStr = <myConnectionString>;
permission.assert();
sqlConnection = new System.Data.SqlClient.SqlConnection();
sqlConnection.set_ConnectionString(conStr);
command = sqlConnection.CreateCommand();
comandText = strFmt(@"<my select statement>");
command.set_CommandText(comandText);
sqlConnection.Open();
dataReader = command.ExecuteReader();
if (dataReader.Read())
{
image = dataReader.GetValue(1);
....."CIL generation: Error: .NET Cast Type Name not found. Type System.String found on the stack. This code in Class/Table: <MyClassName>, Method: <My methodName> may not work in CIL run time." Пытаюсь изменить на: X++: image = dataReader.GetSqlBinary(1); Я понимаю, что можно через base64 , но хотелось бы именно binary данные перелить, т.е без лишних конвертаций. Спасибо |
|
|
|
|
#2 |
|
Участник
|
Интересно, обе get* операции возвращают класс, а вы его в контейнер и думаете он там магическим образом сконвертируется ? GetSqlBinary возвращает класс у которого value() вернёт вам byte[] вот с ним и работайте.
|
|
|