miércoles, 8 de diciembre de 2010

Funcion para SQL Server que retorna el mil superior

* Esta funcion retorna el mil superir de parametro enviado
Ejemplo: mil superior de 7800=8000, mil superior de 2185=3000


CREATE
FUNCTION [dbo].[f_centena](@valor As decimal(18,2))
Returns
decimal (18,2)
as
begin
declare @numero varchar(15)
declare @dec varchar(4)
declare @superior decimal(18,2)
declare @t int
declare @supe  decimal(18,2)
declare @supe1 decimal(18,2)
set @valor = round(@valor,0)
set @numero = cast(@valor as varchar(15))
set @t = CHARINDEX('.',@numero) - 1
set @dec = substring(@numero,@t-2,@t)
set @superior = cast(@dec as numeric(4))
set @supe = 1000-@superior
set @supe1 = @valor+@supe
return
@supe1
End

En SQLServer y Sybase como saber en que tablas existe un campo

EN SQLSERVER
* Muchas veces deseamos saber en que tablas encontramos algun campo.... es muy util el siguiente scrip para tal efecto, me ha sido de gran ayuda en muchas oportunidades....

select
obj.name TABLA, obj.xtype, obj.crdate, col.name CAMPO, col.xtype, col.lengthfrom syscolumns col, sysobjects objwhere col.id = obj.id and obj.name not like '%_INS%'and obj.name not like '%_UPD%'and obj.xtype = 'U'and col.name like '%nombre_del_campo%'order

* Aveces pasa que tenemos un campo de tipo datetime y solo necesitamos la fecha.... esto facilita las cosas

select dateadd(DAY,datediff(day,'2009-01-01',getdate()),'2009-01-01')
by obj.name

EN SYBASE
SELECT table_name FROM SYSTAB WHERE table_id IN (select table_id 
from SYSTABCOL

where COLUMN_NAME='nombre_del_campo')

Pintar linea seleccionada en color que desee

//.: PARA PINTAR EN AMARILLO O EN EL COLOR Q QUIERA LA LINEA DONDE SE HAGA CLICK
//.: PONER ESTE CODIGO EN EL EVENTO CLICKED
OPCION 1
LONG  ll_row
if row > 0 then
    ii_drag_row = row    
    ll_row = This.find("marcar > 0 ", 1 , This.Rowcount())
    if ll_row > 0 then This.Setitem(ll_row, 'marcar', 0)
    This.SetRowFocusIndicator(hand!)// manito marcador
    This.Setitem(row,'marcar',1)
    This.Drag(Begin!)
    Describe("DataWindow.FirstRowOnPage")
end if
OPCION 2
integer li_flag
this.accepttext( )
li_flag=this.object.marca[ row ]
if li_flag = 0   then  this.object.marca[row ]=1  else  this.object.marca[row] = 0

PREVIAMENTE PONER EN EL SELECT DEL DATA WINDOW
0 MARCAR
EJEMPLO
SELECT C,B,N, 0 MARCAR
 FROM A
WHERE XXXXX

OPCION 3
if this.isselected(row) then
    this.SelectRow ( row, false)
else
    this.SelectRow ( row, TRUE )   
end if