Substring u otra forma. Ayuda!
Publicado por josh (2 intervenciones) el 21/05/2005 20:10:16
Bueno antes que nada, gracias por leerme. Tengo un problema que no puedo solucionar. En mi BD tengo una tabla llamada "Character" y adentro hay una columna llamada "Inventory"(Contiene Hex creo) y cLevel(contiene binario creo)de 76 espacios. El tema es el seguiente yo quiero que el codigo vaya viendo lugar por lugar(hasta terminar los 76 espacios)si tengo este hexadecimal: 8F00000000000080C410
Y si tengo 8 espacios con ese hexadecimal haga una cosa y si tengo 9 espcios con ese hex haga otra cosa.
Hasta ahora pude descifrar esto.
UPDATED Character --> aca actualiza esa tabla
SET cLevel = 1 -->pone cLevel =1 si
WHERE cLevel >400 and charindex(0x80,Inventory) %10=8
cLevel = 401 y en el inventario hay un item con ese hexadecimal. Para dar un poko mas de detalles en esta fila charindex(0x80,Inventory)%10=8 hace lo siguiente:
se fija en el inventario si hay un item que en la posicion 8 de ese hexadecimal haiga un 80
8F00000000000080C410
8F -> 1º posicion
00 -> 2º posicion
..
..
80 -> 8º posicion
El tema con este codigo es que solo se fija si en toda la columna inventario hay un item asi pero yo quiero que si en 8 lugares hay ese item haga una ocsa y si hay 9 haga otra cosa pero lo que no se es como contar espacio por espacio..yo habia pensado algo asi:
UPDATE Character
SET cLevel= '1'
WHERE cLevel>400 and substring(Inventory, charindex(0x8F,Inventory,13),1)= 3
Pero tambien lo toma a todo el inventario y no uno por uno. Agradeceria su ayuda o consejo en este codigo en el que estoy trabajando. Y disculpen si este post es medio newbie pero recien me inicio en esto de los foros. ATTE Josh!
Y si tengo 8 espacios con ese hexadecimal haga una cosa y si tengo 9 espcios con ese hex haga otra cosa.
Hasta ahora pude descifrar esto.
UPDATED Character --> aca actualiza esa tabla
SET cLevel = 1 -->pone cLevel =1 si
WHERE cLevel >400 and charindex(0x80,Inventory) %10=8
cLevel = 401 y en el inventario hay un item con ese hexadecimal. Para dar un poko mas de detalles en esta fila charindex(0x80,Inventory)%10=8 hace lo siguiente:
se fija en el inventario si hay un item que en la posicion 8 de ese hexadecimal haiga un 80
8F00000000000080C410
8F -> 1º posicion
00 -> 2º posicion
..
..
80 -> 8º posicion
El tema con este codigo es que solo se fija si en toda la columna inventario hay un item asi pero yo quiero que si en 8 lugares hay ese item haga una ocsa y si hay 9 haga otra cosa pero lo que no se es como contar espacio por espacio..yo habia pensado algo asi:
UPDATE Character
SET cLevel= '1'
WHERE cLevel>400 and substring(Inventory, charindex(0x8F,Inventory,13),1)= 3
Pero tambien lo toma a todo el inventario y no uno por uno. Agradeceria su ayuda o consejo en este codigo en el que estoy trabajando. Y disculpen si este post es medio newbie pero recien me inicio en esto de los foros. ATTE Josh!
Valora esta pregunta


0