🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.database.ado
Article #4145

Re: ADOMD: How to retrieve "CudeDef" object from "CubeDefs" collection?

#4145
From: Vassiliev V.V.
Date: Wed, 27 Mar 2002 09:20
61 lines
3288 bytes
���� �� �����, Catalog1->CubeDefs->get_Item(I) ���������� CubeDef25. �
��������, ����� �������� ��������� �� IDispatch (��� IUnknown), � �� ����
QueryInterface �� CubeDef - ��� � ������ �������� as �  Catalog1.CubeDefs[I]
as CubeDef.

IDispatch * disp = NULL;
disp = Catalog1->CubeDefs->get_Item(I);
disp->QueryInterface(IID_CubeDef, (void**)&CubeDef1);
disp->Release();

�������� �.�.

"Sorokoletov Gregory" <gsorokoletov@sovintel.net> �������/�������� �
�������� ���������: news:3ca052df$1_2@dnews...
>
> How can I retrieve "CudeDef" object from "CubeDefs" collection?
>
> I Delphi it is possible in the following way:
>
> var
>   Catalog1: ICatalog;
>   CudeDef1: CubeDef;
>   I: Integer;
>
> Catalog1 := CoCatalog.Create;
> Catalog1._Set_ActiveConnection(OleVariant(DataSource)); // DataSource -
> connection string
> for I:= 0 to Catalog1.CubeDefs.Count- 1 do
> begin
>   CudeDef1= Catalog1.CubeDefs[I] as CubeDef;
>
>   // here we use the CubeDef object;
>   TreeView1.Items.AddChild(RootNode, CubeDef1.Name);
> end;
>
> But when in C++ Builder I wrote:
>
>   WideString DataSource= "Provider=MSOLAP.2;
>                                              Integrated Security=SSPI;
>                                              Persist Security Info=False;
>                                              Data Source=ARISXXXXX;
>                                              Initial Catalog=FoodMart
2000;
>                                              Client Cache Size=25";
>   Catalog1->set_ActiveConnection(DataSource);
>   TCOMCubeDefs CubeDefs1= Catalog1->CubeDefs;
>   TCOMCubeDef25 CubeDef1;
>   //CubeDefs *CubeDefs1= Catalog1->CubeDefs;
>   //CubeDef *CubeDef1;
>   for(I= 0; I < CubeDefs1->Count; I++)
>   {
>     CubeDef1= Catalog1->CubeDefs->get_Item(I);  // here will be error!
>     // CubeDef1= Catalog1->CubeDefs[I];
>     TreeView1->Items->AddChild(RootNode, CubeDef1->Name);
>   }
>
> I get error: access violation :((((((((((((((((((!!!
>
>  Please explain my where is my error!
>
>
Technical Details
Message-ID: <3ca193c5_2@dnews>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!62.24.128.9.MISMATCH!news-1.opaltelecom.net!newsfeed.icl.net!newsfeed1.cidera.com!Cidera!news-hog.berkeley.edu!ucberkeley!nntp-relay.ihug.net!newsfeeds.ihug.co.nz!ihug.co.nz!dnews
References: <3ca052df$1_2@dnews>

Show Full Headers
Complete Article Headers
X-Google-Language: UKRAINIAN,KOI8R
X-Google-Thread: 10698b,c870f68434c1f204
X-Google-Attributes: gid10698b,public
X-Google-ArrivalTime: 2002-03-27 01:54:06 PST
From: "Vassiliev V.V." <vv_vas@iname.com>
Newsgroups: borland.public.cppbuilder.database.ado
References: <3ca052df$1_2@dnews>
Subject: Re: ADOMD: How to retrieve "CudeDef" object from "CubeDefs" collection?
Date: Wed, 27 Mar 2002 12:20:40 +0300
Lines: 63
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
NNTP-Posting-Host: 62.118.134.38
Message-ID: <3ca193c5_2@dnews>
X-Trace: dnews 1017222085 62.118.134.38 (27 Mar 2002 01:41:25 -0800)
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!62.24.128.9.MISMATCH!news-1.opaltelecom.net!newsfeed.icl.net!newsfeed1.cidera.com!Cidera!news-hog.berkeley.edu!ucberkeley!nntp-relay.ihug.net!newsfeeds.ihug.co.nz!ihug.co.nz!dnews