Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ayudenme cambiando esta sentencia plz

Estas en el tema de Ayudenme cambiando esta sentencia plz en el foro de SQL Server en Foros del Web. Hola amigos, tengo esta sentencia q lo ejecuto en el query analizer que busca un item especifico .. el problema es que eh echo un ...
  #1 (permalink)  
Antiguo 04/04/2009, 19:33
Avatar de sandrox23  
Fecha de Ingreso: abril-2005
Ubicación: Lima - Peru
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Ayudenme cambiando esta sentencia plz

Hola amigos, tengo esta sentencia q lo ejecuto en el query analizer que busca un item especifico .. el problema es que eh echo un update a mi base de datos y ahora este script ya no me sirve:

Código PHP:
DECLARE @Acc varchar(10), @Inv BINARY(1200), @ItemSerial BINARY(3), @Item BINARY(10), @cnt INTEGER
DECLARE LISTA CURSOR LOCAL FOR
SELECT AccountID FROM warehouse
OPEN LISTA
FETCH NEXT FROM LISTA INTO 
@Acc
WHILE @@FETCH_STATUS 0
BEGIN
SET 
@Inv = (SELECT items FROM [warehouseWHERE (AccountID=@Acc))
SET @cnt 1
WHILE (@cnt <= (LEN(@Inv)/2))
BEGIN
SET 
@Item SUBSTRING(@Inv,@cnt,10)
SET @ItemSerial SUBSTRING(@Item,5,3)
/* Colocar codigo Binario */
IF (@ItemSerial 0x000000)
BEGIN
print 'Yep! We got a 0x0 serial!'
print 'Account: '+@Acc
print 'Item: '; print @Item
print '--------------------------'
END
SET 
@cnt = @cnt 10
END
FETCH NEXT FROM LISTA INTO 
@Acc
END
CLOSE LISTA
DEALLOCATE LISTA 
En la tabla Warehouse la columna items ah variado el length 1920 de 1200 q era antes, como puedo ahora modificar esta sentencia para que me funcione , yo eh intentado hacerlo pero no entiendo @ItemSerial BINARY(3), que siginifica el # 3 y tambien SET @ItemSerial = SUBSTRING(@Item,5,3) que signifiva el 5 y 3 ..

espero su ayuda, gracias
__________________
diseniando ........
  #2 (permalink)  
Antiguo 05/04/2009, 22:31
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayudenme cambiando esta sentencia plz

Si lees un poco sobre SQL Server, en especifico, sobre TIPOS DE DATOS (http://www.uyssoft.com/Documentacion...ionSql2000.pdf), te daras cuenta que Binary es un tipo de dato que puede almacenar hatsa 8000 bytes.

Por tanto ItemSerial, lo estan declarando como tipo BINARY de 3 posiciones.

En cuanto a que hace la funcion SUBSTRING, toma de una cadena de caracters, la posicion (I) y (C) cuantos caracters va a tomar, ejemplo

SELECT substring('esta es mi cadena', 5,2)

El resutado seria "es", de la posicion 5, toma 2 caracteres.
  #3 (permalink)  
Antiguo 26/04/2009, 01:15
Avatar de sandrox23  
Fecha de Ingreso: abril-2005
Ubicación: Lima - Peru
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Respuesta: Ayudenme cambiando esta sentencia plz

muchas gracias ya me funciono :D
__________________
diseniando ........
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:04.