Foros del Web » Programando para Internet » PHP »

problemas con mysql_execute y archivo en unidad de red

Estas en el tema de problemas con mysql_execute y archivo en unidad de red en el foro de PHP en Foros del Web. Saludos, mi consulta es la siguiente: Deseo hacer correr un procedimiento almacenado de sql server (que si funciona) que se encuentra en un servidor diferente ...
  #1 (permalink)  
Antiguo 19/03/2012, 10:03
 
Fecha de Ingreso: marzo-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
problemas con mysql_execute y archivo en unidad de red

Saludos, mi consulta es la siguiente:
Deseo hacer correr un procedimiento almacenado de sql server (que si funciona) que se encuentra en un servidor diferente al mio.
El problema surge porque tiene que levantar un archivo que se encuentra en una unidad mapeada que es una carpeta dentro de mi servidor.
Repito, si el procedimiento se realiza desde el servidor sql server, se realiza perfectamente, pero al intentar ejecutar desde php se produce los siguientes errores:

Warning: mssql_execute() [function.mssql-execute]: message: No se puede realizar la carga masiva. El archivo "Z:\Encuestas\Contenido\xml\archivo.xml" no se puede abrir. Código de error del sistema operativo: 3(El sistema no puede encontrar la ruta especificada.). (severity 16) in C:\AppServ\www\ctgi\odk\procedimiento-almacenado.php on line 47

Warning: mssql_execute() [function.mssql-execute]: message: Error de INSERT porque las siguientes opciones SET tienen una configuración incorrecta: 'CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING'. Compruebe que las opciones SET son correctas y se pueden usar con vistas indizadas y/o índices en columnas calculadas y/o índices filtrados y/o notificaciones de consulta y/o métodos de tipo de datos XML y/u operaciones de índice espacial. (severity 16) in C:\AppServ\www\ctgi\odk\procedimiento-almacenado.php on line 47

Noten que en el primer mensaje de error hace referencia a la unidad "z" que esta mapeada.

Las opciones SET del segundo error furon controladas y se encuentra configuradas segun las opciones de sql server para trabajar con xml.

El codigo fuente del escript es el siguiente:

<?php

error_reporting(E_ALL);

// Conección a Base de Datos
$coneccionMssql = mssql_connect("EQUIPO", "USUARIO", "CONTRASEÑA") or die("No puedo conectarme a la Base de Datos");

// Selección de Base de Datos
$seleccioBdMssql = mssql_select_db("BASE_DE_DATOS") or die("No puedo seleccionar la Base de Datos");

// Inicio de Procedimiento almacenado
$declaracionProcedimiento = mssql_init("NOMBRE_DEL_PROCEDIMIENTO_ALMACENADO", $coneccionMssql) or die("No puedo llamar al procedimiento almacenado");

// Agregado de Parametros al Procedimiento Almacenado

$tpCd = 2;// Tipo
mssql_bind($declaracionProcedimiento, "@EncuTpCd", $tpCd, SQLINT4);

$nr = 6;// Número
mssql_bind($declaracionProcedimiento, "@EncuNr", $nr, SQLINT4);

$rutaXml = "Z:\\Encuestas\\Contenido\\xml\\archivo.xml";
mssql_bind($declaracionProcedimiento, "@EncuRutaXml", $rutaXml, SQLVARCHAR);

$versNr = 2;//version
mssql_bind($declaracionProcedimiento, "@EncuVersNr", $versNr, SQLINT1);

// Ejecución del procedimiento almacenado
$resultadoSql = mssql_execute($declaracionProcedimiento);

$numeroFilas = mssql_num_rows($resultadoSql);

if( $numeroFilas > 0 )
{
$row = mssql_fetch_array($resultadoSql);

foreach($row as $campo => $valor)
{
echo "campo: ".$campo." => valor: ".$valor." <br />";
}
//$campo = $row['campo'];
//$campo2 = $row['campo2'];

//LIBERAR RESULTADOS DEL BUFFER
mssql_free_result($resultadoSql);

//LIBERAR DECLARACIÓN DEL BUFFER
mssql_free_statement($declaracionProcedimiento);

}

?>

El procedimiento corriendo desde sql server es el siguiente:

[dbo].NOMBRE_DEL_PROCEDIMIENTO_ALMACENADO
@EncuTpCd int
, @EncuNr int
, @EncuRutaXml varchar(1000)
, @EncuVersNr smallint
y funciona correctamente.

Si alguien puede orientarme le estare muy agradecido.

Última edición por ej_pf; 19/03/2012 a las 10:13
  #2 (permalink)  
Antiguo 19/03/2012, 10:24
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: problemas con mysql_execute y archivo en unidad de red

Lamentablemente aunque tu sistema operativo reconozca la unidad de red como propia, el servicio de apache no tiene acceso.

No es posible acceder de manera convencional a un archivo alojado en una unidad de red.

Podrías intentar con accesos de tipo ftp.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 20/03/2012, 09:31
 
Fecha de Ingreso: marzo-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: problemas con mysql_execute y archivo en unidad de red

Temia que por ese lado tuviera problemas, probaré acceder con un usuario Apache en vez de servicio Apache y luego comentaré los resultados.
Muchas Gracias.
  #4 (permalink)  
Antiguo 20/03/2012, 09:39
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: problemas con mysql_execute y archivo en unidad de red

Mucha suerte, un tema interesante. No te olvides de postearnos el resultado.

Saludos
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 26/03/2012, 05:33
 
Fecha de Ingreso: marzo-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: problemas con mysql_execute y archivo en unidad de red

Al parecer no es posible darle solucion a este problema, el sql server no permite ejecucion de procedimientos almacenados de forma remota.

Etiquetas: red, sql, unidad, usuarios
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 12:53.