Que tal Lectores,
Vamos empezando el año, y espero que todos hayan tenido unas muy felices fiestas, y unas gratas vacaciones (para todos aquellos que tuvieron vacaciones :-p!), y para los que no, como yo, pues animo, ya pronto vendrán (eso espero!).
En fin, estuve trabajando sobre unos reportes que me encargaron, y cuando ví los requerimientos, dije “aaaah! esta bien fácil!”; pero oooooh demonios, lo que no sabía era que la información la tenía que sacar de unos cubos de SQL SERVER.
Entonces me puse a investigar como es que me podía conectar al cubo y sacar la información, y eh aquí lo que encontré.
Para realizar la conexión con el SQL SERVER ANALYSIS SERVICES es necesario utilizar los objetos ADO MD.
Para utilizar dichos objetos es necesario agregar las siguientes referencias a nuestro proyecto:
- ADOMD.dll
- ADODB.dll
Una vez agregadas dichas referencias, nos vamos a nuestra clase, y creamos las variables que utilizaremos;
Adomd.Catalog Cat;
Adomd.Cellset Cell;
La variable Cat hace referencia al cubo que nos vamos a conectar, y la variable Cell es en donde se guardarán los resultados de las queries.
A continuación, establecemos los parámetros de conexión con el cubo mediante Cat.ActiveConnection, y la consulta mediante Cell.Source.
Abrimos la conexión con Cell.Open.
Por último comenzamos a recorrer el cellset (Cell) con las propiedades Axes.Positions y con el métodos Cellset(j,i). Las propiedades Axes.Positions hacen referencia a los ejes que tiene el resultado que nos devolvió la consulta, pueden ser uno o dos ejes, y cada eje puede tener diferentes posiciones.
Imaginen que es como un plano cartesiano en donde podemos tener eje ‘x’ y/o ‘y’. Y dentro de cada de eje tenemos diferentes valores, y para acceder a los resultados, debemos de indicar el valor de cada eje.
En fin, esto es lo más básico para poder empezar a trabajar con cubo en SQL SERVER, espero que les sea de utilidad.
Fuente: http://msdn.microsoft.com/en-us/library/ms677552(VS.85).aspx
Eventos tecnológicos en GDL: Mayo 2012
Recargar páginas web automáticamente
Samsung & Google: Galaxy Nexus
Descansa en paz…Steve Jobs
Ve lo que imprimes
To float or not to float?
Crea tu meme
¿Qué hay de nuevo? Sin decir nombres
22 enero 2010 at 1:08 PM
Tsss, este semestre veré algo de estos famosísimos, así que más adelante utilizaré esta información.
Grax Charly!
26 agosto 2010 at 12:46 PM
Hola amgo, sabes? ando apenas metiendome con esos rollos de cubos y demas, y bueno caì en el ADOMD .net y ahora tengo una bronca con eso porque resuta que tengo una duda elemental, el putno es que ya teno una consuta MDX y ahora kiero recuperar la información para poderla mostrar en un simple GridView, se que alomejor es facil pero no entiendo bien como hacerlo.. me confunde un poco el hecho de manear otro provideer de BD.. espero me puedas ayudar… ha y bueno es a prmera vez que me emto con consultas MDX. :S
Saludos…
28 agosto 2010 at 1:23 PM
Que onda Ivan,
La verdad es muy fácil recuperar datos de una consutla MDX desde .Net
Qué lenguaje estás utilizando de .Net? C#?
Yo tengo una clase, que se conecta a SQL SERVER ANALYSIS SERVICES, ejecuta la consulta, y mete el resultado en un DATASET.
Si quieres, pasame tu mail, y te al envió, con los comentarios de qué es lo que hace dicha clase.
27 diciembre 2010 at 9:54 AM
Hola Charly llevo 3 meses trabajando con Cubos y tengo una aplicacion web en donde a traves de una pivot table muestro la informacion, mi servidor SQl es un equipo remoto que esta dentro de un dominio, asi que todos los equipos clientes que estan dentro del dominio pueden ver la informacion de la pagina, pero aquellos que no estan dentro no la pueden ver y la Pivot Table me muestra el error “se ha detectado un error en el nivel de transporte”, ESO ES POR QUE EL EQUIPO NO ESTA DENTRO DEL DOMINIO, PODRIAS INDICARME DE QUE FORMA ME PUEDO CONECTAR AL SERVIDOR DE ANALISYS SIN TENER ESE ERROR ¿?¿?, De antemano Gracias
2 enero 2011 at 2:07 AM
Que tal Andrés,
Perdón por la tardanza.
Efectivamente, ese error es debido a que los usuarios se tratan de conectar desde fuera del dominio.
A mi me paso algo similar, desarrollé un sitio para mostrar reportes con información de cubos, al sitio le hice un impersonate con una cuenta de dominio ya que estaba en la intranet, sin embargo, al momento de montar esto en internet, me causo problemas porque el servidor de internet no pertenece al dominio, por lo tanto mi sitio tronaba. La manera en como lo solucioné fue la siguiente:
- Desarrolle un webservice que se alojaba dentro del dominio y tenía acceso al cubo. Dentro de dicho webservice cree los procedimientos para extraer la información para cada reporte.
- Los reportes del sitio, en vez de conectarse directamente al cubo, se conectan al web service, y solicitan la información deseada al procedimiento adecuado.
Espero esto te sea de ayuda para poder solucionar tu problema, de cualquier forma te paso mi correo por si tuvieras más broncas. jcgaribayr@gmail.com