You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

356 lines
18 KiB

Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlDbType
Imports System.IO
Public Class clsdb
Dim mdebug As Boolean = False
Property Debug As Boolean
Get
Return mdebug
End Get
Set(value As Boolean)
mdebug = value
End Set
End Property
Dim mlogfile As String = ""
Property Logfile As String
Get
Return mlogfile
End Get
Set(value As String)
mlogfile = value
End Set
End Property
Dim m_connectionstring As String
Property Connectionstring As String
Get
Return m_connectionstring
End Get
Set(value As String)
m_connectionstring = value
End Set
End Property
Dim m_connectionstring_DokTypMapping As String
Property Connectionstring_DokTypMapping As String
Get
Return m_connectionstring_DokTypMapping
End Get
Set(value As String)
m_connectionstring_DokTypMapping = value
End Set
End Property
Public Sub PDebug(ByVal istring As String)
Dim s As String
s = Now.ToString("u")
istring = s + " - " + istring
If Debug = True Then
Console.WriteLine(istring)
If Logfile <> "" Then
Try
FileOpen(1, Logfile, OpenMode.Append)
WriteLine(1, istring)
FileClose(1)
Catch
End Try
End If
End If
End Sub
Public Function Get_Pendente_BCK() As DataTable
Dim connection As New SqlConnection(Connectionstring)
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim dtToReturn As DataTable = New DataTable()
Dim ds As New DataSet
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_edoka_onbase"
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, 1))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = connection
Try
sdaAdapter.Fill(ds)
Return ds.Tables(0)
Catch ex As Exception
PDebug(ex.Message)
End Try
End Function
Public Function Get_DokType(ByVal dokumentid As String) As String
Dim connection As New SqlConnection(Connectionstring)
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim dtToReturn As DataTable = New DataTable()
Dim ds As New DataSet
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_edoka_onbase"
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, 8))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dokumentid))
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = connection
Try
sdaAdapter.Fill(ds)
If ds.Tables(0).Rows.Count > 0 Then
Return ds.Tables(0).Rows(0).Item(0)
Else
Return ""
End If
Catch ex As Exception
'pdebug("Fehler:Get_OnBase_Datastream: "+ex.Message)
End Try
End Function
Public Function Get_DokTyp_Mapping(ByVal Dokumentid As String) As DataSet
Dim doktyp As String
doktyp = Get_DokType(Dokumentid)
If doktyp = "" Then
PDebug("Dokumenttyp zu Dokumentid: " + Dokumentid + " nicht vorhanden")
Exit Function
End If
Dim connection As New SqlConnection(Me.Connectionstring_DokTypMapping)
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim dtToReturn As DataTable = New DataTable()
Dim ds As New DataSet
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "select * from havi_lookup_Dokumenttyp_Mapping where edoka_dokumenttypnr=" + doktyp
scmCmdToExecute.CommandType = CommandType.Text
scmCmdToExecute.Connection = connection
Try
sdaAdapter.Fill(ds)
Return ds
Catch ex As Exception
PDebug("Fehler:Get_OnBase_Datastream: " + ex.Message)
End Try
End Function
Public Function Get_OnBase_Datastream(ByVal dokumentid As String) As DataSet
'Dim dsdoktyp As New DataSet
'dsdoktyp = Get_DokTyp_Mapping(dokumentid)
'Try
' If dsdoktyp.Tables(0).Rows.Count < 1 Then
' PDebug("EDOKA-OnBase-Mapping für " + dokumentid + " nicht möglich")
' Exit Function
' End If
'Catch
' PDebug("EDOKA-OnBase-Mapping für " + dokumentid + " nicht möglcih")
' Exit Function
'End Try
Dim connection As New SqlConnection(Connectionstring)
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim dtToReturn As DataTable = New DataTable()
Dim ds As New DataSet
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_edoka_onbase"
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, 2))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value1", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value2", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value3", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value4", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value5", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value6", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, ""))
'scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dokumentid))
'scmCmdToExecute.Parameters.Add(New SqlParameter("@value1", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dsdoktyp.Tables(0).Rows(0).Item(0)))
'scmCmdToExecute.Parameters.Add(New SqlParameter("@value2", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dsdoktyp.Tables(0).Rows(0).Item(1)))
'scmCmdToExecute.Parameters.Add(New SqlParameter("@value3", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dsdoktyp.Tables(0).Rows(0).Item(2)))
'scmCmdToExecute.Parameters.Add(New SqlParameter("@value4", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dsdoktyp.Tables(0).Rows(0).Item(3)))
'scmCmdToExecute.Parameters.Add(New SqlParameter("@value5", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dsdoktyp.Tables(0).Rows(0).Item(4)))
'scmCmdToExecute.Parameters.Add(New SqlParameter("@value6", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dsdoktyp.Tables(0).Rows(0).Item(5)))
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = connection
Try
sdaAdapter.Fill(ds)
Return ds
Catch ex As Exception
PDebug("Fehler:Get_OnBase_Datastream: " + ex.Message)
End Try
End Function
Public Function Get_Status(ByVal Dokumentid As String)
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Dokumentstatus_statushandling_Select"
Try
scmCmdToExecute.CommandType = CommandType.StoredProcedure
Dim dtToReturn As DataTable = New DataTable()
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
Dim connection As New SqlConnection(Connectionstring)
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Dokumentid))
scmCmdToExecute.Connection = connection
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()
End Try
End Function
Public Sub insert_history_status(ByVal statusnr As Integer, ByVal dokumentid As String)
Try
Dim connection As New SqlConnection(Connectionstring)
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim dtToReturn As DataTable = New DataTable()
Dim ds As New DataSet
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_edoka_onbase"
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, 3))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value1", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, statusnr.ToString))
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = connection
Try
sdaAdapter.Fill(ds)
Catch ex As Exception
' MsgBox(ex.Message)
End Try
Catch ex As Exception
Threading.Thread.Sleep(1000)
'MsgBox(ex.Message)
End Try
End Sub
Public Sub update_dokument(ByVal statusnr As Integer, ByVal dokumentid As String)
Try
Dim connection As New SqlConnection(Connectionstring)
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim dtToReturn As DataTable = New DataTable()
Dim ds As New DataSet
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_edoka_onbase"
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, 4))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value1", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, statusnr.ToString))
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = connection
Try
sdaAdapter.Fill(ds)
Catch ex As Exception
' MsgBox(ex.Message)
End Try
Catch ex As Exception
Threading.Thread.Sleep(1000)
'MsgBox(ex.Message)
End Try
End Sub
Public Function Get_Archivdokumente() As DataTable
Try
Dim connection As New SqlConnection(Connectionstring)
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim dtToReturn As DataTable = New DataTable()
Dim ds As New DataSet
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_edoka_onbase"
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, 5))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = connection
Try
sdaAdapter.Fill(ds)
Return ds.Tables(0)
Catch ex As Exception
' MsgBox(ex.Message)
End Try
Catch ex As Exception
Threading.Thread.Sleep(1000)
'MsgBox(ex.Message)
End Try
End Function
Public Function Get_Dokument(ByVal dokumentid As String) As DataTable
Try
Dim connection As New SqlConnection(Connectionstring)
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim dtToReturn As DataTable = New DataTable()
Dim ds As New DataSet
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_edoka_onbase"
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, 6))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, dokumentid))
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = connection
Try
sdaAdapter.Fill(ds)
Return ds.Tables(0)
Catch ex As Exception
' MsgBox(ex.Message)
End Try
Catch ex As Exception
Threading.Thread.Sleep(1000)
'MsgBox(ex.Message)
End Try
End Function
Public Function Get_From_DB(ByVal sDokumentID As String, ByVal sDokumentName As String) As Boolean
Dim connection As New SqlConnection()
Dim da As New SqlDataAdapter("Select * From doks where DokumentID='" + sDokumentID + "'", connection)
Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da)
Dim ds As New DataSet()
Try
'Connectionstring zur Datenbank
connection.ConnectionString = Connectionstring
connection.Open()
da.Fill(ds, "docs")
Dim myRow As DataRow
myRow = ds.Tables(0).Rows(0)
Dim MyData() As Byte
MyData = myRow.Item(1)
Dim K As Long
K = UBound(MyData)
Dim fs As New FileStream(sDokumentName, FileMode.OpenOrCreate, FileAccess.Write)
fs.Write(MyData, 0, K)
fs.Close()
fs = Nothing
Catch ex As Exception
Return False
End Try
CB = Nothing
ds = Nothing
da = Nothing
connection.Close()
connection = Nothing
Return True
End Function
Public Function Update_EDOKA_IL_Status(ByVal Dokumentid As String, ByVal response As String, status As String)
Try
Dim connection As New SqlConnection(Connectionstring)
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim dtToReturn As DataTable = New DataTable()
Dim ds As New DataSet
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_edoka_onbase"
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, 7))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value1", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, response))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value2", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, status))
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = connection
Try
sdaAdapter.Fill(ds)
Return ds.Tables(0)
Catch ex As Exception
' MsgBox(ex.Message)
End Try
Catch ex As Exception
Threading.Thread.Sleep(1000)
'MsgBox(ex.Message)
End Try
End Function
End Class