DTF.chm содержит пример того, как обновить двоичную таблицу.Это в теме «Работа с базами данных MSI».И вы можете догадаться, как сделать противоположную операцию.Код может выглядеть так:
using (var db = new Database("test.msi", DatabaseOpenMode.Direct))
{
using (var view = db.OpenView("SELECT `Data` FROM `Binary` WHERE `Name` = '{0}'", "testbinary"))
{
view.Execute();
var rec = view.Fetch();
var inStream = rec.GetStream("Data");
if (inStream != null)
{
using (var file = File.OpenWrite("S:\\testfile.zip"))
{
CopyStream(inStream, file);
}
}
}
}
Код метода CopyStream можно взять из этого ответа вездесущего Джона Скита .Обратите внимание, что если вы сделаете это из CA, вы будете ссылаться на объект базы данных, например session.Database
, вместо того, чтобы создавать его.