Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problema al ejecutar Procedimiento

Estas en el tema de Problema al ejecutar Procedimiento en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 28/12/2005, 11:24
 
Fecha de Ingreso: agosto-2004
Mensajes: 62
Antigüedad: 19 años, 7 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...
  #2 (permalink)  
Antiguo 28/12/2005, 16:26
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Ese mensaje suele aparecer cuando declaras variables de mayor tamaño a lo que está creada realmente la tabla. Revisa que tus variables en el SP coincidan en tipo y tamaño con la tabla.

También revisa la misma concordancia desde la aplicación al declarar los parámetros del SP contra las variables del SP
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 15:25.