136 lines
5.6 KiB
VB.net
136 lines
5.6 KiB
VB.net
Imports Oracle.ManagedDataAccess.Client
|
|
Public Class Oracle
|
|
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
|
|
Public DBInitialized As Boolean = False
|
|
Public CurrentOracleConnectionString As String = ""
|
|
Public Sub New(CONSTRING As String)
|
|
Init(CONSTRING)
|
|
End Sub
|
|
Public Function Init(CONSTRING As String)
|
|
Try
|
|
Dim oSQLconnect As New OracleConnection
|
|
oSQLconnect.ConnectionString = CONSTRING
|
|
oSQLconnect.Open()
|
|
oSQLconnect.Close()
|
|
CurrentOracleConnectionString = CONSTRING
|
|
DBInitialized = True
|
|
Return True
|
|
Catch ex As Exception
|
|
DBInitialized = False
|
|
Logger.Error(ex)
|
|
'clsLogger.Add("Error in DatabaseInit: " & ex.Message, True)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
''' <summary>
|
|
''' Returns a datatable for a sql-statement
|
|
''' </summary>
|
|
''' <param name="sqlcommand">sqlcommand for datatable (select XYZ from TableORView)</param>
|
|
''' <param name="commandtimeout">Optional Timeout</param>
|
|
''' <returns>Returns a datatable</returns>
|
|
''' <remarks></remarks>
|
|
Public Function GetDatatable(sqlcommand As String, Optional commandtimeout As Integer = 120) As DataTable
|
|
Try
|
|
Dim oSQLconnect As New OracleConnection
|
|
Dim oSQLCOmmand As OracleCommand
|
|
oSQLconnect.ConnectionString = CurrentOracleConnectionString
|
|
oSQLconnect.Open()
|
|
oSQLCOmmand = oSQLconnect.CreateCommand()
|
|
oSQLCOmmand.CommandText = sqlcommand
|
|
oSQLCOmmand.CommandTimeout = commandtimeout
|
|
Dim adapter1 As OracleDataAdapter = New OracleDataAdapter(oSQLCOmmand)
|
|
Dim dt As DataTable = New DataTable()
|
|
adapter1.Fill(dt)
|
|
oSQLconnect.Close()
|
|
Return dt
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Debug("sqlcommand: " & sqlcommand)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
''' <summary>
|
|
''' Executes the passed sql-statement
|
|
''' </summary>
|
|
''' <param name="executeStatement">the sql statement</param>
|
|
''' <param name="commandtimeout">Optional Timeout</param>
|
|
''' <returns>Returns true if properly executed, else false</returns>
|
|
''' <remarks></remarks>
|
|
Public Function NewExecutenonQuery(executeStatement As String, Optional commandtimeout As Integer = 120) As Boolean
|
|
Try
|
|
Dim oSQLconnect As New OracleConnection
|
|
Dim oSQLCOmmand As OracleCommand
|
|
oSQLconnect.ConnectionString = CurrentOracleConnectionString
|
|
oSQLconnect.Open()
|
|
oSQLCOmmand = oSQLconnect.CreateCommand()
|
|
oSQLCOmmand.CommandText = executeStatement
|
|
oSQLCOmmand.CommandTimeout = commandtimeout
|
|
oSQLCOmmand.ExecuteNonQuery()
|
|
oSQLCOmmand.Dispose()
|
|
oSQLconnect.Close()
|
|
Return True
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Debug("executeStatement: " & executeStatement)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
''' <summary>
|
|
''' Executes the passed sql-statement in asyncmode
|
|
''' </summary>
|
|
''' <param name="executeStatement">the sql statement</param>
|
|
''' <param name="commandtimeout">Optional Timeout</param>
|
|
''' <remarks></remarks>
|
|
Public Sub NewExecuteNonQueryAsync(executeStatement As String, Optional commandtimeout As Integer = 120)
|
|
Dim oSQLconnect As New OracleConnection
|
|
Dim oSQLCOmmand As OracleCommand
|
|
Dim callback As New AsyncCallback(AddressOf Execute_non_Query_Async_Callback)
|
|
Try
|
|
oSQLconnect.ConnectionString = CurrentOracleConnectionString
|
|
oSQLconnect.Open()
|
|
oSQLCOmmand = oSQLconnect.CreateCommand()
|
|
oSQLCOmmand.CommandText = executeStatement
|
|
oSQLCOmmand.CommandTimeout = commandtimeout
|
|
oSQLCOmmand.ExecuteNonQuery()
|
|
oSQLCOmmand.Dispose()
|
|
oSQLconnect.Close()
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Debug("executeStatement: " & executeStatement)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub Execute_non_Query_Async_Callback(ByVal result As IAsyncResult)
|
|
Dim command As OracleCommand = CType(result.AsyncState, OracleCommand)
|
|
Dim res = command.ExecuteNonQuery
|
|
Logger.Info(String.Format("Finished executing Async database operation: {0}", command.CommandText))
|
|
End Sub
|
|
''' <summary>
|
|
''' Executes the passed sql-statement as Scalar
|
|
''' </summary>
|
|
''' <param name="executeStatement">the sql statement</param>
|
|
''' <param name="commandtimeout">Optional Timeout</param>
|
|
''' <returns>Returns true if properly executed, else false</returns>
|
|
''' <remarks></remarks>
|
|
Public Function NewExecuteScalar(executeStatement As String, Optional commandtimeout As Integer = 120)
|
|
Dim result
|
|
Try
|
|
Dim oSQLconnect As New OracleConnection
|
|
Dim oSQLCOmmand As OracleCommand
|
|
oSQLconnect.ConnectionString = CurrentOracleConnectionString
|
|
oSQLconnect.Open()
|
|
oSQLCOmmand = oSQLconnect.CreateCommand()
|
|
oSQLCOmmand.CommandText = executeStatement
|
|
oSQLCOmmand.CommandTimeout = commandtimeout
|
|
result = oSQLCOmmand.ExecuteScalar()
|
|
oSQLCOmmand.Dispose()
|
|
oSQLconnect.Close()
|
|
Return result
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Debug("executeStatement: " & executeStatement)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
End Class
|