31.07.2017, 19:12 | #1 |
Участник
|
Чтение картинки из БД
Всем доброго дня. Прошу совета вот в каком вопросе. У меня есть две аксаптовских БД (4 и 12). Так уж получилось что и в той в той есть одинаковые товары, но в базе Ах4 в отдельной таблице есть картинки. Задача при нажатии кнопки в Ах12 подтягивать картинку из базы Ах4 и записывать её в базу Ах12. Где-то натыкался на подобное обсуждение, но не могу его сейчас найти.
Пробовал вот так X++: loginProperty = new LoginProperty(); loginProperty.setServer (systemParameters.Ax4ServerName); loginProperty.setDatabase(systemParameters.Ax4DatabaseName); odbc = new ODBCConnection(loginProperty); if(odbc) { binData = new BinData(); statement = odbc.createStatement(); queryText = strfmt(<>); perm = new SqlStatementExecutePermission(queryText); perm.assert(); odbc.ttsbegin(); resultSet = statement.executeQuery(queryText); CodeAccessPermission::revertAssert(); resultSet.next(); inventItemImage = InventItemImage::findOrCreate(_inventTable.ItemId, InventItemImageFormat::FullAx, true); // но не могу из resultSet забрать картинку и положить в binData odbc.ttscommit(); inventItemImage.Image = binData.getData(); inventItemImage.update(); _inventTable.IsImage = NoYes::Yes; _inventTable.update(); Еще пробую вот так X++: sqlConnection = new System.Data.SqlClient.SqlConnection(strFmt("Data Source=%1;Initial Catalog=%2;Integrated Security=True", systemParameters.Ax4ServerName, systemParameters.Ax4DatabaseName)); queryText = strfmt(<>); sqlCommand = new System.Data.SqlClient.SqlCommand(queryText, sqlConnection); try { sqlConnection.Open(); sqlCommand.ExecuteNonQuery(); binData = new BinData(); binData.setData(sqlCommand.get_Container()); // вот тут ругается на что setData вызван с недопустимыми параметрами sqlCommand.Dispose(); sqlConnection.Close(); sqlConnection.Dispose(); ttsBegin; inventItemImage = InventItemImage::findOrCreate(_itemId, InventItemImageFormat::FullAx, true); inventItemImage.Image = binData.getData(); inventItemImage.update(); ttsCommit; } catch { info(CLRInterop::getLastException().ToString()); sqlConnection.Close(); } Еще был вариант слинковать сервера и написать что-то вроде X++: update t1 set t1.Image=t2.Image from TableWithImage t1 join [SQLAx4].Ax4.dbo.TableWithImage t2 |
|