Error procedure con asp.

30/09/2003 - 18:26 por chele | Informe spam
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

#1 manuel
30/09/2003 - 19:42 | Informe spam
¿cómo le pasas el parameter al command? Allí debe estar el
problema se me ocurre...
suerte
Manuel

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.


.

Preguntas similares