Ayuda SAP

Problemas con caracteres raros � HANA a php

Buenos días, hace poco se hizo una migración a Hana, y tuvimos que cambiar varias consultas de algunos procesos que teniamos en php.
Ahora conectamos la app de php a Hana sin problema:

 $driver = "/usr/sap/hdbclient/libodbcHDB.so";
            $host = "xxxxx";
            $uid = "xxxxxxx";
            $pwd = "xxxxxx";
            $dbname = "xxxx";
            $dbConnection = odbc_connect("Driver=$driver;ServerNode=$host;Database=$dbname;", $uid, $pwd);

El problema es al traer los datos de la siguiente forma en php, docuementada para ODBC:

$conn_sis = (la conexion y sus parametros) 
 $stmt = odbc_exec($conn_sis,$sql);
    $data = array();
    while($myRow = odbc_fetch_array($stmt)){
      $data[] = $myRow;
    }

Por query en HANA la consulta nos trae 100 registros por ejemplo. pero al contar el $data vienen 90 registros, revisando los 10 registros que faltan son por que vienen con caracteres raros � y no queda en el $data.
Revisando algunas documentación en la conexión se le puede dar algún encode o algun encode en el query?
Como puedo saber en que codificación esta la base de HANA?

Por sus tiempo muchas gracias.

que tipo de bakend quieres usar ya que si lo conectas directamente base de datos SAP se adapta y genera todo correctamente, ya que en este caso si usas el array los caracteres de datos juegan mucho, me refiero al server, ya que depende si esta en UNICODE o todo eso, lo que recomiendo es que dependiendo el back end de tu base de datos puedes exportar directamente a ella

Hola gracias por responder.

Pero ese no es el punto. Se esta usando el odbc con el drive libodbcHDB.so en el framework slim desde otro servidor donde se actualizo el SAP a HANA, antes no teníamos problema, ahora cuando realizamos un select desde PHP a HANA, si viene un registro con algún tilde, %, ñ etc, se cae la consulta.y solo nos trae los datos que alcanza a procesar. Y es por eso la diferencia, leyendo algunos otro temas se habla de a la conexión de pasarle el parametro de Client_CSet=UTF-8;Server_CSet=CP850" pero nos pasa lo mismo. No podemos extraer los datos si viene con caracteres especiales.

Saludos

Era más facil de lo que pensaba, le faltaba un parametro a la conexión, CHAR_AS_UTF8=1, quedando:

$dbConnection = odbc_connect("Driver=$driver;ServerNode=$host;Database=$dbname;CHAR_AS_UTF8=1", $uid, $pwd);

Espero le sirva a alguien.

1 me gusta

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.