| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			PivotTable и OLAP
			 
			
			Привет всем! 
		
		
		
		
		
		
			Возникла необходимость прицепиться из Аксапты к существующему кубу на 2008 сервере. Ставлю на форму ActiveX PivotTable а дальше надо подключиться - не выходит. инстанс: olapserver\dds кубик: salescube X++: strConnection = '"Provider=MSOLAP;Data Source=olapserver\\dds;Initial Catalog=salescube;';
pt1.ConnectionString(strConnection);[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию" если вот такую строку подключения сделать: X++: strConnection = '"Provider=MSOLAP;Integrated Security=SSPI;Persist Security Info=False;Data Source=olapserver\\dds;Initial Catalog=salescube;';
pt1.ConnectionString(strConnection);как прицепиться то к кубику? пытался писать и так: Provider=MSOLAP.3 (хотя это для 2005) и Provider=MSOLAP.4 - фиг вам ![]() Сразу про формат строки - в начале двойная кавычка, т.к. без нее вообще не хочет коннектиться, а если поставить в конце закрывающуюся двойную кавычку - тоже не хочет коннектиться. "The data provider didn't supply any further error information" и тишина. Авторизация виндусовая сделана и если захожу через Management Studio - все подключается и все работает. 
				__________________ 
		
		
		
		
	и не таких обламывали  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Неправильно. Надо так: 
		
		
		
		
		
		
			1) Initial Catalog=НАЗВАНИЕ БД ОЛАП 2) перед вызовом pt1.ConnectionString() нужно вызвать X++: pt1.DataMember("Название куба")
				__________________ 
		
		
		
		
	Ivanhoe as is..  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
инстанс: olapserver\dds база олап: DDS куб: salescube X++: strConnection = '"Provider=MSOLAP;Data Source=olapserver\\dds;Initial Catalog=DDS'; pt1.DataMember('salescube'); pt1.ConnectionString(strConnection); 
				__________________ 
		
		
		
		
	и не таких обламывали  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Попробуйте такую строку: 
		
		
		
		
		
		
			Цитата: 
	
		
			Provider=MSOLAP.3;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Dynamics AX;Data Source=SRV\OLAP
		
	 
где SRV\OLAP - полное название сервера ОЛАП; Dynamics AX - название БД ОЛАП. И зачем у вас двойная кавычка в начале? 
				__________________ 
		
		
		
		
	Ivanhoe as is..  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Player1 (2). | |
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо, заработало! 
		
		
		
		
		
		
			С кавычкой это я извращался, а то выдавалось "The data provider didn't supply any further error information" сейчас все нормально и без нее. Спасибо! Если уж зашел разговор про OLAP - этот вариант просто самый быстрый. А есть ли в 2009 возможность прицепляться к внешним кубам каким-то нормальными средствами визуализации,например, как в 2010 шарепоинте? Чтобы и таблицы видеть и графики смотреть красивые? 
				__________________ 
		
		
		
		
		
			и не таких обламывали Последний раз редактировалось Kuibida; 08.07.2010 в 15:53.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			А получить список кубов в базе реально?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Реально. 
		
		
		
		
		
		
		
		
			Например, вот так X++: Microsoft.AnalysisServices.AdomdClient.AdomdConnection con = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection(); Microsoft.AnalysisServices.AdomdClient.CubeCollection cubes; Microsoft.AnalysisServices.AdomdClient.CubeDef cubeDef; int i; int cubesCount; ; // set your own connection string con.set_ConnectionString("provider=msolap;Data Source=(local);initial catalog=<YourCubeBase>;"); con.Open(); cubes = con.get_Cubes(); cubesCount = cubes.get_Count(); for (i = 0; i < cubesCount; i++) { cubeDef = cubes.get_Item(i); if (cubeDef.get_Type() == Microsoft.AnalysisServices.AdomdClient.CubeType::Cube) info(cubeDef.get_Name()); } Для работы данного кода в узле References должна быть подключена сборка Microsoft.AnalysisServices.AdomdClient Последний раз редактировалось Cardagant; 19.04.2014 в 14:07.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: sukhanchik (2), gl00mie (2), Player1 (2), arhat (1). | |
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да читал про этот вариант OLAP: проблема с программным процессингом измерений SSAS 2005  
		
		
		
		
		
		
		
	Спасибо что откликнулись, но т.к. версия Ах3.0, то вариант с References не подходит. Смотрю в сторону DSO, но опять же он не поддерживается в sql server 2008.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Cardagant (1). | |
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Player1
			 
 
			Да читал про этот вариант OLAP: проблема с программным процессингом измерений SSAS 2005  
		
	Прочитав, выложу подобный вариант с использованием IEnumerator, который также может быть полезен и применён в версиях, поддерживающих CLR. X++: Microsoft.AnalysisServices.AdomdClient.AdomdConnection con = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection(); Microsoft.AnalysisServices.AdomdClient.CubeCollection cubes; Microsoft.AnalysisServices.AdomdClient.CubeDef cubeDef; System.Collections.IEnumerator en; ; // set your own connection string con.set_ConnectionString("provider=msolap;Data Source=(local);initial catalog=<YourCubeBase>;"); con.Open(); cubes = con.get_Cubes(); en = cubes.GetEnumerator(); while(en.MoveNext()) { cubeDef = en.get_Current(); if (cubeDef.get_Type() == Microsoft.AnalysisServices.AdomdClient.CubeType::Cube) info(cubeDef.get_Name()); }  | 
| 
	
 | 
| Теги | 
| activex, adomd, olap, pivottable, сводная таблица | 
| 
	
	 | 
	
		
  |