' ///////////////////////////////////////////////////////////////////////////
' // Description: Data Access class for the table 'key_tabelle'
' // Generated by LLBLGen v1.21.2003.712 Final on: Freitag, 4. Januar 2013, 17:02:51
' // Because the Base Class already implements IDispose, this class doesn't.
' ///////////////////////////////////////////////////////////////////////////
Imports System
Imports System.Data
Imports System.Data.SqlTypes
Imports System.Data.SqlClient

Namespace DB
	''' <summary>
	''' Purpose: Data Access class for the table 'key_tabelle'.
	''' </summary>
	Public Class clsKey_tabelle
		Inherits clsDBInteractionBase

#Region " Class Member Declarations "

		Private 		m_bAktiv As SqlBoolean
		Private 		m_daErstellt_am, m_daMutiert_am As SqlDateTime
		Private 		m_iMutierer, m_iKeynr, m_iKey_wert, m_iMandantnr As SqlInt32
		Private 		m_sBeschreibung As SqlString

#End Region


		''' <summary>
		''' Purpose: Class constructor.
		''' </summary>
		Public Sub New()
			' // Nothing for now.
		End Sub


		''' <summary>
		''' Purpose: Insert method. This method will insert one new row into the database.
		''' </summary>
		''' <returns>True if succeeded, otherwise an Exception is thrown. </returns>
		''' <remarks>
		''' Properties needed for this method: 
		''' <UL>
		'''		 <LI>sBeschreibung</LI>
		'''		 <LI>iKey_wert</LI>
		'''		 <LI>iMandantnr. May be SqlInt32.Null</LI>
		'''		 <LI>bAktiv. May be SqlBoolean.Null</LI>
		'''		 <LI>daErstellt_am. May be SqlDateTime.Null</LI>
		'''		 <LI>daMutiert_am. May be SqlDateTime.Null</LI>
		'''		 <LI>iMutierer. May be SqlInt32.Null</LI>
		''' </UL>
		''' Properties set after a succesful call of this method: 
		''' <UL>
		'''		 <LI>iKeynr</LI>
		'''		 <LI>iErrorCode</LI>
		'''</UL>
		''' </remarks>
		Overrides Public Function Insert() As Boolean
			Dim scmCmdToExecute As SqlCommand	= New SqlCommand()
			scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_Insert]"
			scmCmdToExecute.CommandType = CommandType.StoredProcedure

			' // Use base class' connection object
			scmCmdToExecute.Connection = m_scoMainConnection

			Try
				scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@ikey_wert", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKey_wert))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@daerstellt_am", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daErstellt_am))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@damutiert_am", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daMutiert_am))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@imutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMutierer))
				scmCmdToExecute.Parameters.Add(new SqlParameter("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iKeynr))
				scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode))

				If m_bMainConnectionIsCreatedLocal Then
					' // Open connection.
					m_scoMainConnection.Open()
				Else
					If m_cpMainConnectionProvider.bIsTransactionPending Then
						scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction
					End If
				End If

				' // Execute query.
				m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery()
				m_iKeynr = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@ikeynr").Value, Integer))
				m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32))

				If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then
					' // Throw error.
					Throw New Exception("Stored Procedure 'pr_key_tabelle_Insert' reported the ErrorCode: " & m_iErrorCode.ToString())
				End If

				Return True
			Catch ex As Exception
				' // some error occured. Bubble it to caller and encapsulate Exception object
				Throw New Exception("clsKey_tabelle::Insert::Error occured.", ex)
			Finally
				If m_bMainConnectionIsCreatedLocal Then
					' // Close connection.
					m_scoMainConnection.Close()
				End If
				scmCmdToExecute.Dispose()
			End Try
		End Function


		''' <summary>
		''' Purpose: Update method. This method will Update one existing row in the database.
		''' </summary>
		''' <returns>True if succeeded, otherwise an Exception is thrown. </returns>
		''' <remarks>
		''' Properties needed for this method: 
		''' <UL>
		'''		 <LI>iKeynr</LI>
		'''		 <LI>sBeschreibung</LI>
		'''		 <LI>iKey_wert</LI>
		'''		 <LI>iMandantnr. May be SqlInt32.Null</LI>
		'''		 <LI>bAktiv. May be SqlBoolean.Null</LI>
		'''		 <LI>daErstellt_am. May be SqlDateTime.Null</LI>
		'''		 <LI>daMutiert_am. May be SqlDateTime.Null</LI>
		'''		 <LI>iMutierer. May be SqlInt32.Null</LI>
		''' </UL>
		''' Properties set after a succesful call of this method: 
		''' <UL>
		'''		 <LI>iErrorCode</LI>
		'''</UL>
		''' </remarks>
		Overrides Public Function Update() As Boolean
			Dim scmCmdToExecute As SqlCommand	= New SqlCommand()
			scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_Update]"
			scmCmdToExecute.CommandType = CommandType.StoredProcedure

			' // Use base class' connection object
			scmCmdToExecute.Connection = m_scoMainConnection

			Try
				scmCmdToExecute.Parameters.Add(New SqlParameter("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKeynr))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@ikey_wert", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKey_wert))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@daerstellt_am", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daErstellt_am))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@damutiert_am", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daMutiert_am))
				scmCmdToExecute.Parameters.Add(New SqlParameter("@imutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMutierer))
				scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode))

				If m_bMainConnectionIsCreatedLocal Then
					' // Open connection.
					m_scoMainConnection.Open()
				Else
					If m_cpMainConnectionProvider.bIsTransactionPending Then
						scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction
					End If
				End If

				' // Execute query.
				m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery()
				m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32))

				If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then
					' // Throw error.
					Throw New Exception("Stored Procedure 'pr_key_tabelle_Update' reported the ErrorCode: " & m_iErrorCode.ToString())
				End If

				Return True
			Catch ex As Exception
				' // some error occured. Bubble it to caller and encapsulate Exception object
				Throw New Exception("clsKey_tabelle::Update::Error occured.", ex)
			Finally
				If m_bMainConnectionIsCreatedLocal Then
					' // Close connection.
					m_scoMainConnection.Close()
				End If
				scmCmdToExecute.Dispose()
			End Try
		End Function


		''' <summary>
		''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key.
		''' </summary>
		''' <returns>True if succeeded, otherwise an Exception is thrown. </returns>
		''' <remarks>
		''' Properties needed for this method: 
		''' <UL>
		'''		 <LI>iKeynr</LI>
		''' </UL>
		''' Properties set after a succesful call of this method: 
		''' <UL>
		'''		 <LI>iErrorCode</LI>
		'''</UL>
		''' </remarks>
		Overrides Public Function Delete() As Boolean
			Dim scmCmdToExecute As SqlCommand	= New SqlCommand()
			scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_Delete]"
			scmCmdToExecute.CommandType = CommandType.StoredProcedure

			' // Use base class' connection object
			scmCmdToExecute.Connection = m_scoMainConnection

			Try
				scmCmdToExecute.Parameters.Add(New SqlParameter("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKeynr))
				scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode))

				If m_bMainConnectionIsCreatedLocal Then
					' // Open connection.
					m_scoMainConnection.Open()
				Else
					If m_cpMainConnectionProvider.bIsTransactionPending Then
						scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction
					End If
				End If

				' // Execute query.
				m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery()
				m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32))

				If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then
					' // Throw error.
					Throw New Exception("Stored Procedure 'pr_key_tabelle_Delete' reported the ErrorCode: " & m_iErrorCode.ToString())
				End If

				Return True
			Catch ex As Exception
				' // some error occured. Bubble it to caller and encapsulate Exception object
				Throw New Exception("clsKey_tabelle::Delete::Error occured.", ex)
			Finally
				If m_bMainConnectionIsCreatedLocal Then
					' // Close connection.
					m_scoMainConnection.Close()
				End If
				scmCmdToExecute.Dispose()
			End Try
		End Function


		''' <summary>
		''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key.
		''' </summary>
		''' <returns>DataTable object if succeeded, otherwise an Exception is thrown. </returns>
		''' <remarks>
		''' Properties needed for this method: 
		''' <UL>
		'''		 <LI>iKeynr</LI>
		''' </UL>
		''' Properties set after a succesful call of this method: 
		''' <UL>
		'''		 <LI>iErrorCode</LI>
		'''		 <LI>iKeynr</LI>
		'''		 <LI>sBeschreibung</LI>
		'''		 <LI>iKey_wert</LI>
		'''		 <LI>iMandantnr</LI>
		'''		 <LI>bAktiv</LI>
		'''		 <LI>daErstellt_am</LI>
		'''		 <LI>daMutiert_am</LI>
		'''		 <LI>iMutierer</LI>
		'''</UL>
		''' Will fill all properties corresponding with a field in the table with the value of the row selected.
		''' </remarks>
		Overrides Public Function SelectOne() As DataTable
			Dim scmCmdToExecute As SqlCommand = New SqlCommand()
			scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_SelectOne]"
			scmCmdToExecute.CommandType = CommandType.StoredProcedure
			Dim dtToReturn As DataTable = new DataTable("key_tabelle")
			Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute)

			' // Use base class' connection object
			scmCmdToExecute.Connection = m_scoMainConnection

			Try
				scmCmdToExecute.Parameters.Add(new SqlParameter("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKeynr))
				scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode))

				If m_bMainConnectionIsCreatedLocal Then
					' // Open connection.
					m_scoMainConnection.Open()
				Else
					If m_cpMainConnectionProvider.bIsTransactionPending Then
						scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction
					End If
				End If

				' // Execute query.
				sdaAdapter.Fill(dtToReturn)
				m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32))

				If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then
					' // Throw error.
					Throw New Exception("Stored Procedure 'pr_key_tabelle_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString())
				End If

				If dtToReturn.Rows.Count > 0 Then
					m_iKeynr = New SqlInt32(CType(dtToReturn.Rows(0)("keynr"), Integer))
					m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("beschreibung"), String))
					m_iKey_wert = New SqlInt32(CType(dtToReturn.Rows(0)("key_wert"), Integer))
					If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then
						m_iMandantnr = SqlInt32.Null
					Else
						m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer))
					End If
					If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then
						m_bAktiv = SqlBoolean.Null
					Else
						m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean))
					End If
					If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then
						m_daErstellt_am = SqlDateTime.Null
					Else
						m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date))
					End If
					If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then
						m_daMutiert_am = SqlDateTime.Null
					Else
						m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date))
					End If
					If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then
						m_iMutierer = SqlInt32.Null
					Else
						m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer))
					End If
				End If
				Return dtToReturn
			Catch ex As Exception
				' // some error occured. Bubble it to caller and encapsulate Exception object
				Throw New Exception("clsKey_tabelle::SelectOne::Error occured.", ex)
			Finally
				If m_bMainConnectionIsCreatedLocal Then
					' // Close connection.
					m_scoMainConnection.Close()
				End If
				scmCmdToExecute.Dispose()
				sdaAdapter.Dispose()
			End Try
		End Function


		''' <summary>
		''' Purpose: SelectAll method. This method will Select all rows from the table.
		''' </summary>
		''' <returns>DataTable object if succeeded, otherwise an Exception is thrown. </returns>
		''' <remarks>
		''' Properties set after a succesful call of this method: 
		''' <UL>
		'''		 <LI>iErrorCode</LI>
		'''</UL>
		''' </remarks>
		Overrides Public Function SelectAll() As DataTable
			Dim scmCmdToExecute As SqlCommand = New SqlCommand()
			scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_SelectAll]"
			scmCmdToExecute.CommandType = CommandType.StoredProcedure
			Dim dtToReturn As DataTable = new DataTable("key_tabelle")
			Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute)

			' // Use base class' connection object
			scmCmdToExecute.Connection = m_scoMainConnection

			Try
				scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode))

				If m_bMainConnectionIsCreatedLocal Then
					' // Open connection.
					m_scoMainConnection.Open()
				Else
					If m_cpMainConnectionProvider.bIsTransactionPending Then
						scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction
					End If
				End If

				' // Execute query.
				sdaAdapter.Fill(dtToReturn)
				m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32))

				If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then
					' // Throw error.
					Throw New Exception("Stored Procedure 'pr_key_tabelle_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString())
				End If

				Return dtToReturn
			Catch ex As Exception
				' // some error occured. Bubble it to caller and encapsulate Exception object
				Throw New Exception("clsKey_tabelle::SelectAll::Error occured.", ex)
			Finally
				If m_bMainConnectionIsCreatedLocal Then
					' // Close connection.
					m_scoMainConnection.Close()
				End If
				scmCmdToExecute.Dispose()
				sdaAdapter.Dispose()
			End Try
		End Function


#Region " Class Property Declarations "

		Public Property [iKeynr]() As SqlInt32
			Get
				Return m_iKeynr
			End Get
			Set(ByVal Value As SqlInt32)
				Dim iKeynrTmp As SqlInt32 = Value
				If iKeynrTmp.IsNull Then
					Throw New ArgumentOutOfRangeException("iKeynr", "iKeynr can't be NULL")
				End If
				m_iKeynr = Value
			End Set
		End Property


		Public Property [sBeschreibung]() As SqlString
			Get
				Return m_sBeschreibung
			End Get
			Set(ByVal Value As SqlString)
				Dim sBeschreibungTmp As SqlString = Value
				If sBeschreibungTmp.IsNull Then
					Throw New ArgumentOutOfRangeException("sBeschreibung", "sBeschreibung can't be NULL")
				End If
				m_sBeschreibung = Value
			End Set
		End Property


		Public Property [iKey_wert]() As SqlInt32
			Get
				Return m_iKey_wert
			End Get
			Set(ByVal Value As SqlInt32)
				Dim iKey_wertTmp As SqlInt32 = Value
				If iKey_wertTmp.IsNull Then
					Throw New ArgumentOutOfRangeException("iKey_wert", "iKey_wert can't be NULL")
				End If
				m_iKey_wert = Value
			End Set
		End Property


		Public Property [iMandantnr]() As SqlInt32
			Get
				Return m_iMandantnr
			End Get
			Set(ByVal Value As SqlInt32)
				m_iMandantnr = Value
			End Set
		End Property


		Public Property [bAktiv]() As SqlBoolean
			Get
				Return m_bAktiv
			End Get
			Set(ByVal Value As SqlBoolean)
				m_bAktiv = Value
			End Set
		End Property


		Public Property [daErstellt_am]() As SqlDateTime
			Get
				Return m_daErstellt_am
			End Get
			Set(ByVal Value As SqlDateTime)
				m_daErstellt_am = Value
			End Set
		End Property


		Public Property [daMutiert_am]() As SqlDateTime
			Get
				Return m_daMutiert_am
			End Get
			Set(ByVal Value As SqlDateTime)
				m_daMutiert_am = Value
			End Set
		End Property


		Public Property [iMutierer]() As SqlInt32
			Get
				Return m_iMutierer
			End Get
			Set(ByVal Value As SqlInt32)
				m_iMutierer = Value
			End Set
		End Property

#End Region

	End Class
End Namespace
