Ejecutar funcion definida por usuario

04/09/2005 - 06:20 por Cristina | Informe spam
Hola a todos, estoy empezando a programar en .net ; mi duda es la
siguiente; se como configurar el objeto sqlcommand para ejecutar un
storeprocedure, mi problema es para ejecutar una funcion definida por
usuario... alguien podria enviarme un ejemplo?? como obtengo el valor
retornado por la funcion? es una funcion escalar.

Preguntas similare

Leer las respuestas

#1 Iván Sainz
04/09/2005 - 12:08 | Informe spam
No sé si te refieres a esto:

/*#################################*/
//Declaration of variables
string resultValue = String.Empty;
string connectionString = "<cadena de conexión>";
string sqlQuery = "<query>";
System.Data.SqlClient.SqlConnection cnSql;

//Initialization of objects
cnSql = new SqlConnection(connectionString);
cmdSql = new SqlCommand(sqlQuery,cnSql);
cmdSql.CommandType = CommandType.Text;

try
{
//Open connection
cnSql.Open();

//Execute query
resultValue = cmdSql.ExecuteScalar().ToString();
}
catch(Exception e)
{
//implementar algún control de errores aquí
}
finally
{
cmdSql.Dispose();
cnSql.Close();
cnSql.Dispose();
}

//Return value
return resultValue;
/*#################################*/

El valor devuelto lo he convertido a un string, pero no tiene por qué ser así.
Tendrás que asignarle una cadena de conexión y una query que ejecutar.

"Cristina" escribió:

Hola a todos, estoy empezando a programar en .net ; mi duda es la
siguiente; se como configurar el objeto sqlcommand para ejecutar un
storeprocedure, mi problema es para ejecutar una funcion definida por
usuario... alguien podria enviarme un ejemplo?? como obtengo el valor
retornado por la funcion? es una funcion escalar.


Respuesta Responder a este mensaje
#2 A.Poblacion
04/09/2005 - 14:41 | Informe spam
Una precaución: para que funcione correctamente, cuando escribas la
"<query>", hay que poner "esquema.funcion". Si omites el esquema, no
funciona. Por ejemplo:

string sqlQuery = "dbo.MiFuncion(12345)";


"Iván Sainz" wrote in message
news:
No sé si te refieres a esto:

/*#################################*/
//Declaration of variables
string resultValue = String.Empty;
string connectionString = "<cadena de conexión>";
string sqlQuery = "<query>";
System.Data.SqlClient.SqlConnection cnSql;

//Initialization of objects
cnSql = new SqlConnection(connectionString);
cmdSql = new SqlCommand(sqlQuery,cnSql);
cmdSql.CommandType = CommandType.Text;

try
{
//Open connection
cnSql.Open();

//Execute query
resultValue = cmdSql.ExecuteScalar().ToString();
}
catch(Exception e)
{
//implementar algún control de errores aquí
}
finally
{
cmdSql.Dispose();
cnSql.Close();
cnSql.Dispose();
}

//Return value
return resultValue;
/*#################################*/

El valor devuelto lo he convertido a un string, pero no tiene por qué ser


así.
Tendrás que asignarle una cadena de conexión y una query que ejecutar.

"Cristina" escribió:

> Hola a todos, estoy empezando a programar en .net ; mi duda es la
> siguiente; se como configurar el objeto sqlcommand para ejecutar un
> storeprocedure, mi problema es para ejecutar una funcion definida por
> usuario... alguien podria enviarme un ejemplo?? como obtengo el valor
> retornado por la funcion? es una funcion escalar.
>
>
Respuesta Responder a este mensaje
#3 Jesús López
06/09/2005 - 19:41 | Informe spam
sqlQuery = "SELECT dbo.MiFuncion( @MiParametro )"


"A.Poblacion" escribió en
el mensaje news:u$
Una precaución: para que funcione correctamente, cuando escribas la
"<query>", hay que poner "esquema.funcion". Si omites el esquema, no
funciona. Por ejemplo:

string sqlQuery = "dbo.MiFuncion(12345)";


"Iván Sainz" wrote in message
news:
No sé si te refieres a esto:

/*#################################*/
//Declaration of variables
string resultValue = String.Empty;
string connectionString = "<cadena de conexión>";
string sqlQuery = "<query>";
System.Data.SqlClient.SqlConnection cnSql;

//Initialization of objects
cnSql = new SqlConnection(connectionString);
cmdSql = new SqlCommand(sqlQuery,cnSql);
cmdSql.CommandType = CommandType.Text;

