Foros del Web » Programando para Internet » PHP »

Problema Al Ejecutar Procedimiento SQL php

Estas en el tema de Problema Al Ejecutar Procedimiento SQL php en el foro de PHP en Foros del Web. Saludos He tenido problema a mandar a llamar mi procedimiento SQL segun he analizado como que la varible de parametros que envio en mssq_bind, no ...
  #1 (permalink)  
Antiguo 20/05/2014, 12:34
 
Fecha de Ingreso: mayo-2014
Mensajes: 2
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Problema Al Ejecutar Procedimiento SQL php

Saludos

He tenido problema a mandar a llamar mi procedimiento SQL segun he analizado como que la varible de parametros que envio en mssq_bind, no esta mandando los parametros es por eso que la procedimiento me devuelve 0 registros necesito su ayuda no se que pasa.


dejo tambien mi codigo php para la llamada del procedimiento

$stmt2 = mssql_init('SP_COBERTURAPROD_PT_PXS', $connsql_SV8);


$codigocliente1 = $codigocliente1;



mssql_bind($stmt2, '@CLAVE', $codigocliente1, SQLVARCHAR, false,false,10);


$result1= mssql_execute($stmt2);

Gracias de antemano
  #2 (permalink)  
Antiguo 20/05/2014, 14:45
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problema Al Ejecutar Procedimiento SQL php

Estas seguro que esta linea esta bien ?
Código PHP:
Ver original
  1. $codigocliente1 = $codigocliente1;
Tambien recuerdo pasar $codigocliente1 por referencia en mssql_bind. Pero no me hagas mucho caso soy un asistente contable aprendiendo php para arreglar un sistema en el trabajo.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 20/05/2014, 15:12
 
Fecha de Ingreso: mayo-2014
Mensajes: 2
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Problema Al Ejecutar Procedimiento SQL php

Gracias por responder
hice un cambio pero a un asi no me lo envia

$stmt = mssql_init('[SP_COBERTURAPROD_PT_prueba]',$connsql_SV8);
$var=$codigocliente01;
mssql_bind($stmt, '@Bod',$var,SQLVARCHAR,false,false,10);

parte de mi procedimiento es este ,quiero aclarar que si lo ejecuto en la consola de sql me funciona pero si le mando parametros desde php no me funciona

