Ayuda con la sintaxis para ejecutar DTS con DTSRun, usando DTSRunUI

8 05 2009

Hace poco se nos presentó un problema con un Job de SQLServer 2000, la descripción de la falla indicaba lo siguiente:

Executed as user: NT AUTHORITY\SYSTEM.
Line 1: Incorrect syntax near ‘/’.
[SQLSTATE 42000] (Error 170) The identifier that starts with ‘Z0×662C096C16742FAD8CDB6A2BED09B343726B56DC63026D657
E0B5D08C6C8BAF4A49AD11C72729B9A6945B8E0A4568BE4E4CD6
AAD2A7B47C0F5147EA2DF12C’ is too long.
Maximum length is 128.
[SQLSTATE 42000] (Error 103). The step failed.

(1 row affected)

Buscando la razón de la falla, me tope con la posible solución en la página de SQLDTS, que explica como usar la interfaz gráfica para la ejecución de DTS (Paquetes de Transformación de Datos) con DTSRunUi.

Es posible programar un paquete DTS desde el Enterprise Manager, esto hace que se genere un job y en los pasos dentro de las propiedades se incluya un comando del SO que llama al DTSRun con algo así como: DTSRun /~Z0xD3D4C356186A9DC77B1EE2E50C9A… esta cadena es posible generarla con la herramienta DTSRunUI

Leer el resto de esta entrada »





Error en el MS Project 2007 al visualizar el Diagrama de Gantt. Solucionado

17 03 2009

Me sucedió que me enviaron un archivo de MS Project hecho en la versión 2007 en español, tengo la versión en inglés. Al intentar abrirlo me marca el error:

The view or Report cannot be displayed because the table “Entrada” on which it is based has been deleted.

Este error lo muestra al abrirlo la primera vez. Sólo se puede visualizar el Tracking Gantt, pero no la vista Gantt Chart, que al querer seleccionarlo muestra información adicional.

Mensaje de Error al visualizar el diagrama de Gantt.

Mensaje de Error al visualizar el diagrama de Gantt.

Leer el resto de esta entrada »





Escritorios Virtuales en Windows

3 03 2009

Si tienes la necesidad de tener mas de un escritorio para tener ordenado tus programas: en uno solo el correo, en otro los de desarrollo, o otro mas para diseño, con el fin de no atiborrar la barra de tareas. Una posible solución es virtualizar los escritorios cuando no se puede tener escritorios físicos. Existen varias herramientas que permiten obtener esa funcionalidad. El que mas he usado es:

Dexpot que hoy va por su versión 1.4 estuvo un tiempo abandonado pero alparecer lo han retomado, es free (por ahora), algunas de sus caracteristicas son:

  • La posibilidad de configurar el número de escritorios,
  • Reglas a ventanas,
  • Opacidad,
  • Permite la previsualización de las ventanas abiertas,
  • Se ejecuta en XP y Vista,
  • Multilenguaje,los archivos se descargan aparte, originalmente en alemán,
  • Configuracion de los accesos directos para cambiar entre escritorios,
  • Fondos de pantalla personalizados para cada escritorio.

He aqui algunas capturas:

Desktop Manager

Desktop Manager

Leer el resto de esta entrada »





Imprimir u Obtener la lista de subdirectorios y sus Archivos

11 12 2008

Si deseas imprimir o exportar a texto la estructura de un directorio, se puede hacer con el comando dir, ese comando de toda la vida. Desde el Explorador de Windows no es posible, al menos no lo localizé. Asi que lo haremos en Modo Bestia, desde línea de comandos.

Veamos el modo en que se puede realizar.


dir "C:\Temp" /B /S

El parámetro /B indica que no se muestren resúmenes ni encabezados

El parámetro /S indica se recorra todo el arbol de directorios.

Si quieren enviarlo a un archivo de Texto lo hariamos mediante el modificador de flujo >.Como sigue:


dir "C:\Temp" /B /S > "c:\dirout.txt"

Leer el resto de esta entrada »





Funciones IsNumeric e IsDecimal en JavaScript

1 12 2008

Me topé con la necesidad de usar las funciones IsNumeric e IsDecimal en JavaScript, pero no existen tales, sin embargo es posible crearlos de manera sencilla mediante expresiones regulares, veamos como quedarían.

Para detectar si un conjunto de caracteres (entiéndase una cadena) es un número entero, usamos la siguiente función:

function IsNumeric(expression)
{
	return (String(expression).search(/^\d+$/) != -1);
}

Para saber si la cadena pasada como parámetro es un número con decimales, usando como separador de decimales el punto . hacemos uso de esta otra función.

function IsDecimal(expression)
{
	return (String(expression).search(/^\d+(\.\d+)?$/) != -1);
}

