Foros del Web » Programando para Internet » PHP »

Procedimiento almacenado sql server 2005

Estas en el tema de Procedimiento almacenado sql server 2005 en el foro de PHP en Foros del Web. Amigos mi problemita es algo facil de explicar. estoy tratando de cambiar un valor de un campo de mi base de datos sql server con ...
  #1 (permalink)  
Antiguo 22/10/2010, 12:21
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 17 años
Puntos: 0
Exclamación Procedimiento almacenado sql server 2005

Amigos mi problemita es algo facil de explicar. estoy tratando de cambiar un valor de un campo de mi base de datos sql server con php, utilizo un update el cual en el panel de sql server funciona bien y al quererlo correr con php como un update normal como varios que he realizado me lanza este error:

Warning: mssql_query() [function.mssql-query]: message: Error de UPDATE porque las siguientes opciones SET tienen una configuración incorrecta: 'ANSI_NULLS, QUOTED_IDENTIFIER, 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 las columnas calculadas y/o notificaciones de consulta y/o métodos de tipos de datos XML. (severity 16)

nota: la tabla a la cual hago referencia tiene varios indices y esta relacionada, este es el update:

$server = "UPDATE ServicioMedico.TBL_Fichas SET status = '$chequeo' WHERE (IdTBL_Fichas = '$id')";

//die($server);
mssql_query($server);

nota: con la funcion die($server); ya comprobe que realmente viajan los datos, quiero decir con esto que mi sentencia esta bien. Me han dicho que realizando un procedimiento almacenado en sql server 2005 capturo las excepciones q me lanza el sql. El problema es que no se realizarlo quien me ayuda???

Solo quiero que el campo status que es igual a 0 cambie a 1 cuando envie el formulario es todo... Gracias Auxiliooo
  #2 (permalink)  
Antiguo 22/10/2010, 12:29
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Procedimiento almacenado sql server 2005

1.- Si funciona bien en SQL Server, no mensaje no va aqui, va en programacion PHP
2.- El mensaje esta mas que claro, debes setear

'ANSI_NULLS, QUOTED_IDENTIFIER, CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING'
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 22/10/2010, 13:02
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 17 años
Puntos: 0
Respuesta: Procedimiento almacenado sql server 2005

Ok amigo gracias por tu respuesta! sera que tu podrias orientarme como seteo esas variables???? y disculpa
Es que la verdad no se hacerlo
  #4 (permalink)  
Antiguo 22/10/2010, 13:05
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Procedimiento almacenado sql server 2005

Bueno, no soy AMIGA, mas bien AMIGO y la forma de setearlas, es cuando creas tu STORE PROCEDURE, haces

SET ANSI_WARNINGS ON
SET ANSI_NULLS ON

CREATE PROCEDURE ..........................................
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 22/10/2010, 13:20
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 17 años
Puntos: 0
Respuesta: Procedimiento almacenado sql server 2005

Disculpa amigo, yo hice la correccion observa arriba (amigo)...ok eso pense desde un principio, y como dije arriba el problema es que no se realizar es procedimiento :(
  #6 (permalink)  
Antiguo 22/10/2010, 13:39
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 17 años
Puntos: 0
Información Respuesta: Procedimiento almacenado sql server 2005

ALGO ASI PUDE HACER ME GUSTARIA SABER SI ESTA BIEN, AUNQ LA SINTAXIS ESTA BIEN:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET CONCAT_NULL_YIELDS_NULL ON
GO
SET ANSI_WARNINGS ON
GO
SET ANSI_PADDING ON
GO
ALTER PROCEDURE Ficha_seteo
(
@IdTBL_Fichas INT ,
@status INT

)
WITH
EXECUTE AS
CALLER
-- WITH ENCRYPTION (Esta opción esta deshabilitada por los momentos)
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON

BEGIN TRY
BEGIN TRANSACTION;
UPDATE
BDT_SIASODIAM.ServicioMedico.TBL_Fichas
SET
status=@status
WHERE
IdTBL_Fichas = @IdTBL_Fichas
COMMIT TRANSACTION;
END TRY

BEGIN CATCH
IF @@TRANCOUNT > 0
IF XACT_STATE() <> 0
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE dbo.STP_ManejoExcepcionesErroresGeneralesDetalles
END CATCH;
END
  #7 (permalink)  
Antiguo 22/10/2010, 13:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde SQL Server a PHP
  #8 (permalink)  
Antiguo 22/10/2010, 20:01
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 17 años
Puntos: 0
Información Respuesta: Procedimiento almacenado sql server 2005

amigos resulta que ahora en el sql server cuando agrego un procedimiento nuevo no me aparece en el panel junto a los demas sino que me da la opcion de gusrdar un .sql y ya... :(

Etiquetas: procedimiento, server, sql, almacenar
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 00:55.