USE [SAE5]
GO
/****** Object: StoredProcedure [dbo].[SP_COBERTURAPROD_PT] Script Date: 05/20/2014 14:07:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: lmoran
-- Create date: <Create Date,,>
-- Description: Cobertura de Inventario Bodega 2
-- =============================================
alter PROCEDURE [dbo].[SP_COBERTURAPROD_PT_prueba]
@Bod VARCHAR(10)='A0001'
AS
BEGIN
DECLARE @HOY DATETIME
DECLARE @3MA DATETIME
DECLARE @6MA DATETIME
DECLARE @12MA DATETIME
DECLARE @24MA DATETIME
DECLARE @HOY2 DATETIME

SET @HOY= CONVERT(VARCHAR,GETDATE(),103)
SET @3MA= DATEADD(month, -3,@HOY)
SET @6MA=DATEADD(month, -6,@HOY)
SET @12MA = DATEADD(month, -12,@HOY)
SET @24MA=DATEADD(month, -24,@HOY)

-----Eliminar Tablas Temporales
IF OBJECT_ID('TEMPDB.dbo.##tTEMP_INVPROD_RF_PP') IS NOT NULL
DROP TABLE dbo.##tTEMP_INVPROD_RF_PP
IF OBJECT_ID('TEMPDB.dbo.##tTEMP_ENCDET_BUY') IS NOT NULL
DROP TABLE dbo.##tTEMP_ENCDET_BUY
IF OBJECT_ID('[SysReport].[dbo].[ENCDET_PXR_PT]') IS NOT NULL
DROP TABLE [SysReport].[dbo].[ENCDET_PXR_PT]
IF OBJECT_ID('TEMPDB.dbo.##tTEMP_FACTPED_PXS') IS NOT NULL
DROP TABLE dbo.##tTEMP_FACTPED_PXS
IF OBJECT_ID('TEMPDB.dbo.##tTEMP_FACTPED_PXS02') IS NOT NULL
DROP TABLE dbo.##tTEMP_FACTPED_PXS02
IF OBJECT_ID('[SysReport].[dbo].[ENCDET_PXS_PT]') IS NOT NULL
DROP TABLE [SysReport].[dbo].[ENCDET_PXS_PT]
IF OBJECT_ID('TEMPDB.dbo.##tTEMP_MOV_VTA') IS NOT NULL
DROP TABLE dbo.##tTEMP_MOV_VTA
IF OBJECT_ID('TEMPDB.dbo.##tTEMP_MOV_VTA_RESM') IS NOT NULL
DROP TABLE dbo.##tTEMP_MOV_VTA_RESM
IF OBJECT_ID('TEMPDB.dbo.##tTEMP_MOV_VTA_RESM_2') IS NOT NULL
DROP TABLE dbo.##tTEMP_MOV_VTA_RESM_2

IF OBJECT_ID('TEMPDB.dbo.##tTEMP_RESUL_COBERTURA_PT') IS NOT NULL
DROP TABLE dbo.##tTEMP_RESUL_COBERTURA_PT
IF OBJECT_ID('SysReport.DBO.PRODUCTOS_PXS') IS NOT NULL
DROP TABLE SysReport.DBO.PRODUCTOS_PXS
CREATE TABLE dbo.##tTEMP_MOV_VTA(
[ID] int identity (1,1),
[CVE_ART] [VARCHAR](16),
[CVE_CPTO] [INT],
[Desc_Mov] [VARCHAR](18),
[Unidades] [FLOAT] DEFAULT 0,
[ALMACEN] [INT],
--[DESCR] [VARCHAR](40),
[PRECIO] [FLOAT] DEFAULT 0,
[COSTO] [FLOAT] DEFAULT 0,
[FECHA_DOCU] [DATETIME],
MES [INT] )

CREATE TABLE dbo.##tTEMP_MOV_VTA_RESM(
[ID] int identity (1,1),
[CVE_ART] [VARCHAR](16),
[VENDIDAS] [FLOAT] DEFAULT 0,
[FECHA] [DATETIME])

CREATE TABLE dbo.##tTEMP_MOV_VTA_RESM_2(
[ID] int identity (1,1),
[CVE_ART] [VARCHAR](16),
[VTAS] [FLOAT] DEFAULT 0)

CREATE TABLE dbo.##tTEMP_INVPROD_RF_PP(
[ID] int identity (1,1),
[CVE_ART] [VARCHAR](16),
[DESCR] [VARCHAR](40),
[LIN_PROD] [VARCHAR](5) DEFAULT 0,
[CTRL_ALM] [VARCHAR](10),
[COMP_X_REC] [FLOAT] DEFAULT 0,
[PEND_SURT] [FLOAT] DEFAULT 0,
[Exist_Inv] [FLOAT] DEFAULT 0,
[COSTO_PROM] [FLOAT] DEFAULT 0,
[CVE_ALM] [int] DEFAULT 0,
[BODEGA] [VARCHAR](40),
[EXIST_Mult] [FLOAT] DEFAULT 0,
[PXR] [FLOAT] DEFAULT 0)

CREATE TABLE dbo.##tTEMP_ENCDET_BUY(
[ID] int identity (1,1),
[CVE_ART] [VARCHAR](16),
[NUM_ALM] [FLOAT],
[PXR_Buy] [FLOAT])

CREATE TABLE [SysReport].[dbo].[ENCDET_PXR_PT](
[ID] int identity (1,1),
[CVE_ART] [VARCHAR](16),
[PXR] [FLOAT] DEFAULT 0)

CREATE TABLE dbo.##tTEMP_FACTPED_PXS(
[ID] int identity (1,1),
[CVE_ART_CONCAT1] [VARCHAR](16),
[CVE_ART] [VARCHAR](16),
[DESCR] [VARCHAR](40),
[PXS] [FLOAT] DEFAULT 0,
[CLAVE] [VARCHAR](10) DEFAULT 0
)

CREATE TABLE dbo.##tTEMP_FACTPED_PXS02(
[ID] int identity (1,1),
[CVE_ART_CONCAT1] [VARCHAR](16),
[CVE_ART] [VARCHAR](16),
[DESCR] [VARCHAR](40),
[PXS] [FLOAT] DEFAULT 0,
[CLAVE] [VARCHAR](10) DEFAULT 0
)

CREATE TABLE [SysReport].[dbo].[ENCDET_PXS_PT](
[ID] int identity (1,1),
[CVE_ART] [VARCHAR](16),
[PXS] [FLOAT] DEFAULT 0,
[CLAVE] [VARCHAR](10) DEFAULT 0
)
CREATE TABLE dbo.##tTEMP_RESUL_COBERTURA_PT(
[ID] int identity (1,1),
--[CVE_ART_CONCAT] [VARCHAR](16),
[CLV_ART] [VARCHAR](16) NOT NULL,
[CVE_ALTER] [VARCHAR](10) NOT NULL,
[DESCR] [VARCHAR](40),
[LIN_PROD] [VARCHAR](5) DEFAULT 0,
[CTRL_ALM] [VARCHAR](10),
[EXIST] [FLOAT] DEFAULT 0,
[COSTO_PROM] [FLOAT],
[ULT_COSTO] [FLOAT],
[STOCK_MIN] [FLOAT],
[STOCK_MAX] [FLOAT],
-- [FCH_ULTCOM] [DATETIME],
-- [FCH_ULTVTA] [DATETIME],
[APART] [FLOAT],
[PXS] [FLOAT] DEFAULT 0,
[PXR] [FLOAT] DEFAULT 0,
[RF_Piezas] [FLOAT] DEFAULT 0,
[RF_PXR] [FLOAT] DEFAULT 0,
[PP_Piezas] [FLOAT] DEFAULT 0,
[PP_PXR] [FLOAT] DEFAULT 0,
[PROMHVTA] [FLOAT] DEFAULT 0,
[COB] [FLOAT] DEFAULT 0,
[COB2] [FLOAT] DEFAULT 0,
[ALMACEN] [INT] DEFAULT 0,
[CLAVE] [VARCHAR](10) DEFAULT 0
)
SET NOCOUNT ON;

------------CREAR TABLA DE RESULTADOS EN BASE A EL CATALOGO DE INV------------------------------
INSERT INTO ##tTEMP_RESUL_COBERTURA_PT (CLV_ART, CVE_ALTER, DESCR, LIN_PROD, CTRL_ALM, EXIST,
COSTO_PROM, ULT_COSTO, STOCK_MIN, STOCK_MAX, APART, ALMACEN)

SELECT dbo.INVE01.CVE_ART,CASE WHEN dbo.CVES_ALTER01.CVE_ALTER IS NULL THEN '0' ELSE dbo.CVES_ALTER01.CVE_ALTER END as CVE_ALTER, dbo.INVE01.DESCR, CASE WHEN dbo.INVE01.LIN_PROD IS NULL THEN '0' ELSE dbo.INVE01.LIN_PROD end ,
dbo.INVE01.CTRL_ALM,CASE WHEN dbo.INVE01.EXIST IS null then 0 else dbo.INVE01.EXIST end, dbo.INVE01.COSTO_PROM, dbo.INVE01.ULT_COSTO,
dbo.INVE01.STOCK_MIN, dbo.INVE01.STOCK_MAX,
dbo.INVE01.APART, dbo.MULT01.CVE_ALM
FROM dbo.INVE01 INNER JOIN
dbo.MULT01 ON dbo.INVE01.CVE_ART = dbo.MULT01.CVE_ART LEFT OUTER JOIN
dbo.CVES_ALTER01 ON dbo.INVE01.CVE_ART = dbo.CVES_ALTER01.CVE_ART LEFT OUTER JOIN
dbo.CLIN01 ON dbo.INVE01.LIN_PROD = dbo.CLIN01.DESC_LIN

ORDER BY dbo.INVE01.CVE_ART

UPDATE ##tTEMP_RESUL_COBERTURA_PT SET PXS=0, PXR=0, RF_Piezas=0, RF_PXR=0, PP_Piezas=0, PP_PXR=0, PROMHVTA=0, COB=0, COB2=0

----------------************************************************** ********************----------------
------------- Pendientes por Recibir (COMPRAS)--------------
INSERT INTO ##tTEMP_ENCDET_BUY (CVE_ART, NUM_ALM, PXR_Buy)
SELECT DISTINCT dbo.PAR_COMPO01.CVE_ART, dbo.PAR_COMPO01.NUM_ALM,
SUM(dbo.PAR_COMPO01.PXR) AS PXR_Buy
FROM dbo.PAR_COMPO01 INNER JOIN
dbo.INVE01 ON dbo.PAR_COMPO01.CVE_ART = dbo.INVE01.CVE_ART INNER JOIN
dbo.COMPO01 ON dbo.PAR_COMPO01.CVE_DOC = dbo.COMPO01.CVE_DOC
GROUP BY dbo.PAR_COMPO01.CVE_ART, dbo.PAR_COMPO01.NUM_ALM, dbo.COMPO01.STATUS,
dbo.COMPO01.FECHA_DOC
HAVING (SUM(dbo.PAR_COMPO01.PXR) <> 0) AND (dbo.COMPO01.STATUS <> 'C') AND
(dbo.COMPO01.FECHA_DOC >= @3MA)
ORDER BY dbo.PAR_COMPO01.CVE_ART

----SELECT * FROM ##tTEMP_ENCDET_BUY

----2do
INSERT INTO [SysReport].[dbo].[ENCDET_PXR_PT] (CVE_ART, PXR)
SELECT CVE_ART, SUM(PXR_Buy) AS PXR FROM ##tTEMP_ENCDET_BUY
GROUP BY CVE_ART

DECLARE @CVE_ART_PXR VARCHAR(16), @CANT_PXR FLOAT, @cont3 INT, @contador3 INT

SELECT @cont3=COUNT(*) FROM [SysReport].[dbo].[ENCDET_PXR_PT]
SET @contador3 =1

WHILE @contador3<=@cont3
BEGIN

SELECT @CVE_ART_PXR=CVE_ART, @CANT_PXR=SUM(PXR) FROM [SysReport].[dbo].[ENCDET_PXR_PT] WHERE ID= @contador3
GROUP BY CVE_ART

UPDATE ##tTEMP_RESUL_COBERTURA_PT SET PXR=@CANT_PXR WHERE CLV_ART=@CVE_ART_PXR
SET @CVE_ART_PXR=' '
SET @CANT_PXR =0

SET @contador3=@contador3+1
END --- WHILE

INSERT INTO ##tTEMP_FACTPED_PXS (CVE_ART, PXS,CLAVE)
SELECT DISTINCT dbo.PAR_FACTP01.CVE_ART,dbo.PAR_FACTP01.PXS AS PXS,dbo.FACTP01.CVE_CLPV
FROM dbo.FACTP01 INNER JOIN
dbo.PAR_FACTP01 ON dbo.FACTP01.CVE_DOC = dbo.PAR_FACTP01.CVE_DOC INNER JOIN
dbo.INVE01 ON dbo.PAR_FACTP01.CVE_ART = dbo.INVE01.CVE_ART
-- GROUP BY dbo.PAR_FACTP01.CVE_ART, dbo.FACTP01.FECHA_DOC, dbo.FACTP01.STATUS

WHERE (dbo.FACTP01.FECHA_DOC >= @3MA) AND (dbo.FACTP01.STATUS <> 'C')
ORDER BY dbo.PAR_FACTP01.CVE_ART

INSERT INTO ##tTEMP_FACTPED_PXS02 (CVE_ART, PXS,CLAVE)
SELECT CVE_ART ,SUM(PXS) AS PXS,CLAVE FROM ##tTEMP_FACTPED_PXS
GROUP BY CVE_ART,CLAVE
HAVING (SUM(PXS) <> 0)
ORDER BY CVE_ART

INSERT INTO [SysReport].[dbo].[ENCDET_PXS_PT] (CVE_ART, PXS,CLAVE)
SELECT CVE_ART, SUM(PXS) AS PSR,CLAVE FROM ##tTEMP_FACTPED_PXS02
GROUP BY CVE_ART,CLAVE

DECLARE @CVE_ART_PXS VARCHAR(16), @CANT_PXS FLOAT, @cont_PXS INT, @contador_PXS INT,@CLAVE_CLIE VARCHAR(10)

SELECT @cont_PXS=COUNT(*) FROM [SysReport].[dbo].[ENCDET_PXS_PT]
SET @contador_PXS =1

SELECT @cont1=COUNT(*) FROM [SysReport].[dbo].[ENCDET_PXR_PT]
SET @contador1 =1



SELECT distinct
CLV_ART,CVE_ALTER,DESCR,EXIST,PXS,CLAVE FROM ##tTEMP_RESUL_COBERTURA_PT WHERE CLAVE=@Bod AND PXS >0 ORDER BY EXIST

END
------EXECUTE [SP_COBERTURAPROD_PT_prueba]

Etiquetas: procedimiento, registro, sql
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 08:51.