Уважаемые коллеги по несчастью, прошу о поммощи в нелёгком деле.
Хотя не столь нелёгком, сколь деле опыта.
Вот довелось мне работать с Microsoft Analysis Services.
Довелось аж до расчёта кубов... (Кто занимался подобным , поймёт).
Суть проблемы следующая.Есть куб на OLAP — сервере,есть некоторая программа(моя), которая взаимодействует с этим OLAP — сервером.
Сама программа написана на MsVisualFoxPro8.0
private m.dsoServer
store '' to m.dsoServer
m.dsoServer = Createobject('DSO.Server')
<...>(Создание и инициализация объекта)
....
m.dsoDB = dsoServer.MDStores('DbName')
m.dsoCube = dsoDB.MDStores.Item("MyCube")
m.dsoCube.Process()
Вот метод Process() выполняется, а куб полностью не рассчитывается, т.к. Process() по дефолту делает только incremental update.
Чтобы сделать полный расчёт , необходимо написать:
m.dsoCube.Process(processFull)
Но "Константа 'processFull' не найдена"... Вопрос, какое численное значение имеет эта константа?
Весь MSDN перерыл... Ничего. А в Fox — она не определена...
Зараннее благодарен
Да.Вот в нете порылся, нашёл.ProcessFull = 1.
Но! Не пересчитывает куб , зараза.
Есть ещё константа processBuildStructure.Её значения в нете я не нашёл... Мож она поможет.
Если кто имел дело с подобным, напишите плз.
Здравствуйте, Mefistofel6, Вы писали:
M>Вот метод Process() выполняется, а куб полностью не рассчитывается, т.к. Process() по дефолту делает только incremental update.
M>Чтобы сделать полный расчёт , необходимо написать:
M>m.dsoCube.Process(processFull)
M>Но "Константа 'processFull' не найдена"... Вопрос, какое численное значение имеет эта константа?
M>Весь MSDN перерыл... Ничего. А в Fox — она не определена...
Судя по
здесь где-то 2-3

А еще
здесь есть пример.
... << RSDN@Home 1.1.4 beta 2 181>>
Предлагаю попробовать стандартными средствами.
Создать DTS-ку с перерасчетом куба, таким, какой тебе нужен.
А дальше из твоей программы толкать эту DTS-ку
1. DTSrun'ом
2. или же создать джоб, в котором запускается DTS-ка, и толкать её sp_job_start (пошёл уже явный изврат
)