Mostrando las entradas con la etiqueta Microsoft. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Microsoft. Mostrar todas las entradas

viernes, abril 20, 2007

Triggers DML con eventos multiples en SQL Server 2005

En este articulo se describe una forma en que se puede tomar en cuenta para manejar más de un solo evento en los triggers DML

La sintaxis para crear triggers DML es la siguiente

CREATE TRIGGER nombre_trigger
ON { tabla | vista }
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sentencia_sql [ ; ] [ ,...n ] | EXTERNAL NAME
}

Pero...que pasa si no quieres hacer un trigger para cada evento, y en vez deseas hacer un solo que responda a cualuqier evento, en ese caso esta es una buena opcion

Primero que nada hay que saber que en los triggers se generan tablas temporales, una llama INSERTED y otra DELETED

Cuando se inserta un registro y un trigger responde a ese evento entonces se llena la tabla INSERTED, en caso de eliminar un registro se llena la tabla DELETED, mas sin embargo no hay una tabla UPDATED en vez se llenan las dos tablas son la información de lo que se inserta y lo que se borra

Esto ultimo es la base para lo que a continuación se va a realizar, la parte importe es hacer condiciones las cuales distingan cual fue la o las tablas que se llenaron, lo cual con un SELECT COUNT(*) se puede realizar, esto resulta algo asi:


CREATE TRIGGER nombreTrigger ON nombreTabla
FOR INSERT, UPDATE, DELETE
AS
IF (SELECT COUNT(*) FROM INSERTED) > 0 AND (SELECT COUNT(*) FROM DELETED) > 0
BEGIN
'Sentencia SQL
REURN
END
IF (SELECT COUNT(*) FROM INSERTED) > 0
BEGIN
'Sentencia SQL
END

IF (SELECT COUNT(*) FROM DELETED) > 0
BEGIN
'Sentencia SQL
END


En la primera parte se hace una condicion para saber si ambas tablas estan llenas lo cual indica un UPDATE, si es cierto sale del triger de lo contrario continua la seleccion.En la segunda y tercera parte se distingue que tabla por individual esta llena. En este punto ya podemos saber que evento disparo el trigger y podemos actuar debidamente

Gracias a el Rola por su colaboración en este articulo

viernes, marzo 30, 2007

Interoperabilidad Office

Para poder tener un efecto de interoperabilidad de Microsoft Office 2003 desde un lenguaje .NET es necesario contar con los ensamblados necesarios para logarlo, estos se puden descargar desde el siguiente link

http://support.microsoft.com/kb/897646


En los cuales se encuentan entre otros los siguientes namespaces:
  • Microsoft.Office.Interop.Outlook
  • Microsoft.Office.Interop.PowerPoint
  • Microsoft.Office.Interop.Word
Estos son muy faciles de utilizar, solo hay que recordar que por mas parecidos que sean entre si no quiere deci que sean exactamente iguales; y que hay que hacer las referencias correspondientes

martes, noviembre 28, 2006

Imprimir Hojas de Calculo desde .NET

Imports Microsoft.Office.Interop.Excel

Public Class ImprimirExcel

Shared Function Imprimir(ByVal Direccion As String) As Boolean
Try
Dim xlsApp As New Microsoft.Office.Interop.Excel.Application
xlsApp.Workbooks.Open(Direccion)
Dim IE As System.Collections.IEnumerator
IE = xlsApp.Workbooks.GetEnumerator()
While IE.MoveNext
CType(IE.Current, Microsoft.Office.Interop.Excel.Workbook).PrintOut()
End While
Return True
Catch ex As Exception
Return False
End Try
End Function

End Class

IEnumerator (Interfaz)

IEnumerator es la interfaz base para todos los enumeradores no genéricos.

Para obtener la versión genérica de esta interfaz, vea IEnumerator.

La instrucción foreach del lenguaje C# (for each en Visual Basic) oculta la complejidad de los enumeradores. Por tanto, se recomienda el uso de foreach en lugar de manipular directamente el enumerador.

Los enumeradores se pueden utilizar para leer los datos de la colección, pero no para modificar la colección subyacente.

Inicialmente, el enumerador se coloca delante del primer elemento de la colección. El método Reset también devuelve el enumerador a esta posición. En esta posición, una llamada a la propiedad Current produce una excepción. Por lo tanto, se debe llamar al método MoveNext para desplazar el enumerador hasta el primer elemento de la colección antes de leer el valor de Current.

Current devuelve el mismo objeto hasta que se llama a MoveNext o a Reset. MoveNext establece el valor de Current en el siguiente elemento.

Si MoveNext pasa el final de la colección, el enumerador se coloca detrás del último elemento de la colección y MoveNext devuelve el valor false. Cuando el enumerador está en esta posición, las llamadas posteriores al método MoveNext también devuelven el valor false. Si la última llamada al método MoveNext ha devuelto false y se realiza una llamada a la propiedad Current, se produce una excepción. Para volver a establecer el valor de Current en el primer elemento de la colección, se puede llamar primero al método Reset y después al método MoveNext.

Mientras no se modifique la colección, el enumerador continúa siendo válido. Si se realizan cambios en la colección, como agregar, modificar o eliminar elementos, el enumerador se invalida definitivamente y la siguiente llamada a MoveNext o a Reset produce una excepción InvalidOperationException. Si la colección se modifica entre MoveNext y Current, Current devuelve el elemento en el que está establecido, aunque el enumerador ya haya quedado invalidado.

