Buenas, tengo un procedure que me funciona bien pero que al quererle meter
una busqueda pues me falla. El procedure es este :
CREATE PROCEDURE dbo.InformeAdhesiones AS SELECT Adhesiones.IdAdhesion,
Adhesiones.Entidad, Adhesiones.Oficina, Adhesiones.Adhesion,
Adhesiones.Tipo, Adhesiones.IdProducto, Adhesiones.FechaSalida,
Adhesiones.FechaRegreso, Adhesiones.Zona, Adhesiones.Rc,
Adhesiones.Capital_RC, Adhesiones.NumPax, Adhesiones.NombreAsegurado,
Adhesiones.ImporteViaje, Adhesiones.ImportePoliza,
Adhesiones.TarifaAplicada, Adhesiones.Expediente, Adhesiones.FacturaEmitida,
Adhesiones.OkAgencia, Adhesiones.FechaAdhesion, Adhesiones.HoraAdhesion,
Oficinas.CodOficina, Oficinas.Fax, Oficinas.Telefono, Oficinas.Cod_Postal,
Oficinas.Direccion, Entidades.Denominacion, DEF_PRODUCTOS.Denominacion AS
NProducto, Zonas.Zona AS NZona, Adhesiones.CR, Adhesiones.NI,
Adhesiones.Monitores, Entidades.Logotipo, Oficinas.Denominacion AS DAgencia,
Entidades.LogotipoMedio, Adhesiones.av, Adhesiones.NombreAgente,
Docs_Emision.RutaDocumento, Adhesiones.Op, Oficinas.Area,
Adhesiones.Duracion, Oficinas.Usuario FROM (Entidades INNER JOIN
(((Adhesiones INNER JOIN Oficinas ON Adhesiones.Oficina Oficinas.IdOficina) INNER JOIN DEF_PRODUCTOS ON Adhesiones.IdProducto DEF_PRODUCTOS.IdProducto) LEFT JOIN Zonas ON Adhesiones.Zona = Zonas.IdZona)
ON Entidades.IdEntidad = Oficinas.IdEntidad) LEFT JOIN Docs_Emision ON
Adhesiones.IdProducto = Docs_Emision.IdProducto;
GO
Me funciona ningun problema, pero si intento hacer esto :
CREATE PROCEDURE dbo.InformeAdhesiones (@codexpediente as nvarchar) AS
SELECT Adhesiones.IdAdhesion, Adhesiones.Entidad, Adhesiones.Oficina,
Adhesiones.Adhesion, Adhesiones.Tipo, Adhesiones.IdProducto,
Adhesiones.FechaSalida, Adhesiones.FechaRegreso, Adhesiones.Zona,
Adhesiones.Rc, Adhesiones.Capital_RC, Adhesiones.NumPax,
Adhesiones.NombreAsegurado, Adhesiones.ImporteViaje,
Adhesiones.ImportePoliza, Adhesiones.TarifaAplicada, Adhesiones.Expediente,
Adhesiones.FacturaEmitida, Adhesiones.OkAgencia, Adhesiones.FechaAdhesion,
Adhesiones.HoraAdhesion, Oficinas.CodOficina, Oficinas.Fax,
Oficinas.Telefono, Oficinas.Cod_Postal, Oficinas.Direccion,
Entidades.Denominacion, DEF_PRODUCTOS.Denominacion AS NProducto, Zonas.Zona
AS NZona, Adhesiones.CR, Adhesiones.NI, Adhesiones.Monitores,
Entidades.Logotipo, Oficinas.Denominacion AS DAgencia,
Entidades.LogotipoMedio, Adhesiones.av, Adhesiones.NombreAgente,
Docs_Emision.RutaDocumento, Adhesiones.Op, Oficinas.Area,
Adhesiones.Duracion, Oficinas.Usuario FROM (Entidades INNER JOIN
(((Adhesiones INNER JOIN Oficinas ON Adhesiones.Oficina Oficinas.IdOficina) INNER JOIN DEF_PRODUCTOS ON Adhesiones.IdProducto DEF_PRODUCTOS.IdProducto) LEFT JOIN Zonas ON Adhesiones.Zona = Zonas.IdZona)
ON Entidades.IdEntidad = Oficinas.IdEntidad) LEFT JOIN Docs_Emision ON
Adhesiones.IdProducto = Docs_Emision.IdProducto where adhesiones.expediente@codexpediente ;
GO
Me da este error :
Microsoft OLE DB Provider for SQL Server (0x80040E07)
Error al convertir el tipo de datos int a nvarchar.
Y es lo que me ralla, por que el campo adhesiones.expediente es un nvarchar
que es como lo declare ¿alguna idea?.
Venga gracias anticipadas. TA luego.
Leer las respuestas