Foros del Web » Programando para Internet » PHP »

PHP OO Consuta en Hexadecimal de mas de 512 Caracteres

Estas en el tema de Consuta en Hexadecimal de mas de 512 Caracteres en el foro de PHP en Foros del Web. Buenas Siempre leo forosdelweb, pero este es mi primera consulta que no encontre en el foro. Estoy realizando una consulta a un servidor MSSQL solicitando ...
  #1 (permalink)  
Antiguo 28/09/2012, 12:11
 
Fecha de Ingreso: septiembre-2012
Mensajes: 4
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta Consuta en Hexadecimal de mas de 512 Caracteres

Buenas

Siempre leo forosdelweb, pero este es mi primera consulta que no encontre en el foro.

Estoy realizando una consulta a un servidor MSSQL solicitando datos a un tabla que posee datos en hexadecimal de.
La fila a la que pido datos esta completa con 7686 caracteres en hexadecimal (0x126FFF000000006E00008D000000.......) al momento de consultar php solo me devuelve 512 caracteres, y no los 7686 totales.

¿Como puedo mostrar los 7686 caracteres Hex que contiene la fila?

Aqui mi archivo:

Código PHP:
Ver original
  1. <?php
  2. include("config.php");  // Conexion a MSSQL
  3. $consulta = mssql_query("SELECT Inventario FROM Clientes Where ID='30'");
  4. $valor = mssql_fetch_row($consulta);
  5.  
  6. // Convierte los valores a string, para poder verlos en PHP
  7. $a=bin2hex("$valor[0]");
  8. $resultado = strtoupper($a);
  9.  
  10.  
  11. // Muesta el resutlado
  12. $sql = "0x$resultado";
  13. echo "$sql<br>";
  14.  
  15. //Conteo de Caracteres
  16. echo strlen($resultado);
  17.  
  18. ?>
  #2 (permalink)  
Antiguo 28/09/2012, 13:33
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Consuta en Hexadecimal de mas de 512 Caracteres

¿Por qué la conversión de binario? ¿no están almacenados como texto?
  #3 (permalink)  
Antiguo 29/09/2012, 12:11
 
Fecha de Ingreso: septiembre-2012
Mensajes: 4
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Consuta en Hexadecimal de mas de 512 Caracteres

No, los datos estan en la base de datos como 'varbinary'

Con la conversiona binario logro mostrarlo en PHP como hexadecimal, sin eso solo muestra en caracteres.
  #4 (permalink)  
Antiguo 29/09/2012, 12:20
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Consuta en Hexadecimal de mas de 512 Caracteres

Entonces muy probablemente sea una limitación de dicha conversión, normalmente estas conversiones se hacen por valor, por lo que escapa del limite soportado por la función.

No he usado estas conversiones salvo las de decimal a hex, por lo que no podría decirte si hay alguna otra opción de conversión.

Pero aún me intriga que tengas que guardar el hex en binario.
  #5 (permalink)  
Antiguo 29/09/2012, 12:42
 
Fecha de Ingreso: septiembre-2012
Mensajes: 4
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Consuta en Hexadecimal de mas de 512 Caracteres

No, ya que sin la conversión muestra igualmente 512 caracteres, pero en caracteres raros (ýááááááááóíííííuúú) y con la coonversion los muestra correctamente (0x126FFF000000006E00008D) pero con 512 en ambos, la funcion es solo para ver los caracteres, la limitacion viene de atras :C

¿que sera?
  #6 (permalink)  
Antiguo 21/10/2012, 18:57
 
Fecha de Ingreso: septiembre-2012
Mensajes: 4
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Consuta en Hexadecimal de mas de 512 Caracteres

Reparado, aqui esta la respuesta si alguin la necesita


Solo se debe declarar el largo en la consulta SQL


Código PHP:
$var1 mssql_query("declare @inv varbinary(3840);  
set @inv=(select [Inventario] from [CLientes] where [Usuario]='Juan');  
print @inv"
);

$inventorydata     =     mssql_get_last_message(); 

Etiquetas: caracteres, hexadecimal, sql, tabla
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 22:04.