13.07.2018, 19:59 | #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 данные перелить, т.е без лишних конвертаций. Спасибо |
|
14.07.2018, 04:15 | #2 |
Участник
|
Интересно, обе get* операции возвращают класс, а вы его в контейнер и думаете он там магическим образом сконвертируется ? GetSqlBinary возвращает класс у которого value() вернёт вам byte[] вот с ним и работайте.
|
|