miércoles, 20 de abril de 2011

System.Data.OleDb.OleDbException: Unspecified error

En uno de los proyectos en los que estoy, usé Microsoft Access Database Engine 2010 Redistributable para leer un archivo de Excel desde un componente de Sharepoint y, al pasar el sistema a producción me he encontrado con la sorpresa de que no funcionaba y el error era tan descriptivo como "Unspecified error"...


Consultando a San Google, encontré la siguiente web y me ha parecido interesante compartir esta información.





Saludos,


Jose

martes, 15 de febrero de 2011

Cómo desplegar un cubo

En este post no voy a contar cómo diseñar un cubo (ya que no es una tarea trivial). Me voy a limitar a enumerar unos pasos para desplegar un cubo con SQL Server 2008.

En primer lugar generaremos la solución (el cubo) desarrollada con BIDS (SQL Server Business Intelligence Development Studio). En la carpeta "Bin" encontraremos un archivo con extensión "asdatabase" que debemos copiar y llevar al entorno en el que queramos desplegar el cubo.

Una vez hayamos entrado en el servidor de bases de datos en el que queremos desplegar el cubo iremos al directorio C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\ y abriremos el ejecutable "Microsoft.AnalysisServices.Deployment.exe".

Lo primero que pide el asistente de despliegue es el archico con extensión .asdatabase que hemos copiado antes:



En el formulario siguiente debemos introducir el nombre del servidor de bases de datos (localhost en mi caso) y el de la base de datos del cubo (BI Social Interaction 3).

En el formulario siguiente yo he seleccionado estas opciones porque son las que me interesaban pero en función del caso puede que interese seleccionar otras:


A continuación, actualizaremos la cadena de conexión y el usuario.



Como una imagen vale más que 1000 palabras, subo el resto de pantallazos hasta completar el proceso:





Como veis, desplegar un cubo es una tarea bastante sencilla y rápida.

viernes, 26 de noviembre de 2010

Error editar en hoja de datos

Si en alguna ocasión intentais acceder a la vista de edición rápida (acciones->editar en hoja de datos) y os sale el siguiente error

y el motivo del error no es ninguno de los que aparecen en la ventana anterior probad a entrar en el registro de la máquina (inicio->ejecutar->regedit) y eliminar la siguiente entrada:

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{65bcbee4-7728-41a0-97be-14e1cae36aae}"

martes, 23 de noviembre de 2010

.Net Framework 2.0 3.0 3.5 x86 y x64

No sé si será porque últimamente estoy creando muchas máquinas virtuales pero la verdad es que el otro día vi este post y me pareció interesante compartirlo. En él se listan los links para descargar todas las versiones de .Net Framework (desde la 1 hasta la 3.5).

Un saludo!

martes, 28 de septiembre de 2010

Cómo crear un disco duro virtual VHD

Una de las novedades que más me ha gustado de Windows 7 (y que también está disponible para Windows 2008 Server R2) es poder arrancar el ordenador desde una máquina virtual (un disco duro virtual).



A continuación voy a contar cómo crear un disco duro virtual con Windos Server 2008 R2 y cómo mostrar la opción de arrancar el ordenador desde él por comandos (muchos de los pasos, si no todos, se pueden hacer desde ventanas del sistema pero me parece más cómodo hacerlo desde consola).



En primer lugar debemos descargar e instalar Windows AIK; se puede descargar de aquí.



Una vez descargado creamos un directorio en el disco duro en el que guardaremos el disco duro virtual (en mi caso C:\vhds) y por comodidad copiamos a este directorio el archivo intall.wim (situado en la carpeta sources del DVD de Windows 2008 Server).



A continuación, abrimos la consola de comandos y escribimos DISKPART.



Ahora vamos a crear el disco duro virtual escribiendo:



create vdisk file=c:\vhds\Windows2008R2.vhd maximum=50000 type=fixed



donde 50000 es el tamaño en MB del disco duro virtual y fixed indica que el tamaño del disco no irá creciendo conforme vayamos metiendo archivos, sino que ocupará ese espacio desde el momento en el que se cree.



Esto tardará un poco en ejecutarse pero iréis viendo el porcentaje de avance en la pantalla.



Cuando termine escribimos:



sel vdisk file=c:\vhds\Windows2008R2.vhd

attach vdisk



list disk

sel disk 1 -->en mi caso es el disco 1

create part primary

sel part 1

active

format fs=ntfs quick

assign



exit -->Salimos de DISKPART



