sábado, 12 de marzo de 2016

Leer una hoja de Excel desde Visual Basic y VB.Net

Vamos a ver lo que hay que hacer para leer un archivo Excel desde código de Visual Basic.Net y Visual Basic 6.0

Desde vb.net


Antes de tocar código vamos al administrador de paquetes de Nuget, para ellos desde el Explorador de soluciones pulsamos con en botón derecho del ratón y elegimos Administrar paquetes Nuget.

Leer Excel desde un programa de VB.net

Hecho esto, elegimos ExcelDataReader y lo agregamos a nuestro proyecto.

Leer una hoja de Excel desde VB.Net

Una vez tenemos agregada esta referencia a nuestro programa podemos leer una hoja de Excel desde nuestro código de Visual Basic .Net del siguiente modo:

Dim ExcelApp As New Excel.Application

Dim worksheet As Excel.Worksheet

Dim workbook As Excel.Workbook

Dim oRange As Excel.Range

Dim oRange_Leer As Excel.Range

Private Sub Lee_Excel()

workbook = ExcelApp.Workbooks.Open("C:\Ruta\Archivo_Excel.xlsx")         worksheet = workbook.Worksheets("Hoja1

oRange = worksheet.Range("A1")  

Dim str1 As String

       str1 = oRange.Value

       Text1.Text = str1

       ExcelApp.DisplayAlerts = False                

ExcelApp.Quit()

 End Sub

Para leer un rango de la Hoja de Excel

Private Sub Lee_Excel()

        Dim i As Integer

        workbook = ExcelApp.Workbooks.Open(strOrigenOriginator) ' Abre el archivo de Excel

        worksheet = workbook.Worksheets("Hoja1")

        oRange = worksheet.Range(strRangoOriginator)

        Dim str1 As String

        For i = 1 To Maximo_Valor_Rango

            str1 = DirectCast(oRange.Value, Object(,))(i, 1)

            If (str1) = cboComboBox.Text Then

                oRange_Leer = worksheet.Range(strRangoLeido & i) ' Lee el rango de celdas y lo almacena en un Combo               cbo_ComboBox.Items.Add(oRange_Leer.Value)

            End If

        Next i

        ExcelApp.DisplayAlerts = False ' Deshabilita las Notificaciones del tipo ¿Desea Guardar el archivo?”

        ExcelApp.Quit() 

    End Sub

Desde Visual Basic 6.0

En este caso se abrirá un libro Excel para leer su contenido y luego se cerrará.
Lo primero que hay que hacer es añadir a las referencias del proyecto la dll de Excel. Para ello sobre nuestro proyecto de Visual Basic  hacemos.  Proyecto -> referencias.
  
Leer Excel desde Visual Basic

sábado, 5 de marzo de 2016

Índices en SQL Server 2ª Parte


Creación de índices

Aquí la primera parte:

ÍNDICES EN SQL Server

Índices en SQL server



Existen tres métodos para definir índices:


Explícitamente mediante el comando CREATE INDEX


Implícitamente en el proceso de creación de la tabla.


A través del administrador (Management Studio).


En la entrada  anterior se describen con detalle los índices en SQL Server.

sábado, 27 de febrero de 2016

Liberar espacio en disco con Sql Server 2014

En una entrada anterior explicaba cómo liberar espacio en disco con SQL SERVER 2005, En esta entrada explico lo mismo pero para SQL Server 2014. 
El proceso es prácticamente el mismo, si cabe más sencillo aún.

A través de las opciones Poner sin conexión-Poner con conexión  (Take offline- Bring online)


¡Ojo!  Antes de nada hacer una copia de seguridad de la base de datos.

Conviene antes de empezar cambiar el modo de recuperación de Completo a Simple. Para ello posicionados sobre la base de datos, pulsamos botón derecho del ratón -> propiedades.

Liberar espacio en disco con SQL Server 2014



Y en la pestaña Opciones, sobre el combo modelo de recuperación elegimos simple.

Modo de recuperación Simple


Hecho esto, sobre el explorador de objetos posicionados sobre la base de datos de la que queremos liberar espacio, pulsamos botón derecho del ratón -> tareas -> poner sin conexión (Take offline).

poner base de datos sin conexión, SQL Server


Dejar sin conexión la base de datos

Esto deja la base de datos fuera de conexión, antes de integrarla de nuevo, tenemos que ir al equipo donde está alojada físicamente y eliminar físicamente el archivo .ldf
Con el botón derecho del ratón sobre el explorador de Windows en el archivo .ldf de SQL Server que queremos eliminar.
eliminar un archivo .ldf desde el explorador de windows



Hecho esto podemos poner en conexión de nuevo la base de datos pero sin el archivo .ldf.
Para ello, sobre Databases, botón derecho del ratón -> Tareas -> poner en conexión (o Bring Online) 


reconectar una base de datos SQL Server
Y finalmente en el explorador de objetos de SQL Server ponemos de nuevo a modo de recuperación completa, en la pestaña de opciones de las propiedades de la base de datos. 
modo de recuperación completa, SQL Server

Esto dejará de nuevo la Base de datos disponible pero con el fichero .ldf vacío, en algunos casos esto libera muchos gigas ocupados de forma innecesaria en el disco duro del servidor de bases de datos .

sábado, 20 de febrero de 2016

Índices en SQL Server

Qué es un índice

Un índice consiste en una estructura de punteros a registros o grupos de registros asociados a una tabla. Esta estructura contiene claves asociadas a una o varias columnas de la tabla. La organización de estos punteros a los datos se realiza de manera que se reduzcan Ias búsquedas cuando éstas sean necesarias, distingue los diferentes métodos de indexación. Un índice resulta más eficiente cuantas menos comprobaciones sobre la estructura deba realizar para encontrar un registro.

Los registros de la tabla tienen un tamaño fijo y se almacenan en ficheros, de manera que cada registro queda perfectamente determinado por su posición en el fichero. De esta forma los punteros a los datos que se almacenan en los índices no contienen más que la posición de estos registros en el fichero.

SQL Server almacena los índices como un objeto más de la base de datos. Los objetos de SQL Server se almacenan en un modelo orientado a la página y no al registro, la indexación no se lleva a cabo en ese modelo de puntero fijo, en este modo de almacenamiento, los índices se almacenan en páginas separadas, dentro de la misma base de datos.


Índices en SQL Server


sábado, 13 de febrero de 2016

Declaración del procedimiento no coincide con la descripción del evento

Errores de DLL con Visual Basic

Acabo de terminar mi flamante proyecto de Visual Basic, todo es perfecto, todo está depurado. Ejecuto mi programa en modo depuración con Visual Studio y funciona correctamente pero en otro equipo donde también tengo instalado Visual Studio lo ejecuto y obtengo un error bastante desconcertante:
Que dice: La declaración del procedimiento no coincide con la descripción del evento o el procedimiento que tiene el mismo nombre.

La declaración del procedimiento no coincide con la descripción del evento o el procedimiento que tiene el mismo nombre


sábado, 6 de febrero de 2016

SQL Server: Vistas

Una vista es una sentencia SELECT constituida como un objeto de SQL separado de la tabla o tablas a las que hace referencia. El resultado de su ejecución es un conjunto de registros similar al que obtendríamos con una tabla.
La vista no es una tabla, es una definición de una consulta es decir no posee datos propios. Una vez que está definida la consulta, una vista puede utilizarse como si fuera una tabla, refiriéndose a ella por su nombre.


Vistas en SQL Server