consulta sobre create function

02/06/2005 - 13:38 por Jesus G. | Informe spam
Hola, foreros. Estoy creando un programa en VB.Net que me crea una base de
datos en una instancia de SQL Server. En un fichero de texto cargo los
Create Datatable y ejecuto ese texto como un script, con un
sqlcommand.ExecuteNonQuery. Los create datatable me los genera
correctamente, y los Create Procedure también, pero tengo un problemilla
creando unas funciones definidas por el usuario. Al hacer un Create Function
me da el siguiente error:

Esta es la funcion:

CREATE FUNCTION funLeerSerieDeFraDesdeAlbaran
(@IdFact int)
RETURNS nvarchar(5)
AS
BEGIN
DECLARE @valor nvarchar(5)
SELECT @valor = tbSerie.Codigo FROM tbDocCab INNER JOIN tbSerie ON
tbSerie.Id = tbDocCab.Serie
WHERE tbDocCab.IdDoc = @IdFact
return @valor
END

El error al ejecutar el command.ExecuteNonQuery:

ex.message "Línea 4: sintaxis incorrecta cerca de 'FUNCTION'.
Debe declarar la variable '@IdFact'.
La instrucción RETURN con un estado de retorno sólo puede usarse en un
procedimiento almacenado." String

¿Alguien sabe a qué es debido? La función está bien escrita, pues funciona
en la realidad así como está en una base de datos.
 

Leer las respuestas

#1 Eleazar
02/06/2005 - 17:36 | Informe spam
Hola si la funcion la ejecutas en SQL y funciona correctamente entonces el
problema es con VB.Net checalo en el foro de VB
suerte

"Jesus G." escribió en el mensaje
news:d7mr3t$ak7$
Hola, foreros. Estoy creando un programa en VB.Net que me crea una base de
datos en una instancia de SQL Server. En un fichero de texto cargo los
Create Datatable y ejecuto ese texto como un script, con un
sqlcommand.ExecuteNonQuery. Los create datatable me los genera
correctamente, y los Create Procedure también, pero tengo un problemilla
creando unas funciones definidas por el usuario. Al hacer un Create


Function
me da el siguiente error:

Esta es la funcion:

CREATE FUNCTION funLeerSerieDeFraDesdeAlbaran
(@IdFact int)
RETURNS nvarchar(5)
AS
BEGIN
DECLARE @valor nvarchar(5)
SELECT @valor = tbSerie.Codigo FROM tbDocCab INNER JOIN tbSerie ON
tbSerie.Id = tbDocCab.Serie
WHERE tbDocCab.IdDoc = @IdFact
return @valor
END

El error al ejecutar el command.ExecuteNonQuery:

ex.message "Línea 4: sintaxis incorrecta cerca de 'FUNCTION'.
Debe declarar la variable '@IdFact'.
La instrucción RETURN con un estado de retorno sólo puede usarse en un
procedimiento almacenado." String

¿Alguien sabe a qué es debido? La función está bien escrita, pues funciona
en la realidad así como está en una base de datos.


Preguntas similares