Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
проблемы с ADO MD
|
|||
|---|---|---|---|
|
#18+
Пытаюсь просмотреть метаданные многомер.базы (использ. DELPHI 7). Успешно соединяюсь с базой, вижу количество кубов, Catalog1:=CreateComObject(StringToGUID('ADOMD.Catalog')) as ICatalog; Catalog1.Set_ActiveConnection(OleVariant(DataSource)); for i := 0 to Catalog1.CubeDefs.Count - 1 do и на этом все заканчивается - при попытке просмотра куба выдает ошибку "Access violation и т.д." CubeDef1 := Catalog1.CubeDefs as CubeDef; Может быть кто-нибудь подскажет в чем дело, что я неправильно делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 16:06 |
|
||
|
проблемы с ADO MD
|
|||
|---|---|---|---|
|
#18+
судя по первым словам ошибки проблемы с доступом к каталогу настройте роли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 16:45 |
|
||
|
проблемы с ADO MD
|
|||
|---|---|---|---|
|
#18+
for i := 0 to Catalog1.CubeDefs.Count - 1 do CubeDef1 := Catalog1.CubeDefsas CubeDef А что это такое написано? Надо: for i := 0 to Catalog1.CubeDefs.Count - 1 do CubeDef1 := Catalog1.CubeDefs.GetItem(i) as CubeDef ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 16:46 |
|
||
|
проблемы с ADO MD
|
|||
|---|---|---|---|
|
#18+
извиняюсь, конечно же было написано CubeDef1 := Catalog1.CubeDefs.Item as CubeDef; С доступом к каталогу, я думаю, все нормально, я же вижу количество кубов в каталоге! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 16:51 |
|
||
|
проблемы с ADO MD
|
|||
|---|---|---|---|
|
#18+
да что за ерунда опять ссылка на (i) куда-то подевалась (короче после Item в квадратных скобках i) CubeDef1 := Catalog1.CubeDefs.Item(i) as CubeDef; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 16:55 |
|
||
|
проблемы с ADO MD
|
|||
|---|---|---|---|
|
#18+
Давно на паскале ничего не писал, не помню-)); но можно попробовать проверить следующие моменты - для верности (возможно, где-то скажу ерунду-): 1) После Item i в квадратных скобках? А разве не в круглых? Если попробовать в круглых? 2) Какого типа должен быть параметр у Item (тот, который i)??? В idl он объявлен как VARIANT, а ты наверняка integer ему суешь. Не знаю, как тут поступает Дельфи, но, может, создать из значения i OleVariant и именно так его отдать в параметр Item? 3) Какого типа CubeDef1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 17:24 |
|
||
|
проблемы с ADO MD
|
|||
|---|---|---|---|
|
#18+
если обращаться к кубу с использованием Get_Item, то параметр в круглых скобках и соответствует имени куба, если обращаться по номеру элемента в списке, т.е. Items, то в квадратных скобках и параметр порядковый номер CubeDef1 типа CubeDef ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 17:38 |
|
||
|
проблемы с ADO MD
|
|||
|---|---|---|---|
|
#18+
Я делаю примерно так ... (правда Delphi 6) Catalog1:=CreateComObject(StringToGUID('ADOMD.Catalog')) as ICatalog; Catalog1._Set_ActiveConnection(OleVariant(ConnectionString)); If Catalog1.CubeDefs.Count > 0 then begin For i := 0 to Catalog1.CubeDefs.Count-1 do begin CubeDef1:= Catalog1.CubeDefs as CubeDef; далее обращение : CubeDef1.Name - имя куба end; end; Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 19:14 |
|
||
|
проблемы с ADO MD
|
|||
|---|---|---|---|
|
#18+
Ну, в общем, да, так и есть. После CubeDefs i в квадратных скобках. Написанный код правильный, он должен работать. Если это НЕ работает, значит проблема где-то в другом -) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 13:09 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=32465000&tid=1872736]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 349ms |

| 0 / 0 |
