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.

Preguntas similare

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.


Respuesta Responder a este mensaje
#2 Jesus G.
03/06/2005 - 16:18 | Informe spam
Si, lo he preguntado pero nadie me sabe contestar. La cuestión es q uso el
mismo proceso para crear los Create Procedure y no me fallan. Ofu...

"Eleazar" escribió en el mensaje
news:
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.
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida