Se deberá agregar la impresora USB. Después ejecutar el comando siguiente como Administrador:
NET USE LPT1: \\PC\Impresora /persistent:yes
Donde PC es la maquina donde agregamos la Impresora e Impresora es el nombre de la impresora agregada, el parámetro /persistent:yes sirve para que quede registrador el recurso . Para probarlo podemos ejecutar un dir y redirigirlo al puerto LPT1:
dir > PRN
Para eliminar el recurso podemos ejecutar el siguiente comando:
NET USE LPT1 /delete
jueves, 11 de abril de 2013
miércoles, 16 de mayo de 2012
Habilitar o Deshabilitar Triggers en SQL Server
Con este script se pueden habilitar o deshabilitar todos los triggers de la Base de Datos que se encuentre seleccionada.
DECLARE @cTgName VARCHAR(50)
DECLARE @cTableName VARCHAR(50)
SET NOCOUNT ON;
DECLARE Cur_TG CURSOR LOCAL FORWARD_ONLY FOR
SELECT (SCH.NAME + '.' + STG.NAME) AS TG_NAME, (SCH.NAME + '.' + SAO.NAME) AS TABLE_NAME
FROM SYS.TRIGGERS STG,
SYS.ALL_OBJECTS AS SAO,
SYS.SCHEMAS AS SCH
WHERE STG.PARENT_ID = SAO.OBJECT_ID
AND SAO.SCHEMA_ID = SCH.SCHEMA_ID
OPEN Cur_TG
FETCH Cur_TG INTO @cTgName, @cTableName
WHILE (@@FETCH_STATUS = 0)
BEGIN
BEGIN TRY
-- Para Habilitar
EXEC ('ENABLE TRIGGER ' + @cTgName + ' ON ' + @cTableName)
-- Para Deshabilitar
EXEC ('DISABLE TRIGGER ' + @cTgName + ' ON ' + @cTableName)
END TRY
BEGIN CATCH
PRINT ERROR_MESSAGE()
END CATCH
FETCH Cur_TG INTO @cTgName, @cTableName
END -- Fin del bucle WHILE
CLOSE Cur_TG
DEALLOCATE Cur_TG
DECLARE @cTgName VARCHAR(50)
DECLARE @cTableName VARCHAR(50)
SET NOCOUNT ON;
DECLARE Cur_TG CURSOR LOCAL FORWARD_ONLY FOR
SELECT (SCH.NAME + '.' + STG.NAME) AS TG_NAME, (SCH.NAME + '.' + SAO.NAME) AS TABLE_NAME
FROM SYS.TRIGGERS STG,
SYS.ALL_OBJECTS AS SAO,
SYS.SCHEMAS AS SCH
WHERE STG.PARENT_ID = SAO.OBJECT_ID
AND SAO.SCHEMA_ID = SCH.SCHEMA_ID
OPEN Cur_TG
FETCH Cur_TG INTO @cTgName, @cTableName
WHILE (@@FETCH_STATUS = 0)
BEGIN
BEGIN TRY
-- Para Habilitar
EXEC ('ENABLE TRIGGER ' + @cTgName + ' ON ' + @cTableName)
-- Para Deshabilitar
EXEC ('DISABLE TRIGGER ' + @cTgName + ' ON ' + @cTableName)
END TRY
BEGIN CATCH
PRINT ERROR_MESSAGE()
END CATCH
FETCH Cur_TG INTO @cTgName, @cTableName
END -- Fin del bucle WHILE
CLOSE Cur_TG
DEALLOCATE Cur_TG
Habilitar o Deshabilitar Llaves Foráneas en SQL Server
Con este script se habilitan o deshabilitan todos los foreing keys de la Base de Datos que se tenga seleccionada.
DECLARE @cFKName VARCHAR(50)
DECLARE @cTableName VARCHAR(50)
SET NOCOUNT ON;
DECLARE Cur_FK CURSOR LOCAL FORWARD_ONLY FOR
SELECT SFK.NAME AS FK_NAME, (SCH.NAME + '.' + SAO1.NAME) AS TABLE_NAME
FROM SYS.FOREIGN_KEYS AS SFK,
SYS.SCHEMAS AS SCH,
SYS.ALL_OBJECTS AS SAO1
WHERE SFK.SCHEMA_ID = SCH.SCHEMA_ID
AND SFK.PARENT_OBJECT_ID = SAO1.OBJECT_ID
OPEN Cur_FK
FETCH Cur_FK INTO @cFKName, @cTableName
WHILE (@@FETCH_STATUS = 0)
BEGIN
BEGIN TRY
-- Para Habilitar
EXEC ('ALTER TABLE ' + @cTableName + ' CHECK CONSTRAINT ' + @cFKName)
-- Para Deshabilitar
EXEC ('ALTER TABLE ' + @cTableName + ' NOCHECK CONSTRAINT ' + @cFKName)
END TRY
BEGIN CATCH
PRINT ERROR_MESSAGE()
END CATCH
FETCH Cur_FK INTO @cFKName, @cTableName
END -- Fin del bucle WHILE
CLOSE Cur_FK
DEALLOCATE Cur_FK
DECLARE @cFKName VARCHAR(50)
DECLARE @cTableName VARCHAR(50)
SET NOCOUNT ON;
DECLARE Cur_FK CURSOR LOCAL FORWARD_ONLY FOR
SELECT SFK.NAME AS FK_NAME, (SCH.NAME + '.' + SAO1.NAME) AS TABLE_NAME
FROM SYS.FOREIGN_KEYS AS SFK,
SYS.SCHEMAS AS SCH,
SYS.ALL_OBJECTS AS SAO1
WHERE SFK.SCHEMA_ID = SCH.SCHEMA_ID
AND SFK.PARENT_OBJECT_ID = SAO1.OBJECT_ID
OPEN Cur_FK
FETCH Cur_FK INTO @cFKName, @cTableName
WHILE (@@FETCH_STATUS = 0)
BEGIN
BEGIN TRY
-- Para Habilitar
EXEC ('ALTER TABLE ' + @cTableName + ' CHECK CONSTRAINT ' + @cFKName)
-- Para Deshabilitar
EXEC ('ALTER TABLE ' + @cTableName + ' NOCHECK CONSTRAINT ' + @cFKName)
END TRY
BEGIN CATCH
PRINT ERROR_MESSAGE()
END CATCH
FETCH Cur_FK INTO @cFKName, @cTableName
END -- Fin del bucle WHILE
CLOSE Cur_FK
DEALLOCATE Cur_FK
lunes, 9 de abril de 2012
Generar Archivos CSV con Progress
Para generar archivos CSV con Progress, se utiliza la instruccion EXPORT. Enseguida un ejemplo:
OUTPUT TO C:\REPORTES\PREDIO.CSV.
FOR EACH PREDIO NO-LOCK WHERE NUM-RUTA > 0 AND NUM-RUTA < 999:
EXPORT DELIMITER "," NUM-CUENTA DIRECC-ORIGINAL GIRO-USUARIO TIPO-USUARIO.
END.
OUTPUT CLOSE.
OUTPUT TO C:\REPORTES\PREDIO.CSV.
FOR EACH PREDIO NO-LOCK WHERE NUM-RUTA > 0 AND NUM-RUTA < 999:
EXPORT DELIMITER "," NUM-CUENTA DIRECC-ORIGINAL GIRO-USUARIO TIPO-USUARIO.
END.
OUTPUT CLOSE.
lunes, 2 de abril de 2012
Conectando Progress con ODBC
Para conectarnos a Progress mediante ODBC tenemos que instalar el driver primeramente, éste viene incluido en la suite de Progress DB y tambien tenemos que tener el servicio de BD escuchando en algun puerto conocido.
Despues ejecutaremos en Administrador de Conexiones ODBC, con el comando odbcad32 y configuraremos nuestra conexión de la siguiente manera:
Es importante usar el usuario sysprogress que originalmente no tiene password. Ahora para conectarnos a la BD lo podemos hacer desde cualquier cliente odbc; yo particularmente uso uno que se llama SQLDBX (http://www.sqldbx.com/).
Ahora ya teniendo la conexión podemos ver los usuarios de la BD con el siguiente query:
select "_userid", "_password", "_user-name" from pub."_user"
Para ver las tablas que contiene la BD podemos ejecutar el siguiente query:
SELECT * FROM sysprogress.SYSTABLES WHERE TBLTYPE = 'T'
Para ver el contenido de alguna tabla podemos ejecutar un query de la siguiente manera:
SELECT * FROM PUB.BENEFITS
Es importante siempre utilizar el esquema PUB, ya que de no hacerlo los queries no funcionarán.
Para crear un usuario nuevo podemos ejecutar la siguiente secuencia de queries:
create user 'sa','password';
grant dba to 'sa';
Una vez que creamos el usuario, automáticamente el usuario sysprogress ya no funciona para la conexión ODBC.
Despues ejecutaremos en Administrador de Conexiones ODBC, con el comando odbcad32 y configuraremos nuestra conexión de la siguiente manera:
Es importante usar el usuario sysprogress que originalmente no tiene password. Ahora para conectarnos a la BD lo podemos hacer desde cualquier cliente odbc; yo particularmente uso uno que se llama SQLDBX (http://www.sqldbx.com/).
Ahora ya teniendo la conexión podemos ver los usuarios de la BD con el siguiente query:
select "_userid", "_password", "_user-name" from pub."_user"
Para ver las tablas que contiene la BD podemos ejecutar el siguiente query:
SELECT * FROM sysprogress.SYSTABLES WHERE TBLTYPE = 'T'
Para ver el contenido de alguna tabla podemos ejecutar un query de la siguiente manera:
SELECT * FROM PUB.BENEFITS
Es importante siempre utilizar el esquema PUB, ya que de no hacerlo los queries no funcionarán.
Para crear un usuario nuevo podemos ejecutar la siguiente secuencia de queries:
create user 'sa','password';
grant dba to 'sa';
Una vez que creamos el usuario, automáticamente el usuario sysprogress ya no funciona para la conexión ODBC.
Arrancar y Detener Servicio de BD de Progress
Para arrancar el servicio de Progress DB ejecutaremos el siguiente comando, de preferencia debemos hacerlo con permisos de Administrador.
SET WRKDIR=C:\Progress\WRK
cd C:\Progress\dlc91c\bin
proserve.bat C:/DATA/sports2000/sports2000.db -S 2525 -N TCP -L 300000
Donde 2525 es el puerto en que escuchar el servidor de BD.
Para detener el servicio podemos ejecutar el siguiente comando.
cd C:\Progress\dlc91c\bin
proshut.bat C:/DATA/sports2000/sports2000.db
SET WRKDIR=C:\Progress\WRK
cd C:\Progress\dlc91c\bin
proserve.bat C:/DATA/sports2000/sports2000.db -S 2525 -N TCP -L 300000
Donde 2525 es el puerto en que escuchar el servidor de BD.
Para detener el servicio podemos ejecutar el siguiente comando.
cd C:\Progress\dlc91c\bin
proshut.bat C:/DATA/sports2000/sports2000.db
miércoles, 28 de marzo de 2012
¿Cómo saber si existe una tabla en la BD?
¿Cómo saber si existe una tabla en nuestra BD? Podemos crear y usar la sig función.
Para mandar llamar la funcion
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[existeTabla]
(
@cTableName VARCHAR(255)
)
RETURNS BIT
AS
BEGIN
DECLARE @nReturn BIT
SET @nReturn = 0
IF (SELECT COUNT(*) FROM SYS.OBJECTS
WHERE TYPE = 'U' AND UPPER(NAME) = UPPER(@cTableName)) > 0 BEGIN
SET @nReturn = 1
END
RETURN @nReturn
END
Para mandar llamar la funcion podemos usar el siguiente query:
SELECT [dbo].[existeTabla] ('TABLA_A_BUSCAR')
Si el resultado es 1 la tabla existe, en caso contrario no existe.
Para mandar llamar la funcion
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[existeTabla]
(
@cTableName VARCHAR(255)
)
RETURNS BIT
AS
BEGIN
DECLARE @nReturn BIT
SET @nReturn = 0
IF (SELECT COUNT(*) FROM SYS.OBJECTS
WHERE TYPE = 'U' AND UPPER(NAME) = UPPER(@cTableName)) > 0 BEGIN
SET @nReturn = 1
END
RETURN @nReturn
END
Para mandar llamar la funcion podemos usar el siguiente query:
SELECT [dbo].[existeTabla] ('TABLA_A_BUSCAR')
Si el resultado es 1 la tabla existe, en caso contrario no existe.
Suscribirse a:
Entradas (Atom)
