26 de agosto de 2003

Saber los usuarios conectados a una base de datos de MS SQL Server 2000

Cuando necesitemos saber que usuarios estan conectados a una base de datos de MS SQL Server 2000 podemos usar este procedmiento almacenado.

create procedure @base_de_datos nchar(128) as 
begin 
  set nocount on 
  if exists (select name from sysobjects 
    where name = 'tbl_usuarios_conectados') 
  drop table tbl_usuarios_conectados 

  create table tbl_usuarios_conectados (spid smallint, 
  /* esta columna se puede borrar si se desea utilizar en SQL Server 7*/ 
  ecid smallint, status nchar(30), loginname nchar(128), 
  hostname nchar(128), blk char(5), dbname nchar(128), cmd nchar(16)) 

  INSERT tbl_usuarios_conectados 
  exec sp_who 

  select distinct loginname, hostname 
    from tbl_usuarios_conectados 
    where dbname = @base_de_datos and hostname <> ' ' 
  
  return 
end 

Ylber Aponte

15 de agosto de 2003

Calcular la hora GMT

Función para calcular la hora GMT (Greenwich Meridian Time).
*---------------------------
* FUNCTION GetGMTDateTime
*---------------------------
* Retorna la Fecha y Hora GMT
* USO: ? GetGMTDateTime()
* RETORNA: DateTime
*---------------------------
FUNCTION GetGMTDateTime
   LOCAL lcBuffer, lnAnio, lnMes, lnDia, ;
      lnHora, lnMinuto, lnSegundo, ltGMT
   lcBuffer=SPACE(32)
   DECLARE INTEGER GetSystemTime;
      IN win32api STRING @lcBuffer
   =GetSystemTime(@lcBuffer)
   lnAnio = HtoD(SUBSTR(lcBuffer,1,2))
   lnMes =  HtoD(SUBSTR(lcBuffer,3,2))
   lnDia =  HtoD(SUBSTR(lcBuffer,7,2))
   lnHora = HtoD(SUBSTR(lcBuffer,9,2))
   lnMinuto = HtoD(SUBSTR(lcBuffer,11,2))
   lnSegundo =  HtoD(SUBSTR(lcBuffer,13,2))
   *--- Fecha y Hora GMT
   ltGMT = DATETIME(lnAnio, lnMes, lnDia, lnHora, lnMinuto, lnSegundo)
   RETURN ltGMT
ENDFUNC
*---------------------------
FUNCTION HtoD(tcPar)
   RETURN ASC(SUBSTR(tcPar,2))*256+ASC(SUBSTR(tcPar,1))
ENDFUNC
*---------------------------
Recordar para que esta función retorne la hora GMT correcta, el reloj de la PC debe estar configurado con la zona horaria correspondiente.

Luis María Guayán

4 de agosto de 2003

Calcular el último día del mes

Función que retorna el último día de un mes.
*------------------------------------------------
FUNCTION _EOM(dFecha)
*------------------------------------------------
* Retorna el último día del mes (EndOfMonth)
* USO: _EOM(DATE())
* RETORNA: Fecha
*------------------------------------------------
  LOCAL ld 
  ld = GOMONTH(dFecha,1)
  RETURN ld - day(ld)
ENDFUNC
*------------------------------------------------