Imports System.Data.Common
Imports System.Data.SqlClient

Public Interface IDatabase
    ''' <summary>
    ''' Returns true if the initial connection to the configured database was successful.
    ''' </summary>
    Property DBInitialized As Boolean
    Property CurrentConnectionString As String

    Function GetDatatable(SqlCommand As String, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As DataTable
    Function GetDatatable(SqlCommand As SqlCommand, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As DataTable

    Function GetDatatableWithoutTransaction(SqlCommand As String, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As DataTable
    Function GetDatatableWithoutTransaction(SqlCommand As SqlCommand, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As DataTable

    Function ExecuteNonQuery(SQLCommand As String, Timeout As Integer) As Boolean
    Function ExecuteNonQuery(SQLCommand As String) As Boolean

    Function GetScalarValue(SQLQuery As String, Timeout As Integer) As Object
    Function GetScalarValue(SQLQuery As String) As Object
End Interface
