![]() |
#2 |
Участник
|
Решение вопросов.
1. Записывать в базу контейнера как аксапта это делает (получается такой же Image) X++: conClass = new ContainerClass(con); binData = new BinData(); binData.setData(conClass.toBlob()); string = binData.base64Encode(); clrObject = System.Convert::FromBase64String(string); //clrObject отправляем в System.Data.SqlClient.SqlParameter.Value 2. Выяснилось что SQL генерирует разные уровни оповещений, и не все являются ошибками, которые перехватывает метод CLRInterop::getLastException(). Также хочу заметить что аксапта не может использовать нетовские handler(обработчик событий. Поэтому Решение - написание библиотеки, которая в себе содержит функции обработки событий и возвращает готовые исключения типа SqlException или Exception, либо это info от sql типа SqlInfoMessageEventArgs X++: public class SysSqlCommand { SqlCommand sqlComm; SqlException sqlEx; Exception ex; public SysSqlCommand(SqlCommand _sqlComm) { this.sqlComm = _sqlComm; } public void ExecuteNonQuery() { try { sqlComm.ExecuteNonQuery(); } catch (SqlException _ex) { sqlEx = _ex; throw; } catch (Exception _ex) { ex = _ex; throw; } } public SqlException sqlException() { return sqlEx; } public Exception exception() { return ex; } } |
|
Теги |
ado, внешняя база |
|
|