Imports System.IO.File Imports System.Data.SqlClient Imports System.Data.SqlTypes Imports System.ComponentModel Imports System.SystemException Module Datenzugriffe Public Function Generic_Select(ByVal typ As Integer) As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() Select Case typ Case 1 scmCmdToExecute.CommandText = "dbo.SP_Archiv_Eingangsarchivierte_Dokumente" Case 2 scmCmdToExecute.CommandText = "dbo.sp_archiv_bereit_zur_ausgangsarchivierung" Case 3 scmCmdToExecute.CommandText = "dbo.sp_archiv_get_coldindex" Case 4 scmCmdToExecute.CommandText = "dbo.sp_archiv_get_doctype" Case 5 scmCmdToExecute.CommandText = "dbo.sp_archiv_MehrfachScan" Case 6 scmCmdToExecute.CommandText = "dbo.sp_archiv_MehrfachScan_Done" Case 7 scmCmdToExecute.CommandText = "dbo.sp_archiv_get_coldupdate" Case 8 scmCmdToExecute.CommandText = "dbo.sp_archiv_coldupdate_done" Case 9 scmCmdToExecute.CommandText = "dbo.sp_archiv_dokumente_ersetzen" Case 10 scmCmdToExecute.CommandText = "dbo.sp_update_archivierung" Case 11 scmCmdToExecute.CommandText = "dbo.sp_archiv_MehrfachScan" Case 12 scmCmdToExecute.CommandText = "dbo.sp_archiv_MehrfachScan_Done" Case 13 scmCmdToExecute.CommandText = "dbo.sp_archiv_Get_Prozess" Case 14 scmCmdToExecute.CommandText = "dbo.sp_archiv_Get_Archivdatum" Case 15 scmCmdToExecute.CommandText = "dbo.sp_archiv_bereit_zur_ausgangsarchivierung" Case Else End Select 'BUD - 2006.10.31 - Timeout verlängern auf 100 Sekunden Select Case typ Case 1, 2, 5, 7, 11, 15 scmCmdToExecute.CommandTimeout = 100 End Select scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) Select Case typ Case 3 scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.DokumentID)) scmCmdToExecute.Parameters.Add(New SqlParameter("@indextyp", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.Indextyp)) Case 4 scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.DokumentID)) Case 5 scmCmdToExecute.Parameters.Add(New SqlParameter("@typ", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1)) scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.DokumentID)) Case 6 scmCmdToExecute.Parameters.Add(New SqlParameter("@typ", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1)) scmCmdToExecute.Parameters.Add(New SqlParameter("@nreintrag", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.KeyNr)) Case 8 scmCmdToExecute.Parameters.Add(New SqlParameter("@nreintrag", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.KeyNr)) Case 9 scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.DokumentID)) Case 11 scmCmdToExecute.Parameters.Add(New SqlParameter("@typ", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2)) scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, "")) Case 12 scmCmdToExecute.Parameters.Add(New SqlParameter("@typ", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2)) scmCmdToExecute.Parameters.Add(New SqlParameter("@nreintrag", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.KeyNr)) Case 13 scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.DokumentID)) Case 14 scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.DokumentID)) Case 15 scmCmdToExecute.Parameters.Add(New SqlParameter("@Typ", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1)) Case Else End Select If typ <> 10 Then scmCmdToExecute.Connection = conn_edoka.scoDBConnection Else scmCmdToExecute.Connection = conn_ams.scoDBConnection End If Try sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception ' // some error occured. Bubble it to caller and encapsulate Exception object Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText + "::Typ:" + typ.ToString + "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Function Public Function Update_DokumentColdIndexwert(ByVal dokumentid As String, ByVal Indextyp As Integer, ByVal indexfeld As Integer, ByVal wert As String) As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_Archiv_Update_DokumentColdIndexwert" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() conn_edoka.OpenConnection() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.DokumentID)) scmCmdToExecute.Parameters.Add(New SqlParameter("@indextyp", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Indextyp)) scmCmdToExecute.Parameters.Add(New SqlParameter("@indexfeld", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, indexfeld)) scmCmdToExecute.Parameters.Add(New SqlParameter("@wert", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, wert)) scmCmdToExecute.Connection = conn_edoka.scoDBConnection Try sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception ' // some error occured. Bubble it to caller and encapsulate Exception object Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() conn_edoka.CloseConnection(True) End Try End Function Public Function Insert_ColdUpdate(ByVal dokumentid As String, ByVal colddokumentid As String, ByVal indextyp As Integer, ByVal feldnr As Integer, ByVal wert As String) As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_Archiv_insert_coldupdate" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() conn_edoka.OpenConnection() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@colddokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, colddokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@indextyp", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, indextyp)) scmCmdToExecute.Parameters.Add(New SqlParameter("@feldnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, feldnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@neuerwert", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, wert)) scmCmdToExecute.Connection = conn_edoka.scoDBConnection Try sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Threading.Thread.Sleep(1000) ' MsgBox(ex.Message) 'Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Return Nothing Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() conn_edoka.CloseConnection(True) End Try End Function 'Public Function Sendmail(ByVal email As String, ByVal betreff As String, ByVal meldung As String) As Boolean ' Dim scmCmdToExecute As SqlCommand = New SqlCommand() ' scmCmdToExecute.CommandText = "dbo.SP_SendMail" ' scmCmdToExecute.CommandType = CommandType.StoredProcedure ' Dim dtToReturn As DataTable = New DataTable() ' scmCmdToExecute.Parameters.Add(New SqlParameter("@email", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, email)) ' scmCmdToExecute.Parameters.Add(New SqlParameter("@betreff", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, betreff)) ' scmCmdToExecute.Parameters.Add(New SqlParameter("@meldung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, meldung)) ' scmCmdToExecute.Connection = conn_edoka.scoDBConnection ' Try ' conn_edoka.OpenConnection() ' Catch ' End Try ' Sendmail = True ' Try ' scmCmdToExecute.ExecuteNonQuery() ' Catch ex As Exception ' Sendmail = False ' Finally ' scmCmdToExecute.Dispose() ' conn_edoka.CloseConnection(True) ' End Try 'End Function Public Function AMS_New_DBKey(ByVal Keytype As Integer) As Integer Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "SP_New_DBKey" scmCmdToExecute.CommandType = CommandType.StoredProcedure conn_ams.OpenConnection() scmCmdToExecute.Parameters.Add(New SqlParameter("@xKeyType", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, keytype)) scmCmdToExecute.Parameters.Add(New SqlParameter("@NewKey", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) scmCmdToExecute.Connection = conn_ams.scoDBConnection Try scmCmdToExecute.ExecuteNonQuery() AMS_New_DBKey = scmCmdToExecute.Parameters("@NewKey").Value Catch ex As Exception ' MsgBox(ex.Message) Threading.Thread.Sleep(1000) 'Throw New Exception("Neuer Schlüssel für AMS_Cold_Update (53) konnte nicht gelöst werden") Finally scmCmdToExecute.Dispose() conn_ams.CloseConnection(True) End Try End Function Public Function AMS_Check_Edoka_Dokument(ByVal dokumentid As String) As Integer Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_Archiv_ams_check_edoka_dokument" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Try conn_edoka.OpenConnection() Catch End Try Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@return", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0)) scmCmdToExecute.Connection = conn_edoka.scoDBConnection Try sdaAdapter.Fill(dtToReturn) AMS_Check_Edoka_Dokument = scmCmdToExecute.Parameters("@return").Value Catch ex As Exception ' MsgBox(ex.Message) Threading.Thread.Sleep(1000) 'Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() conn_edoka.CloseConnection(True) End Try End Function Public Function bereits_eingangsarchiviert(ByVal dokumentid As String) As Boolean Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_Archiv_check_eingangsarchiviert" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Try conn_edoka.OpenConnection() Catch End Try Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@eingangsarchiviert", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) scmCmdToExecute.Connection = conn_edoka.scoDBConnection Try sdaAdapter.Fill(dtToReturn) If scmCmdToExecute.Parameters("@eingangsarchiviert").Value > 0 Then bereits_eingangsarchiviert = True Else bereits_eingangsarchiviert = False Catch ex As Exception ' MsgBox(ex.Message) Threading.Thread.Sleep(1000) 'Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() conn_edoka.CloseConnection(True) End Try End Function Public Function GetColdData(ByVal datum As String) As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.sp_archiv_get_coldupdate_bydatum" scmCmdToExecute.CommandType = CommandType.StoredProcedure Dim dtToReturn As DataTable = New DataTable() Try conn_edoka.OpenConnection() Catch End Try Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.Parameters.Add(New SqlParameter("@datum", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, datum)) scmCmdToExecute.Connection = conn_edoka.scoDBConnection Try sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception ' MsgBox(ex.Message) Threading.Thread.Sleep(1000) ' Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Return Nothing Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() conn_edoka.CloseConnection(True) End Try End Function End Module