try
{
//Open connection
cnSql.Open();

//Execute query
resultValue = cmdSql.ExecuteScalar().ToString();
}
catch(Exception e)
{
//implementar algún control de errores aquí
}
finally
{
cmdSql.Dispose();
cnSql.Close();
cnSql.Dispose();
}

//Return value
return resultValue;
/*#################################*/

El valor devuelto lo he convertido a un string, pero no tiene por qué ser


así.
Tendrás que asignarle una cadena de conexión y una query que ejecutar.

"Cristina" escribió:

> Hola a todos, estoy empezando a programar en .net ; mi duda es la
> siguiente; se como configurar el objeto sqlcommand para ejecutar un
> storeprocedure, mi problema es para ejecutar una funcion definida por
> usuario... alguien podria enviarme un ejemplo?? como obtengo el valor
> retornado por la funcion? es una funcion escalar.
>
>




Respuesta Responder a este mensaje
#4 Joaquin Pelayo Bedia
12/09/2005 - 11:48 | Informe spam
Hola,

Adjunto te envio la funcion que utilizo para ejecutar una funcion o
procedimiento almacenado, retornandome los valores segun corresponda.

Suerte, un saludo.

JoaquiPelayo

''''''''''''''''''''''''''''''''''''
'Ejecuta un Procedimiento Almacenado
''''''''''''''''''''''''''''''''''''
Public Function ExecuteSP(ByVal Procedimiento As String, ByRef Parametros()
As Inferfaces.Parametro) Implements IData.ExecuteSP
Dim cmdSQL As SqlCommand = cnSQL.CreateCommand()
Try
cmdSQL.CommandType = CommandType.StoredProcedure
cmdSQL.CommandText = Procedimiento

For intParam As Integer = 0 To Parametros.GetUpperBound(0)
Dim parametro As SqlClient.SqlParameter = New
SqlParameter(Parametros(intParam).name, Parametros(intParam).value)

'Prepare SP parameters types
Select Case Parametros(intParam).type.ToUpper
Case "SYSTEM.STRING"
parametro.SqlDbType = SqlDbType.NVarChar
parametro.Size = Parametros(intParam).size
If parametro.Size = 0 Then parametro.Size = 255
Case "SYSTEM.INT16", "SYSTEM.INT32", "SYSTEM.INT64"
parametro.SqlDbType = SqlDbType.Int
parametro.Value = CInt(Parametros(intParam).value)
Case "SYSTEM.DOUBLE", "SYSTEM.FLOAT"
parametro.SqlDbType = SqlDbType.Float
parametro.Value = CDbl(Parametros(intParam).value)
Case "SYSTEM.DATETIME"
parametro.SqlDbType = SqlDbType.DateTime
parametro.Value = CDate(Parametros(intParam).value)
Case "SYSTEM.BOOLEAN"
parametro.SqlDbType = SqlDbType.Bit
If IsNothing(Parametros(intParam).value) Then
parametro.Value = CBool(0)
Else
parametro.Value = CBool(Parametros(intParam).value)
End If
End Select

'Prepare SP parameters direccion
If Not Parametros(intParam).direction Is Nothing Then
Select Case Parametros(intParam).direction.ToUpper
Case "OUTPUT"
parametro.Direction = ParameterDirection.Output
Case "INPUT"
parametro.Direction = ParameterDirection.Input
Case "INPUTOUTPUT", "OUTPUTINPUT"
parametro.Direction = ParameterDirection.InputOutput
Case Else
parametro.Direction = ParameterDirection.Input
End Select
Else
parametro.Direction = ParameterDirection.Input
End If
cmdSQL.Parameters.Add(parametro)
Next

If cnSQL.State = ConnectionState.Closed Then cnSQL.Open()

'Controlar si estamos en una transaccion
If Not trSQL Is Nothing Then
cmdSQL.Transaction = trSQL
End If

cmdSQL.ExecuteScalar()

'Recuperar los valores de los parametros indicados como Output
For intParam As Integer = 0 To cmdSQL.Parameters.Count - 1
If cmdSQL.Parameters(intParam).Direction ParameterDirection.InputOutput _
Or cmdSQL.Parameters(intParam).Direction = ParameterDirection.Output
Then
Parametros(intParam).value = cmdSQL.Parameters(intParam).Value
End If

Next
If trSQL Is Nothing Then cnSQL.Close()
Catch ex As Exception
Return False
End Try
End Function

"Cristina" escribió en el mensaje
news:
Hola a todos, estoy empezando a programar en .net ; mi duda es la
siguiente; se como configurar el objeto sqlcommand para ejecutar un
storeprocedure, mi problema es para ejecutar una funcion definida por
usuario... alguien podria enviarme un ejemplo?? como obtengo el valor
retornado por la funcion? es una funcion escalar.

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