Si vamos a Equipo (o Mi PC) veremos un nuevo disco duro (en mi caso F:\).



Ahora en la consola de comandos escribimos:



cd c:\Archivos de programa\Windows AIK\Tools\x86\



para situarnos en la carpeta en la que está el archivo imagex.exe.



Comprobamos la información del archivo install.wim que copiamos al principio y aplicamos la imagen al disco virtual (es parecido a una preintalación de Windows).



imagex /info c:\vhds\install.wim

imagex /apply c:\vhds\install.wim /check 1 F: --> Pongo F: porque es la letra que se asignó antes al disco virtual.



Cuando termine la ejecución del comando anterior volvemos a poner DISKPART y escribimos los siguientes comandos:



sel vdisk file=c:\vhds\Windows2010R2.vhd

detach vdisk --> veremos que ha desaparecido la unidad F:\



Exit



Ahora escribimos BCDEDIT



bcdedit /copy {current} /d "Windows Server 2008 R2"



Tras ejecutar este comando, nos aparecerá "La entrada se copió correctamente en {XXXXX}". Copiar ese indentificador y ejecutar los siguientes comandos:



bcdedit /set {XXXX} device vhd=[C:]\vhds\Windows2008R2.vhd

bcdedit /set {XXXX} osdevice vhd=[C:]\vhd\Windows2008R2.vhd

bcdedit /set {XXXX} detecthal on

bcdedit /set {XXXX} description "Windows Server 2008 R2"



Ahora escribimos bcdedit de nuevo para comprobar que se han realizado los cambios, cerramos la consola de comandos y reiniciamos para comprobar que tenemos una nueva opción de arranque.

martes, 7 de septiembre de 2010

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

Una de las cosas en las que me he entretenido estos días es en desarrollar un módulo que leyera un archivo Excel sin utilizar Interop. Para ello utilicé OLEDB y en mi máquina virtual de 32 bits todo funcionaba bien pero en el servidor de 64 me salía el error que aparece en el título. Esto se debe a que el componente de conexión para Office 2003/2007 sólo está disponible en 32 bits así que una de las posibles soluciones es compilar el proyecto en modo 32 bits.

Os dejo el link a la página de descarga del componente de conexión para datos de Office

http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en

Como dije en el párrafo anterior, una de las soluciones es recompilar en modo 32 bits, pero hay otra que me ha gustado más. El componente de conexión de datos de Office 2010 está disponible en 64 bits, por tanto, no hace falta recompilar nada y de esta forma, el desarrollo ya está preparado para leer archivos de Office 2010. Este componente se puede descargar de la página:

http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

Saludos

jueves, 17 de junio de 2010

Comandos STSADM

En muchos casos necesitamos ejecutar comandos STSADM y, a mí por lo menos, en más de una ocasión se me ha olvidado ir al directorio “C:\Archivos de programa\Archivos comunes\Microsoft Shared\web server extensions\12\BIN” antes de ejecutar el comando.

Para evitar esto (que a mí personalmente se me hace algo pesado) os propongo dos soluciones:

1. Crear un script

Una opción para no tener que introducir la ruta a mano es crear un ficheo de texto (.txt), introducir la siguiente línea

cd C:\Archivos de programa\Archivos comunes\Microsoft Shared\web server extensions\12\BIN

y renombrar este fichero a .bat.

Desde mi punto de vista, esto es bastante útil para introducirlo en scripts de despliegue para que los administradores de los servidores sólo tengan que hacer doble-click en un archivo.

2. Variables de entorno

La segunda opción es agregar la ruta (“C:\Archivos de programa\Archivos comunes\Microsoft Shared\web server extensions\12\BIN”) como Variable de Sistema. Esto permitirá que el comando stsadm.exe esté disponible desde cualquier ubicación.

Hacer esto es tan sencillo como:

  1. Pinchar con el botón derecho del ratón en Mi PC y después con el izquierdo en la opción "Propiedades".
  2. Seleccionar la pestaña "Opciones avanzadas" y pulsar en el botón "Variables de entorno".
  3. En la tabla "Variables del sistema" seleccionar la variable PATH y pulsar en el botón modificar.
  4. En el formulario que ha aparecido, pinchar en el segundo cuadro de texto "Valor de la variable", ir hasta el final y agregar la siguiente línea:

;C:\Archivos de programa\Archivos comunes\Microsoft Shared\web server extensions\12\BIN

Esta opción viene muy bien para las máquinas virtuales en las que desarrollamos y hacemos pruebas.