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.