Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/12/2005, 11:24
Kelbethor
 
Fecha de Ingreso: agosto-2004
Mensajes: 62
Antigüedad: 19 años, 8 meses
Puntos: 2
Problema al ejecutar Procedimiento

Tengo en vb6 un dataenvironment con un comando que ejecuta un procedimiento almacenado que está en una bbdd de sql server, la sentencia es la siguiente:
Código:
'Generapedio(Empresa As Integer, Ejercicio As Integer, Serie As String, Numero As Long)
de.GeneraPedido Emp, ej, Ser, num
Pues cuando lo ejecuto me da este error:
-2147217833 : Los datos de cadena o binarios se truncarian

Este es el Procedimiento almacenado:
Código:
CREATE PROCEDURE dbo.GeneraPedido
	@Emp smallint,
	@Ej smallint,
	@Serie varchar(4),
	@Num integer
AS
declare @Articulo varchar(20)
declare @Formato varchar(10)
declare @Partida varchar(15)
declare @PartidaOrigen varchar(15)
declare @Cantidad decimal(28,10)
declare @Pos uniqueidentifier
declare @Ord int
declare @Orden int
declare @FechaRegistro Datetime
declare @FechaPedido DateTime
declare @Almacen varchar(4)
declare @Base varchar(10)
declare @Factor decimal(28,10)
declare @Familia varchar(10)
declare @SubFamilia varchar(10)
declare @D1 varchar(250)
declare @D2 varchar(250)
declare @D3 varchar(250)
declare @Cliente varchar(20)
declare @Proveedor varchar(20)
declare @Pedidas decimal(28,10)
declare @Servidas decimal(28,10)
declare @AServir decimal(28,10)
declare @CantidadBase decimal(28,10)
declare @AServirBase decimal(28,10)
declare @Definicion varchar(15)
declare @Transaccion tinyint
declare @Departamento varchar(10)
declare @Proyecto varchar(15)
declare @Seccion  varchar(10)
declare @FechaCaduca datetime
declare @FechaNecesaria datetime
declare @FechaEntrega datetime
declare @FechaTope datetime
declare @SuPedido varchar(15)
declare @ReservaStock smallint
declare @AcumulaEstadistica smallint
declare @Estado tinyint
declare @IvaIncluido smallint
declare @GrupoIva tinyint
declare @CodigoIva smallint
declare @PIva decimal(28,10)
declare @Recargo decimal(28,10)
declare @BaseCorrectora decimal(28,10)
declare @Pendientes decimal(28,10)
declare @coste decimal(28,10)
declare @Comisionista integer
declare @Comisionista2 integer
declare @Comisionista3 integer
declare @Comisionista4 integer
declare @JefeVenta integer
declare @JefeZona integer
declare @PComision decimal(28,10)
declare @PComision2 decimal(28,10)
declare @PComision3 decimal(28,10)
declare @PComision4 decimal(28,10)
declare @PComisionVenta decimal(28,10)
declare @PComisionZona decimal(28,10)
declare @TipoArticulo varchar(1)
declare @GestionCompras smallint
declare @FactorPrecioVenta decimal(28,10)
declare @TipoUnidadCalculo tinyint
set @Serie=''
declare C_GP cursor for SELECT     pe.CodigoEmpresa, pe.EjercicioPedido, pe.SeriePedido, pe.NumeroPedido, dbo.SiguienteOrdenPedido(pe.CodigoEmpresa, pe.EjercicioPedido, 
                      pe.SeriePedido, pe.NumeroPedido) AS Orden, NEWID() AS LineasPosicion, GETDATE() AS FechaRegistro, pe.FechaPedido, m.CodigoArticulo, 
                      pa.CodigoAlmacen, pa.Partida, u.UnidadMedida1_, a.UnidadMedida2_, m.FactorConversion_, a.CodigoFamilia, a.CodigoSubfamilia, 
                      a.DescripcionArticulo, u.UnidadConfeccion AS Descripcion2Articulo, a.DescripcionLinea, pe.CodigoCliente AS CodigoDelCliente, Ag.CodigoProveedor, 
                      pe.CodigoDefinicion_, pe.CodigoTransaccion, pe.CodigoProyecto, pe.CodigoSeccion, pe.CodigoDepartamento, pa.FechaEfectiva AS FechaCaduca, 
                      pe.FechaNecesaria, pe.FechaEntrega, pe.FechaTope, pe.SuPedido, pe.ReservarStock_, a.AcumulaEstadistica_, 0 AS Estado, a.IvaIncluido, a.GrupoIva, 
                      i.CodigoIva, i.[%Iva], i.[%RecargoEquivalencia] AS [%Recargo], i.[%BaseCorrectora] AS [%BaseCorreccion], m.Cantidad AS UnidadesPedidas, 
                      0 AS UnidadesServidas, m.Cantidad AS UnidadesPendientes, m.Cantidad AS UnidadesAServir, m.UnidadesEntrada AS Unidades2_, 
                      m.UnidadesEntrada AS Unidades2aServir_, m.CosteTotal AS PrecioCoste, pe.CodigoComisionista, pe.CodigoComisionista2_, 
                      pe.CodigoComisionista3_, pe.CodigoComisionista4_, pe.CodigoJefeVenta_, pe.CodigoJefeZona_, pe.[%Comision], pe.[%Comision2_], 
                      pe.[%Comision3_], pe.[%Comision4_], pe.[ComisionSobreVenta%_], pe.[ComisionSobreZona%_], a.TipoArticulo, a.GestionCompras, 
                      a.FactorPrecioVenta_, a.TipoUnidadCalculo_