El enumerador no tiene acceso exclusivo a la colección; por lo tanto, la enumeración a través de una colección es un procedimiento que, en esencia, no es seguro para la ejecución de subprocesos. Aunque una colección esté sincronizada, otros subprocesos pueden seguir modificándola, por lo que el enumerador produce una excepción. Con el fin de garantizar la seguridad para la ejecución de subprocesos durante la enumeración, se puede bloquear la colección durante toda la enumeración o detectar las excepciones debidas a cambios efectuados por otros subprocesos.

viernes, noviembre 17, 2006

Reportes .NET con Crystal Reports

Por Mauro Sant'Anna

Visual Studio .NET incluye Crystal Reports como un mecanismo "oficial" de creación de reportes. Crystal Reports es un producto muy desarrollado y complejo para la creación de reportes, y cuenta con una infinidad de opciones. En este artículo, nos vamos a concentrar en crear reportes relativamente sencillos, pero mostrando los detalles específicos de la versión .NET, tanto en aplicaciones WinForms como en aplicaciones WebForms (ASP.NET). Este artículo considera que usted ya posee alguna familiaridad con Visual Studio .NET y también con ADO.NET.
Crear un reporte

Independientemente de cómo se hará la presentación, el reporte se define en un archivo ".RPT", que forma parte de su proyecto. Ese archivo especifica el modo en que se hará la presentación del reporte, pero no incluye los datos propiamente dichos. Los datos se definirán en el tiempo de ejecución.

Crystal Reports se basa en un concepto muy común de la definición de reportes: los reportes se componen de "secciones", y cada sección es un espacio horizontal en la página. Existen diversos tipos de secciones, por ejemplo:

* Encabezado del reporte, aparece en la primera página.
* Encabezado de página, aparece en la parte superior de todas las páginas.
* Detalle: lo más importante. En el tiempo de ejecución, se genera una de estas secciones para cada línea (registro) en la base de datos.
* Pie de página, aparece en la parte inferior de todas las páginas.
* Pie de reporte, aparece al final del reporte.

En un principio, todos los reportes presentan estas cinco secciones. Otras secciones son opcionales, como por ejemplo:

* Encabezado de grupo, aparece antes de un grupo.
* Pie de grupo, aparece al final del grupo.

Se podrá omitir una o más secciones, en caso de que no sean necesarias.

miércoles, octubre 25, 2006

VSTO v3

Por primera vez se publica una versión preliminar de VSTO v3.
Esta versión de VSTO funciona con Office 2007 Beta 1 Technical Refresh.
VSTO v3 proporciona soporte para la integración de código .NET con la nueva versión de Office 2007.
Entre las características más destacables estan:

  • Soporte para el nuevo formato de fichero Office Open XML
  • Soporte para el nuevo modelo de UI (Ribbon) de Office 2007
  • Proyectos de Addins para Microsoft Access 2007, Microsoft Excel 2007, Microsoft SharePoint Designer 2007, Microsoft InfoPath 2007, Microsoft Outlook 2007, Microsoft PowerPoint 2007, Microsoft Project 2007, Microsoft Publisher 2007, Microsoft Visio 2007, and Microsoft Word 2007
  • Soporte para los nuevos Taskpane

Enlace a la página de descarga de VSTO v3.

miércoles, agosto 23, 2006

Microsoft devela las novedades de SQL Server 2005


Microsoft ha desvelado algunas de las novedades más importantes que incluirá en SQL Server 2005, la nueva revisión de su conocida base de datos.

Como aspectos interesantes cabe destacar la total integración con Microsoft Visual Studio 2005 (que permite el desarrollo de aplicaciones específicas para la empresa), así como la seguridad de la plataforma, alta disponibilidad y escalabilidad.
Pero entre todas las novedades probablemente la que más destaque sea la inclusión de una nueva edición intermedia situada en la parte media/baja del catálogo global (entre la versión Standard y la gratuita Express). Esta nueva edición (denominada Workgroup), es especialmente interesante en nuestro país, ya que tiene como objetivo el mercado de la pequeña y mediana empresa.

Aparte de incluir la ya tradicional funcionalidad y rendimiento de SQL Server, la edición Workgroup podrá ser instalada en servidores de hasta 2 procesadores y 3 GB de RAM, sin tener límite alguno de tamaño para las bases de datos que almacene.
De hecho, según revelan los últimos resultados Benchmark obtenidos bajo la herramienta TCP-C, SQL Server Workgroup ha obtenido el rendimiento más elevado en su categoría, lo que habla bastante bien de la capacidad de proceso. Los precios estimados de esta versión son de 5.000$ (por servidor) y de 1.000$ (servidor + 5 usuarios).

Otra de las noticias (en este caso por no modificar su política) es la que se refiere a las licencias para los nuevos procesadores que integren la nueva tecnología Dual Core (anunciados por Intel y AMD), ya que según anuncia Microsoft seguirá siendo necesaria una única licencia por procesador real (independientemente del número de cores que integre), lo que hará de SQL Server una opción mucho más interesante atendiendo al binomio rendimiento/precio.

Microsoft tiene previsto publicar la Beta 3 de SQL Server 2005 a lo largo del presente trimestre y la versión definitiva para finales de este año, coincidiendo con el lanzamiento de Visual Studio 2005. Actualmente está disponible la tercera Cummunity Technology Preview (CTP), predecesora de cada versión Beta y que ofrece a los desarrolladores de bases de datos la posibilidad de experimentar con el producto antes de que se complete la fase con la publicación definitiva.

Por otra parte, Dell ha anunciado que ofrecerá versiones Standard y Workgroup presintaladas con en sus servidores PowerEdge.