Foros del Web » Programando para Internet » PHP »

Problema funciones SQLSRV

Estas en el tema de Problema funciones SQLSRV en el foro de PHP en Foros del Web. Hola! finalmente luego de muchos problemas, pude conectar mi código con SQL Express 2008. El problema es que las funciones de SQLSRV son, evidentemente, distintas ...
  #1 (permalink)  
Antiguo 14/06/2014, 17:32
 
Fecha de Ingreso: septiembre-2012
Mensajes: 11
Antigüedad: 12 años, 1 mes
Puntos: 0
Problema funciones SQLSRV

Hola! finalmente luego de muchos problemas, pude conectar mi código con SQL Express 2008. El problema es que las funciones de SQLSRV son, evidentemente, distintas a las de mysql y no puedo hacer funcionar mi programa de la misma manera.

Básicamente lo que tengo que lograr es tomar datos de la tabla en la base SQL y subirlas a un array para cargarlas en un web service. El código en mysql que funcionaba perfectamente es este:

Código PHP:
<?php

require_once("../wsFunctions.php");

$db mysql_connect('localhost','root','''test');
        
mysql_select_db("test");
        if (!
$db)
            {
                print 
"<h1>Unable to Connect to MySQL</h1>";
            }
        
$query "SELECT * FROM trazabilidad WHERE (informado != 's')";
        
$result mysql_query($query) or die("Error en: $query: " mysql_error());
        while(
$registro mysql_fetch_array($result))
            {
                if (isset(
$registro['id']))
                    {
                        
$id $registro['id'];
                    }else{
                    
$id="";
                    }

                echo 
"ID: ";
                echo 
"$id";
                echo 
"<br>";
                
$args[0]["f_evento"] = $registro['f_evento'];
                echo 
"Fecha de vencimiento: ";
                echo 
$registro['f_evento'];
                echo 
"<br>";
                
$args[0]["h_evento"] = $registro['h_evento'];
                echo 
"Hora de envento: ";
                echo (
$registro['h_evento']);
                echo 
"<br>";
                
$args[0]["gln_origen"] = $registro['gln_origen'];
                echo 
"GLN Origen: ";
                echo (
$registro['gln_origen']);
                echo 
"<br>";
                
$args[0]["gln_destino"] = $registro['gln_destino'];
                echo 
"GLN Destino: ";
                echo (
$registro['gln_destino']);
                echo 
"<br>";
                
$args[0]["n_remito"] = $registro["n_remito"];
                echo 
"Nº de Remito: ";
                echo (
$registro["n_remito"]);
                echo 
"<br>";
                
$args[0]["n_factura"] = $registro["n_factura"];
                echo 
"Nº de Factura: ";
                echo (
$registro["n_factura"]);
                echo 
"<br>";
                
$args[0]["vencimiento"] = $registro["vencimiento"];
                echo 
"Vencimiento: ";
                echo (
$registro["vencimiento"]);
                echo 
"<br>";
                
$args[0]["gtin"] = $registro["gtin"];
                echo 
"GTIN: ";
                echo (
$registro["gtin"]);
                echo 
"<br>";
                
$args[0]["lote"] = $registro["lote"];
                echo 
"Lote: ";
                echo (
$registro["lote"]);
                echo 
"<br>";
                
$args[0]["numero_serial"] = $registro["numero_serial"];
                echo 
"Nº de Serial: ";
                echo (
$registro["numero_serial"]);
                echo 
"<br>";
                
$args[0]["id_evento"] = $registro["id_evento"];
                echo 
"ID Evento: ";
                echo (
$registro["id_evento"]);
                echo 
"<br>";
                
$args[0]["n_postal"] = $registro["n_postal"];
                echo 
"Nº Postal: ";
                echo (
$registro["n_postal"]);
                echo 
"<br>";
                
$args[0]["telefono"] = $registro["telefono"];
                echo  
"Teléfono: ";
                echo (
$registro["telefono"]);
                echo 
"<br>";
                
$args[0]["cuit_destino"] = $registro["cuit_destino"];
                echo  
"cuit_destino: ";
                echo (
$registro["cuit_destino"]);
                echo 
"<br>";
                
$args[0]["cuit_origen"] = $registro["cuit_origen"];
                echo (
$registro["cuit_origen"]);
                echo  
"cuit_origen: ";
                echo 
"<br>";
                
$args[0]["tipo_documento"] = $registro["tipo_doc"];
                echo (
$registro["tipo_doc"]);
                echo  
"tipo_doc: ";
                echo 
"<br>";
                
$args[0]["desde_numero_serial"] = $registro["desde_serie"];
                echo (
$registro["desde_serie"]);
                echo  
"desde_serie: ";
                echo 
"<br>";
                
$args[0]["hasta_numero_serial"] = $registro["hasta_serie"];
                echo (
$registro["hasta_serie"]);
                echo  
"hasta_serie: ";
                echo 
"<br>";
        

                
$user '7798172580002';
                
$pass 'Pami0704';                
                
$response SendMedicamentos($args,$user,$pass);

                echo 
"resultado: ".$response['resultado']."<br>";
                echo 
"codigoTransaccion: ".$response['codigoTransaccion']."<br>";
                
$cod_trans=$response['codigoTransaccion'];
                
$idTransaccionParaCancelar $response['codigoTransaccion'];
                
$errores $response['errores'];
                
$falla=$errores;
                
$query mysql_query("UPDATE trazabilidad SET cod_trans='$cod_trans' WHERE id='$id'");
                
$query mysql_query("UPDATE trazabilidad SET error='$falla' WHERE id='$id'");
                
$query mysql_query("UPDATE trazabilidad SET informado= 's' WHERE error != 'ARRAY' and id='$id'");                
                echo 
"-------------------------------------------<br>";
            }

?>
Sin embargo, cuando modifico el código para que funcione con SQLSRV, no lo logro hacer andar y tengo este problema:

Código PHP:
<?php

require_once("../wsFunctions.php");

$server "Emi-PC\SQLEXPRESS";
$connectionInfo = array( "Database"=>"xpyme""UID"=>"sa""PWD"=>"sa2008");
        
$conn sqlsrv_connect($server$connectionInfo);
        if (
$conn)
            {
                echo 
"Conexión exitosa.<br />";
            }
        else
            {
                echo 
"Problema de conexión.<br/>";
                die (
print_r(sqlsrv_errors(), true));
            }
        
$query "SELECT * FROM Informes WHERE (informado != 's')";
        
$result sqlsrv_query($conn,$query) or die("Error en: $query: ");
        while(
$registro sqlsrv_fetch_array($result))
            {
                if (isset(
$registro['id']))
                    {
                        
$id $registro['id'];
                    }else{
                    
$id="";
                    }

                echo 
"ID: ";
                echo 
"$id";
                echo 
"<br>";
                
$args[0]["f_evento"] = $registro['f_evento'];
                echo 
"Fecha de vencimiento: ";
                echo 
$registro['f_evento'];
                echo 
"<br>";
                
$args[0]["h_evento"] = $registro['h_evento'];
                echo 
"Hora de envento: ";
                echo (
$registro['h_evento']);
                echo 
"<br>";
                
$args[0]["gln_origen"] = $registro['gln_origen'];
                echo 
"GLN Origen: ";
                echo (
$registro['gln_origen']);
                echo 
"<br>";
                
$args[0]["gln_destino"] = $registro['gln_destino'];
                echo 
"GLN Destino: ";
                echo (
$registro['gln_destino']);
                echo 
"<br>";
                
$args[0]["n_remito"] = $registro["n_remito"];
                echo 
"Nº de Remito: ";
                echo (
$registro["n_remito"]);
                echo 
"<br>";
                
$args[0]["n_factura"] = $registro["n_factura"];
                echo 
"Nº de Factura: ";
                echo (
$registro["n_factura"]);
                echo 
"<br>";
                
$args[0]["vencimiento"] = $registro["vencimiento"];
                echo 
"Vencimiento: ";
                echo (
$registro["vencimiento"]);
                echo 
"<br>";
                
$args[0]["gtin"] = $registro["gtin"];
                echo 
"GTIN: ";
                echo (
$registro["gtin"]);
                echo 
"<br>";
                
$args[0]["lote"] = $registro["lote"];
                echo 
"Lote: ";
                echo (
$registro["lote"]);
                echo 
"<br>";
                
$args[0]["numero_serial"] = $registro["numero_serial"];
                echo 
"Nº de Serial: ";
                echo (
$registro["numero_serial"]);
                echo 
"<br>";
                
$args[0]["id_evento"] = $registro["id_evento"];
                echo 
"ID Evento: ";
                echo (
$registro["id_evento"]);
                echo 
"<br>";
                
$args[0]["n_postal"] = $registro["n_postal"];
                echo 
"Nº Postal: ";
                echo (
$registro["n_postal"]);
                echo 
"<br>";
                
$args[0]["telefono"] = $registro["telefono"];
                echo  
"Teléfono: ";
                echo (
$registro["telefono"]);
                echo 
"<br>";
                
$args[0]["cuit_destino"] = $registro["cuit_destino"];
                echo  
"cuit_destino: ";
                echo (
$registro["cuit_destino"]);
                echo 
"<br>";
                
$args[0]["cuit_origen"] = $registro["cuit_origen"];
                echo (
$registro["cuit_origen"]);
                echo  
"cuit_origen: ";
                echo 
"<br>";
                
$args[0]["tipo_documento"] = $registro["tipo_doc"];
                echo (
$registro["tipo_doc"]);
                echo  
"tipo_doc: ";
                echo 
"<br>";
                
$args[0]["desde_numero_serial"] = $registro["desde_serie"];
                echo (
$registro["desde_serie"]);
                echo  
"desde_serie: ";
                echo 
"<br>";
                
$args[0]["hasta_numero_serial"] = $registro["hasta_serie"];
                echo (
$registro["hasta_serie"]);
                echo  
"hasta_serie: ";
                echo 
"<br>";
        

                
$user '7798172580002';
                
$pass 'Pami0704';                
                
$response SendMedicamentos($args,$user,$pass);

                echo 
"resultado: ".$response['resultado']."<br>";
                echo 
"codigoTransaccion: ".$response['codigoTransaccion']."<br>";
                
$cod_trans=$response['codigoTransaccion'];
                
$idTransaccionParaCancelar $response['codigoTransaccion'];
                
$errores $response['errores'];
                
$falla=$errores;
                
$query sqlsrv_query("UPDATE trazabilidad SET cod_trans='$cod_trans' WHERE id='$id'");
                
$query sqlsrv_query("UPDATE trazabilidad SET error='$falla' WHERE id='$id'");
                
$query sqlsrv_query("UPDATE trazabilidad SET informado= 's' WHERE error != 'ARRAY' and id='$id'");                
                echo 
"-------------------------------------------<br>";
            }
            
$sql "SELECT TOP 1000 [TRANSACCION] 
                        FROM dbo.informes"
;
            
/*$query = sqlsrv_query($conn,$sql);
            while( $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_NUMERIC))
            {    
                echo "ProdID: ".$row[0]."\n";
                echo "UnitPrice: ".$row[3]."\n";
                echo "StockedQty: ".$row[4]."\n";
                echo "-----------------\n";
            }*/
            //print($query);
            

?>


Cómo debo parametrizar? qué es lo qué falla?

Saludos.
  #2 (permalink)  
Antiguo 14/06/2014, 18:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problema funciones SQLSRV

Revisa el manual para aclarar tus dudas: http://www.php.net/manual/es/function.sqlsrv-query.php
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 14/06/2014, 18:11
 
Fecha de Ingreso: septiembre-2012
Mensajes: 11
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema funciones SQLSRV

te juro que lo revisé, pero no se si estoy medio idiota en estos días, pero no puedo terminar de entenderlo. Necesitaría un ejemplo de algo similar a lo que estoy haciendo.
  #4 (permalink)  
Antiguo 14/06/2014, 18:29
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Problema funciones SQLSRV

Un consejo .... ve a ejemplos "base" del manual y cuando te funcionen, haz cambios sobre él

Por otro lado cual es el error exacto que arroja mysql_error() ?
__________________
Salu2!
  #5 (permalink)  
Antiguo 14/06/2014, 18:39
 
Fecha de Ingreso: septiembre-2012
Mensajes: 11
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema funciones SQLSRV

Nono, el error que me da está en la foto que puse. Es decir, funciona correctamente pero el código que checkea que esté todo en condiciones me tira el error con la query. Es decir, el tema se produce acá:

Código PHP:
        $query "SELECT * FROM Informes WHERE (informado != 's')";
        
$result sqlsrv_query($conn,$query) or die("Error en: $query: "); 
  #6 (permalink)  
Antiguo 14/06/2014, 18:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problema funciones SQLSRV

Necesitas un mensaje de error más específico:

Código PHP:
Ver original
  1. $result = sqlsrv_query($conn, $query) or die( print_r( sqlsrv_errors(), true));

Ya nos contarás el mensaje que recibes.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 14/06/2014, 18:54
 
Fecha de Ingreso: septiembre-2012
Mensajes: 11
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema funciones SQLSRV

Perfecto! ese nuevo código de error me ayudó mucho! gracias!
  #8 (permalink)  
Antiguo 14/06/2014, 18:55
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problema funciones SQLSRV

No 'pos "de nada"...

Digo, mímimo menciona cuál fue el error, así quedará una posible solución para otros usuarios que tengan un problema similar.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 14/06/2014, 19:00
 
Fecha de Ingreso: septiembre-2012
Mensajes: 11
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema funciones SQLSRV

Si, era un error de tipos con la base de datos!. Yo buscaba una S en un campo numérico.. jeje, si ya les dije que estaba hecho un idiota ! jeje
  #10 (permalink)  
Antiguo 14/06/2014, 19:38
 
Fecha de Ingreso: septiembre-2012
Mensajes: 11
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema funciones SQLSRV

No doy como solucionado, por que seguramente tenga algún otro error. Aguardaré 1 día más a ver como sigue.
  #11 (permalink)  
Antiguo 14/06/2014, 19:38
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Problema funciones SQLSRV

Cita:
Iniciado por Triby Ver Mensaje
Necesitas un mensaje de error más específico:

Código PHP:
Ver original
  1. $result = sqlsrv_query($conn, $query) or die( print_r( sqlsrv_errors(), true));
Como no lo vi ?! itentaba ver un error de otro motor
__________________
Salu2!

Etiquetas: fecha, funciones, mysql, registro, select, 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 16:27.