FROM         dbo.CabeceraPedidoCliente pe INNER JOIN
                      dbo.Articulos a ON pe.CodigoEmpresa = a.CodigoEmpresa INNER JOIN
                      dbo.BC_PALETS pa ON pe.CodigoEmpresa = pa.CodigoEmpresa AND pe.EjercicioPedido = pa.Ejercicio AND ISNULL(pe.SeriePedido, '') 
                      = ISNULL(pa.SeriePedido, '') AND pe.NumeroPedido = pa.NumeroPedido INNER JOIN
                          (SELECT     PaletGuid, CodigoEmpresa, CodigoArticulo, UnidadMedida1_, CodigoAgricultor, CodigoParcela, FactorConversion_, 
                                                   SUM(UnidadesEntrada) AS UnidadesEntrada, SUM(Cantidad) AS Cantidad, SUM(costetotal) AS CosteTotal
                            FROM          dbo.BC_MERCANCIA
                            GROUP BY PaletGuid, CodigoEmpresa, CodigoArticulo, UnidadMedida1_, CodigoAgricultor, CodigoParcela, FactorConversion_) m ON 
                      pa.ID_PALET = m.PaletGuid AND a.CodigoArticulo = m.CodigoArticulo AND pa.CodigoEmpresa = m.CodigoEmpresa INNER JOIN
                      dbo.UnidadesMedida u ON m.CodigoEmpresa = u.CodigoEmpresa AND m.CodigoArticulo = u.CodigoArticulo AND 
                      m.UnidadMedida1_ = u.UnidadMedida1_ INNER JOIN
                      dbo.BC_Agricultores Ag ON m.CodigoAgricultor = Ag.CodigoAgricultor INNER JOIN
                      dbo.TiposIva i ON i.CodigoIva = dbo.GetCodigoIva(pe.CodigoCliente, pe.CodigoEmpresa, a.CodigoArticulo) AND 
                      i.CodigoTerritorio = pe.CodigoTerritorio
WHERE     (pe.CodigoEmpresa = @Emp) AND (pe.EjercicioPedido = @Ej) AND (pe.SeriePedido = @Serie) AND (pe.NumeroPedido = @Num)

open C_GP

fetch next from C_GP into @Emp, @Ej, @Serie, @Num, @Orden, @Pos, @FechaRegistro, @FechaPedido, @Articulo, @Almacen, @Partida, @Formato, @Base, @Factor, @Familia, @SubFamilia, @D1, @D2, @D3, @Cliente, @Proveedor, 
	@Definicion,@Transaccion,@Proyecto, @Seccion, @Departamento, @FechaCaduca, @FechaNecesaria, @FechaEntrega, @FechaTope, @SuPedido, @ReservaStock,@AcumulaEstadistica, @Estado, @IvaIncluido, @GrupoIva,
	@CodigoIva,@PIva, @Recargo, @BaseCorrectora,@Pedidas, @Servidas,@Pendientes, @AServir, @CantidadBase, @AServirBase, @coste, @Comisionista,@Comisionista2,@Comisionista3,@Comisionista4,@JefeVenta, @JefeZona,
	@PComision, @PComision2,@PComision3,@PComision4, @PComisionVenta, @PComisionZona, @TipoArticulo, @GestionCompras, @FactorPrecioVenta, @TipoUnidadCalculo
