Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





problemas con T-SQL en SQL server 2005

Iniciado por seth444, 23 de Abril de 2008, 05:40:33 PM

« anterior - próximo »

seth444

Hola a tod@s, quería preguntaros una duda que me ha salido en el trabajo.

Tengo un Assembly al cual tengo que llamarlo desde una función. Mi jefe me ha dicho que esa función tiene que permitir parametros opcionales. Mi problema es este:

[funcion]

CREATE FUNCTION [Jitmv].[GetAutomaticText](@strXml [nvarchar](max), @nType [smallint]=0, @nGroup [smallint]=-1, @nSubModelNumber [smallint]=0, @nLanguaje [smallint]=0)
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [Preference.Jitmv].[Preference.Jitmv.SqlServer.Processor].[Process]


[ejecución de la función]

select Jitmv.GetAutomaticText (N'<Model> lo k sea </Model>',0,-1,0,0)


Como os decía, mi función debe permitir ser llamada con 1 o con 5 parametros, es decir, la puedo llamar de estas dos formas:
*)select Jitmv.GetAutomaticText (N'<Model> lo k sea </Model>',0,-1,0,0)
**)select Jitmv.GetAutomaticText (N'<Model> lo k sea </Model>')

Y mi problema es que cuando ejecuto (**) desde el SQL server, me dice:
" An insufficient number of arguments were supplied for the procedure or function Jitmv.GetAutomaticText. "

Pienso que debe ser problema de mi código en C#, pero no se como hacer que esos parametros los tome como opcionales en C#.
Si se os ocurre algo, que no sea sobrecargar la función a la que llamo o utilizar "params", por favor, avisadme. Lo digo porque ya he probado esas dos opciones y no me han funcionado.


PD: mi método en C# tiene como cabecera la siguiente, os lo pongo por si os ayuda a ver mi error.

[SqlFunction(DataAccess = DataAccessKind.Read)]
public static SqlString Process(SqlString xml, SqlInt16 production , SqlInt16 group, SqlInt16 subModelNumber, SqlInt16 languaje)
{}
lt;< Omnia in gloriam Dei facite (1Co 10, 31) >>






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.