Hi,

I'm currently trying to execute a stored procedure through the
nhibernate session. I've read in the best practises chapter that I
shouldn't manage the additional database sessions by myself, but shall
use the nhibernate session. So I did and I've created the code below.
Sad but true: For each call of my stored procedure a new database
session is opened, but won't be closed again although I do explicitly
try to close and dispose them.

Any hints for me?
Thanks in advance.

NHibernate Version 2.0.1

Fred F.

-----------------------------------------------------------------------------------
[code]

        Dim toReturn As New MyKeyType

        Try

            Using prov As IConnectionProvider =
                ConnectionProviderFactory.NewConnectionProvider
(_configuration.Properties)

                Dim conn As IDbConnection = prov.GetConnection()
                Dim cmd As IDbCommand = conn.CreateCommand()

                cmd.Transaction = conn.BeginTransaction()

                cmd.CommandText = "mypackage.mystoredproc"
                cmd.CommandType = CommandType.StoredProcedure

        '-- param 1
                Dim param1 As OracleParameter = New OracleParameter
("param1", OracleType.VarChar)
                param1.Value = "testparam"
                cmd.Parameters.Add(param1)

        '-- param 2 (out parameter)
                Dim outParam As OracleParameter = New OracleParameter
("returnparam", OracleType.Cursor)
                outParam.Direction = ParameterDirection.Output
                cmd.Parameters.Add(outParam)

                cmd.ExecuteNonQuery()
                cmd.Transaction.Commit()

                Dim reader As OracleDataReader = CType
(cmd.ExecuteReader(), OracleDataReader)
                If Not reader.HasRows Then
                    Throw New Exception("Error")
                End If

                reader.Read()

        '-- parse some data from the reader to the return value
                toReturn.Key1 = Parse(reader, 0)
                toReturn.Key2 = Parse(reader, 1)

                cmd.Dispose()
                conn.Close()
                prov.CloseConnection(conn)

            End Using

        Catch ex As Exception
            Throw New Exception("Error", strTypeName), ex)
        End Try

[/code]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to