Set @Ord=1
while @@fetch_status=0 begin

	insert into LineasPedidoCliente (CodigoEmpresa, EjercicioPedido, SeriePedido, NumeroPedido, Orden, LineasPosicion, FechaRegistro, FechaPedido, CodigoArticulo, CodigoAlmacen, Partida, UnidadMedida1_, UnidadMedida2_, 
		FactorConversion_,CodigoFamilia, CodigoSubFamilia, DescripcionArticulo, Descripcion2Articulo, DescripcionLinea, CodigoDelCliente, CodigoProveedor,CodigoDefinicion_,CodigoTransaccion, CodigoProyecto, CodigoSeccion,
		CodigoDepartamento, FechaCaduca, FechaNecesaria, FechaEntrega, FechaTope, SuPedido, ReservarStock_, AcumulaEstadistica_, Estado, IvaIncluido, GrupoIva, CodigoIva, [%Iva], [%Recargo], [%BaseCorreccion],
		UnidadesPedidas, UnidadesServidas,UnidadesPendientes, UnidadesAServir, Unidades2_, Unidades2AServir_, PrecioCoste, CodigoComisionista,CodigoComisionista2_,CodigoComisionista3_,CodigoComisionista4_, CodigoJefeVenta_,
		CodigoJefeZona_, [%Comision],[%Comision2_], [%Comision3_], [%Comision4_], [ComisionSobreVenta%_], pe.[ComisionSobreZona%_], TipoArticulo, GestionCompras, FactorPrecioVenta_, a.TipoUnidadCalculo_)
	values (@Emp, @Ej, @Serie, @Num, @Ord, @Pos, @FechaRegistro, @FechaPedido, @Articulo, @Almacen, @Partida, @Formato, @Base, 
		@Factor, @Familia, @SubFamilia, @D1, @D2, @D3, @Cliente, @Proveedor, @Definicion,@Transaccion,@Proyecto, @Seccion, 
		@Departamento, @FechaCaduca, @FechaNecesaria, @FechaEntrega, @FechaTope, @SuPedido, @ReservaStock,@AcumulaEstadistica, @Estado, @IvaIncluido, @GrupoIva,@CodigoIva,@PIva, @Recargo, @BaseCorrectora,
		@Pedidas, @Servidas,@Pendientes, @AServir, @CantidadBase, @AServirBase, @coste, @Comisionista,@Comisionista2,@Comisionista3,@Comisionista4,@JefeVenta, 
		@JefeZona, @PComision, @PComision2,@PComision3,@PComision4, @PComisionVenta, @PComisionZona, @TipoArticulo, @GestionCompras, @FactorPrecioVenta, @TipoUnidadCalculo)

	Set @Ord=@Ord+1

	fetch next from C_GP into @Emp, @Ej, @Serie, @Num, @Orden, @Pos, @FechaRegistro, @FechaPedido, @Articulo, @Almacen, @Partida, @Formato, @Base, @Factor, @Familia, @SubFamilia, @D1, @D2, @D3, @Cliente, @Proveedor, 
	@Definicion,@Transaccion,@Proyecto, @Seccion, @Departamento, @FechaCaduca, @FechaNecesaria, @FechaEntrega, @FechaTope, @SuPedido, @ReservaStock,@AcumulaEstadistica, @Estado, @IvaIncluido, @GrupoIva,
	@CodigoIva,@PIva, @Recargo, @BaseCorrectora,@Pedidas, @Servidas,@Pendientes, @AServir, @CantidadBase, @AServirBase, @coste, @Comisionista,@Comisionista2,@Comisionista3,@Comisionista4,@JefeVenta, @JefeZona,
	@PComision, @PComision2,@PComision3,@PComision4, @PComisionVenta, @PComisionZona, @TipoArticulo, @GestionCompras, @FactorPrecioVenta, @TipoUnidadCalculo
end
close C_GP
deallocate C_GP
GO
Si lo ejecuto desde ISql funciona perfectamente pero desde la aplicación no le da la gana, con lo que he pensado que será problema de los parámetros pero por más vueltas que le doy no saco nada en claro, a ver si alguien me pudiera exar una mano...