Usarlos es tan simple como llamar a esas funciones y evaluar el valor devuelto.





Obtener el número de registros de una tabla sin hacer select count(*)

16 10 2008

Una forma de obtener el numero de registros de una tabla en SQLServer aparte del clásico:

SELECT COUNT(*)
  FROM NombreTabla

es consultando la tabla del systema sysindexes del siguiente modo:

SELECT rows
  FROM sysindexes
  WHERE id = OBJECT_ID('NombreTabla') AND indid < 2

La ventaja de ésta forma es que se evita que se recorra la tabla o algún índice para obtener el número exacto de registros, esto es útil en tablas con millones de registros, al hacerlo de la primera forma se lleva tiempo en devolver el resultado, afectando el desempeño.

Nota: Esto es útil cuando no se requiere saber el número exacto de registros de una tabla, sin embargo, es necesario tener activado la opcion de creación automática de estadísticas en la Base de datos.





Propiedad State de un RecordSet

9 10 2008

Si necesitamos saber si un RecordSet esta abierto o cerrado en las aplicaciones hechas en ASP clásico (3.0), haremos uso de la propiedad State que retorna un valor que describe si el objeto esta abierto, cerrado, conectando, ejecutando la consulta u obteniendo datos El valor devuelto es un ObjectStateEnum, cuyo posibles valores son los siguientes:

Constantes del ObjectStateEnum

Constante Valor Descripción
adStateClosed 0 El Objeto está cerrado
adStateOpen 1 El Objeto está Abierto
adStateConnecting 2 El Objeto está Conectando
adStateExecuting 4 El Objeto está Ejecutando
adStateFetching 8 El Objeto está Obteniendo los datos

Esta propiedad puede ser usada con los objetos Command, Connection, Record, Recordset y Stream. Con la sintaxis:

Object.State

Lo siguiente es un ejemplo de como usarlo

IF rsClear.State <> 0 THEN 'Si no esta cerrado
   rsClear.CLOSE
   Set rsClear = Nothing 'Liberar Recursos
END IF




Exportando directamente un informe desde Report Services

12 08 2008

Buscando la manera de exportar directamente un informe en Report Services 2005, desde código (evitando su visualización), me encuentro con la página de Fran Diaz que hace un tutorial de como implementarlo desde un WinFom haciendo uso del WebService del SQL Server Reporting Services 2005.

Requeria implementarlo desde una WebForm, y he aquí que me encuentro con una serie de detalles para hacerlo funcionar correctamente. Tengo un Servidor de Informes y un servidor de paginas web, ambas en maquinas diferentes.

El primer error fue implementar los permisos, necesitaba autentificarme correctamente, para eso tuve que crear/modificar –de alguna parte lo habré sacado, solo que no recuerdo de que página, si el autor aparece, favor de notificarmelo, para los créditos correspondientes–, como decía, hubo que implementar una clase para este fin (ReportServerCredentials) para resolver este problemilla.

Leer el resto de esta entrada »





Salida delimitada por comas en una consulta en lugar de un conjunto de filas

25 07 2008

Hay ocasiones en que se necesitamos obtener el resultado de una consulta como un conjunto de valores delimitados por comas en una sola fila, en lugar de un conjunto de filas, para este menester podemos obtenerlo de dos formas distintas.

1.- Mediante un cursor:

DECLARE cursorIDs CURSOR FOR
	SELECT CLAVE FROM PRODUCTOS
	ORDER BY CLAVE
DECLARE @CodigoIDs    VARCHAR(8000)
DECLARE @CodigoID     VARCHAR(10)

OPEN cursorIDs
FETCH NEXT FROM cursorIDs INTO @CodigoID
WHILE @@FETCH_STATUS = 0
BEGIN
	SET @CodigoIDs = ISNULL(@CodigoIDs + ',', '') + @CodigoID
	FETCH NEXT FROM cursorIDs INTO @CodigoID
END

CLOSE cursorIDs
DEALLOCATE cursorIDs

SELECT @CodigoIDs AS Codigos_Productos
GO

o bien,

Leer el resto de esta entrada »





SQLServer Service Manager 2005

18 06 2008

Microsoft SQL Server 2005, no trae consigo la pequeña herramienta de SQL Server 2000, El administrador de Servicios de SQL Server (SQL Server Service Manager), que desde mi punto de vista es muy útil para administrar los servicios de SQLServer.

Si no se ubican, es el icono/aplicación que aparece en el System Tray

SQLServer Service Manager 2005 Tray Icon

Me encuentro con el blog de Bruno Capuano en el que menciona que el buen Jasper Smith, creó la herramienta que hace las veces de su casi homónino de la versión 2000.

SQLServer Service Manager

Leer el resto de esta entrada »