Hola.
Tengo el siguiente SP.
CREATE PROCEDURE dbo.OPProcesoMaquinaTimeDefault @tiProcesoId As Int,
@tiMaquinaId As Int, @MyOPs varchar(8000)
AS
Create table #MyOP (iOPC Int)
DECLARE @xmlDoc int
EXEC sp_xml_preparedocument @xmlDoc OUT, @MyOPs
Insert Into #MyOP
SELECT iopcid
FROM OPENXML (@xmlDoc, '/VFPData/rsop/iopcid') WITH (iopcid int '.')
EXEC sp_xml_removedocument @xmlDoc
Select OPC.iOPCId, (sum(OPMontaje.iPliegos * OPMontaje.iPedazos) /
count(*)) As iTiraje,
OPDifTiraje.iTiraje As iTirDefault, Maquina.iTirajeHora As
iTirMaq
From OPC Inner Join OPMontaje ON OPC.iOPCId = OPMontaje.iIdOPC
Inner Join OPDifTip ON OPC.iIdOPDifTip OPDifTip.iOPDifTipId
Left Join OPDifTiraje On OPDifTip.iOPDifTipId OPDifTiraje.iIdOPDifTip
And OPDifTiraje.iIdProceso = @tiProcesoId
And OPDifTiraje.iIdMaquina = @tiMaquinaId
Inner Join Maquina ON OPDifTiraje.iIdMaquina Maquina.iMaquinaId
Inner Join #MyOP ON OPC.iOPCId = #MyOP.iOPC
Group By OPC.iOPCId, OPDifTiraje.iTiraje, Maquina.iTirajeHora
drop table #MyOP
GO
Cuando ejecuto desde Anilizador de consulas no tengo problemas
Declare @tiProcesoId As Int, @tiMaquinaId As Int, @MyOPs varchar(8000)
Set @tiProcesoId = 3
Set @tiMaquinaId = 3
Set @MyOPs '<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>
<VFPData>
<rsop>
<iopcid>10</iopcid>
</rsop>
<rsop>
<iopcid>20</iopcid>
</rsop>
</VFPData>'
EXEC OPProcesoMaquinaTimeDefault 3, 3, @MyOPs
Cuando lo ejecuto desde mi aplicacion con VFP 8.0 SP 1 con ADO 2.8
contra Sql Server 2000 SP 4 me retorna el mensaje :
"Código de excepción OLE IDispatch 0 de Microsoft OLE DB Provider for
SQL Server: Valor de carácter no válido para especificación cast.."
Lo ejecuto de la siguiente maneara:
_Screen.odBCTALK.ocnn.Execute("{CALL OPProcesoMaquinaTimeDefault(3, 3,
lcMixls)}")
la variable lcMixls tiene el mismo contenido que defino para la
variable @MyOPs en el analizador de consulta.
Probe el de varias maneras pero no doy con la solucion.
Espero me puedan ayudar.
Saludos cordiales.
Mauricio Pulla.
Cuenca-Ecuador
Leer las respuestas