powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Проблема с CubeDef в Delphi 7
4 сообщений из 4, страница 1 из 1
Проблема с CubeDef в Delphi 7
    #32730330
JohNick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу получить метаданные из MS AS, пишу приерно следующее:

var
CubesCounter : integer;
ActiveConnection : ADODB.TADOConnection;
dbCatalog : ADOMD_TLB.Catalog;
Cube : ADOMD_TLB.CubeDef;
begin
ActiveConnection := ADODB.TADOConnection.Create(self)
ActiveConnection.ConnectionString := 'Datasource=LocalHost; Provider=msolap; Initial Catalog=FoodMart 2000;';
ActiveConnection.Open();
dbCatalog := ADOMD_TLB.CoCatalog.Create();
dbCatalog.Set_ActiveConnection(ActiveConnection.ConnectionString);

for cubesCounter := 0 to dbCatalog.CubeDefs.Count - 1 do
begin
ShowMessage(dbCatalog.CubeDefs[cubesCounter].Name);
end;
end;

dbCatalog.CubeDefs.Count - возвращает кол-во кубов, но при попытке достать
cubedef - вылетает напрочь (Access violation...)

Видел топик с подобной проблемой, но решения там нет :(
Подскажите пожалуйста, как это можно вылечить.
...
Рейтинг: 0 / 0
Проблема с CubeDef в Delphi 7
    #32730634
PearlFisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сними галку "Stop on Delphi Exceptions" в опциях дебаггера.
...
Рейтинг: 0 / 0
Проблема с CubeDef в Delphi 7
    #32731480
JohNick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за отклик, однако такой опции не нашел.
Помогло следующее:
в файле ADOMD_TLB.pas удалил из интерфейсов CubeDefs и CubeDefsDisp методы типа GhostMethod*, удалил интерфейсы CubeDef и CubeDefDisp,
и переименовал CubeDef25 и CubeDef25Disp в соответственно CubeDef и CubeDefDisp. И о чудо - заработало!
Вобщем методом проб и ошибок :)
...
Рейтинг: 0 / 0
Проблема с CubeDef в Delphi 7
    #32733574
AlexPAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю примерно так:

var Catalog1: ICatalog;


Catalog1:=CreateComObject(StringToGUID('ADOMD.Catalog')) as ICatalog;
Catalog1._Set_ActiveConnection(OleVariant(ConnectionString));
If Catalog1.CubeDefs.Count > 0 then
For i := 0 to Catalog1.CubeDefs.Count-1 do
CubeDef1:= Catalog1.CubeDefs as CubeDef;
...
Далее обращаешься к CubeDef1.Name
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Проблема с CubeDef в Delphi 7
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]