Imports Microsoft.VisualBasic
Imports System.Data.SqlClient
'Imports SQL.Data.SQLClient
Public Class cDBFunctions
Public Shared Function GetNewOpenConnection() As SqlConnection
'MyProviderDbConn
Dim cn As New SqlConnection()
' cn.ConnectionString = "Server=db593295684.db.1and1.com;Database=db593295684;Uid=dbo593295684;Pwd=atilla#2;"
If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then
cn.ConnectionString = "Server=FMZOLL\SQLFMZOLL;Database=VERAG_HOMEPAGE;Uid=sa;Pwd=BmWr501956"
'Else
' cn.ConnectionString = "Server=db593295684.db.1and1.com;Database=db593295684;Uid=dbo593295684;Pwd=atilla#2;"
End If
cn.Open()
Return cn
End Function
' Public Function qry_menu_tags(Optional laenderkuerzel As String = "de", Optional ref As String = "de") As List(Of cNavigation)
' Using con As SQLConnection = GetNewOpenConnection()
' End Using
' End Function
Public errorAusg As String = ""
Public Function qry_menu_tags(Optional laenderkuerzel As String = "de", Optional ref As String = "") As List(Of cNavigation)
If laenderkuerzel = "" Then laenderkuerzel = "de"
Dim navigation As New List(Of cNavigation)
Using con As SqlConnection = GetNewOpenConnection()
Using cmd As New SqlCommand
cmd.Connection = con
Dim sql As String = " SELECT * FROM menu_tags WHERE " ' ORDER BY menu_tags.order ASC"
If ref <> "" Then
sql &= " ref_id='" & ref & "' "
Else
sql &= " instance='0' "
End If
' sql &= " ORDER BY menu_tags.order ASC "
cmd.CommandText = sql
Dim reader As SqlDataReader = cmd.ExecuteReader
Try
'reader = cmd.ExecuteReader
While reader.Read()
Dim n As New cNavigation
If Not reader.Item("desc_" & laenderkuerzel) Is DBNull.Value Then n.bezeichnung = reader.Item("desc_" & laenderkuerzel)
If Not reader.Item("id") Is DBNull.Value Then n.id = reader.Item("id")
If Not reader.Item("menu_slogan_" & laenderkuerzel) Is DBNull.Value Then n.slogan = reader.Item("menu_slogan_" & laenderkuerzel)
If Not reader.Item("menu_logo") Is DBNull.Value Then n.menu_logo = reader.Item("menu_logo")
n.subnavigation = qry_menu_tags(laenderkuerzel, n.id)
navigation.Add(n)
End While
reader.Close()
Catch ex As Exception
'MsgBox("Fehler: " & ex.Message)
Console.WriteLine(ex.Message)
errorAusg = ex.Message
End Try
con.Close()
End Using
End Using
Return navigation
End Function
Public Function qry_content(menuID As String, Optional laenderkuerzel As String = "de") As String
If laenderkuerzel = "" Then laenderkuerzel = "de"
Dim str As String = ""
Using con As SqlConnection = GetNewOpenConnection()
Using cmd As New SqlCommand
cmd.Connection = con
Dim sql As String = " SELECT block_id " &
" FROM tbl_blocks " &
" INNER JOIN menu_tags " &
" ON tbl_blocks.block_pageID_Ref=menu_tags.id " &
" WHERE menu_tags.id = '" & menuID & "'" &
" ORDER BY block_id ASC "
cmd.CommandText = sql
Dim reader As SqlDataReader = cmd.ExecuteReader
Try
'reader = cmd.ExecuteReader
While reader.Read()
str &= "
" & qry_blockfields(reader.Item("block_id"), laenderkuerzel) & "
"
End While
reader.Close()
Catch ex As Exception
MsgBox("Fehler: " & ex.Message)
End Try
con.Close()
End Using
End Using
Return str
End Function
Function getSpaltenBezeichnung(laenderkuerzel As String) As String
Dim spalte = "hp_de"
Select Case laenderkuerzel
Case "de" : spalte = "hp_de"
Case "bg" : spalte = "hp_bg"
Case "yu" : spalte = "hp_yu"
Case "ro" : spalte = "hp_ro"
Case "tr" : spalte = "hp_tr"
Case "en" : spalte = "hp_en"
End Select
Return spalte
End Function
Public Function qry_contentNew(menuID As String, Optional laenderkuerzel As String = "de") As String
If laenderkuerzel = "" Then laenderkuerzel = "de"
Dim spalte As String = getSpaltenBezeichnung(laenderkuerzel)
Dim str As String = ""
Using con As SqlConnection = GetNewOpenConnection()
Using cmd As New SqlCommand
cmd.Connection = con
Dim sql As String = " SELECT " & spalte & " " &
" FROM homepage_content " &
" WHERE hp_refId = '" & menuID & "'"
cmd.CommandText = sql
Dim reader As SqlDataReader = cmd.ExecuteReader
Try
'reader = cmd.ExecuteReader
While reader.Read()
str &= "" & reader.Item(spalte) & "
"
End While
reader.Close()
Catch ex As Exception
MsgBox("Fehler: " & ex.Message)
End Try
con.Close()
End Using
End Using
Return str
End Function
Public Function qry_blockfields(block_id As String, Optional laenderkuerzel As String = "de") As String
If laenderkuerzel = "" Then laenderkuerzel = "de"
Dim str As String = ""
Using con As SqlConnection = GetNewOpenConnection()
Using cmd As New SqlCommand
cmd.Connection = con
Dim sql As String = " SELECT bfld_ID, block_ID, bart_id, bart_desc, bart_beginParam, bart_endParam" &
" FROM " &
" tbl_blocks as t1, " &
" tbl_blockfields as t2, " &
" tbl_blockfieldart as t3 " &
" WHERE " &
" t1.block_ID=" & block_id & "" &
" AND " &
" t2.bfld_blockID_Ref=t1.block_ID " &
" AND " &
" t3.bart_ID=t2.bfld_bartID_Ref " &
" ORDER BY t2.bfld_ID ASC "
cmd.CommandText = sql
Dim reader As SqlDataReader = cmd.ExecuteReader
Try
'reader = cmd.ExecuteReader
While reader.Read()
str &= reader.Item("bart_beginParam") & qry_blockfield_content(reader.Item("bfld_ID"), laenderkuerzel) & reader.Item("bart_endParam")
End While
reader.Close()
Catch ex As Exception
MsgBox("Fehler: " & ex.Message)
End Try
con.Close()
End Using
End Using
Return str
End Function
Public Function qry_blockfield_content(bf_ID As String, Optional laenderkuerzel As String = "de") As String
If laenderkuerzel = "" Then laenderkuerzel = "de"
Dim str As String = ""
Using con As SqlConnection = GetNewOpenConnection()
Using cmd As New SqlCommand
cmd.Connection = con
Dim sql As String = " SELECT *" &
" FROM tbl_blockfieldargumentcontent " &
" INNER JOIN tbl_blockfieldarguments " &
" ON tbl_blockfieldargumentcontent.bfac_bargID_Ref=tbl_blockfieldarguments.barg_ID " &
" WHERE " &
" bfac_bfldID_Ref = " & bf_ID & " " &
" ORDER BY tbl_blockfieldargumentcontent.bfac_order ASC"
cmd.CommandText = sql
Dim reader As SqlDataReader = cmd.ExecuteReader
Try
'reader = cmd.ExecuteReader
While reader.Read()
str &= reader.Item("barg_beginArgument") & reader.Item("bfac_" & laenderkuerzel) & reader.Item("barg_endArgument")
End While
reader.Close()
Catch ex As Exception
MsgBox("Fehler: " & ex.Message)
End Try
con.Close()
End Using
End Using
Return str
End Function
End Class
Public Class cDBADMINFunctions
Public Shared Function GetNewOpenConnection() As SqlConnection
Return cDBFunctions.GetNewOpenConnection
End Function
Public Function qry_menu_tags(Optional laenderkuerzel As String = "de", Optional ref As String = "") As List(Of cNavigation)
If laenderkuerzel = "" Then laenderkuerzel = "de"
Dim navigation As New List(Of cNavigation)
Using con As SQLConnection = GetNewOpenConnection()
Using cmd As New SQLCommand
cmd.Connection = con
Dim sql As String = "SELECT * FROM menu_tags WHERE " ' ORDER BY `menu_tags`.`order` ASC"
If ref <> "" Then
sql &= " ref_id='" & ref & "' "
Else
sql &= " instance='0' "
End If
sql &= " ORDER BY `menu_tags`.`order` ASC "
cmd.CommandText = sql
Dim reader As SQLDataReader = cmd.ExecuteReader
Try
'reader = cmd.ExecuteReader
While reader.Read()
Dim n As New cNavigation
n.bezeichnung = reader.Item("desc_" & laenderkuerzel)
n.id = reader.Item("id")
n.slogan = reader.Item("menu_slogan_" & laenderkuerzel)
n.menu_logo = reader.Item("menu_logo")
n.subnavigation = qry_menu_tags(laenderkuerzel, n.id)
navigation.Add(n)
End While
reader.Close()
Catch ex As Exception
MsgBox("Fehler 01: " & ex.Message)
End Try
con.Close()
End Using
End Using
Return navigation
End Function
Public Function qry_contentNew(menuID As String, laenderkuerzel As String) As hp_content
Try
Dim hp_content As New hp_content
Using con As SqlConnection = GetNewOpenConnection()
Using cmd As New SqlCommand
cmd.Connection = con
Dim sql As String = " SELECT * FROM verag_homepage.dbo.menu_tags LEFT JOIN verag_homepage.dbo.homepage_content ON menu_tags.id=homepage_content.hp_refId WHERE menu_tags.id = '" & menuID & "'"
cmd.CommandText = sql
Dim reader As SqlDataReader = cmd.ExecuteReader
Try
While reader.Read()
Dim b As New cBlock
hp_content.hp_id = reader.Item("id")
If reader.Item(getSpaltenBezeichnung(laenderkuerzel)) IsNot DBNull.Value Then hp_content.hp_content = reader.Item(getSpaltenBezeichnung(laenderkuerzel))
If reader.Item(getSlogan(laenderkuerzel)) IsNot DBNull.Value Then hp_content.hp_slogan = reader.Item(getSlogan(laenderkuerzel))
If reader.Item(getTitle(laenderkuerzel)) IsNot DBNull.Value Then hp_content.hp_title = reader.Item(getTitle(laenderkuerzel))
If reader.Item("menu_logo") IsNot DBNull.Value Then hp_content.hp_imgPath = reader.Item("menu_logo")
If reader.Item("instance") IsNot DBNull.Value Then hp_content.hp_instance = reader.Item("instance")
If reader.Item("ref_id") IsNot DBNull.Value Then hp_content.hp_refIdToUpperMenue = reader.Item("ref_id")
Return hp_content
End While
reader.Close()
Catch ex As Exception
System.Web.HttpContext.Current.Response.Write("")
End Try
con.Close()
End Using
End Using
Catch ex As Exception
System.Web.HttpContext.Current.Response.Write("")
System.Web.HttpContext.Current.Response.Write("")
End Try
Return Nothing
End Function
Function getSpaltenBezeichnung(laenderkuerzel As String) As String
Dim spalte = "hp_de"
Select Case laenderkuerzel
Case "de" : spalte = "hp_de"
Case "bg" : spalte = "hp_bg"
Case "yu" : spalte = "hp_yu"
Case "ro" : spalte = "hp_ro"
Case "tr" : spalte = "hp_tr"
Case "en" : spalte = "hp_en"
End Select
Return spalte
End Function
Function getSlogan(laenderkuerzel As String) As String
Dim spalte = "hp_de"
Select Case laenderkuerzel
Case "de" : spalte = "menu_slogan_de"
Case "bg" : spalte = "menu_slogan_bg"
Case "yu" : spalte = "menu_slogan_yu"
Case "ro" : spalte = "menu_slogan_ro"
Case "tr" : spalte = "menu_slogan_tr"
Case "en" : spalte = "menu_slogan_en"
End Select
Return spalte
End Function
Function getTitle(laenderkuerzel As String) As String
Dim spalte = "hp_de"
Select Case laenderkuerzel
Case "de" : spalte = "desc_de"
Case "bg" : spalte = "desc_bg"
Case "yu" : spalte = "desc_yu"
Case "ro" : spalte = "desc_ro"
Case "tr" : spalte = "desc_tr"
Case "en" : spalte = "desc_en"
End Select
Return spalte
End Function
Public Sub update_HPContentNew(hp_content As hp_content, laenderkuerzel As String)
Dim sql As String = " begin tran" &
" if NOT exists (select * from homepage_content with (updlock,serializable) where hp_refId=@hp_refId ) " &
" begin " &
"INSERT INTO homepage_content " &
" (hp_refId) " &
" VALUES(@hp_refId) " &
" End " &
" UPDATE homepage_content " &
" SET [" & getSpaltenBezeichnung(laenderkuerzel) & "]=@hp WHERE hp_refId=@hp_refId " &
" UPDATE menu_tags " &
"SET " & getSlogan(laenderkuerzel) & "=@slogan, " & getTitle(laenderkuerzel) & "=@title, menu_logo=@img WHERE id=@id " &
" commit tran "
' MsgBox(sql)
Using conn As SqlConnection = GetNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@hp", hp_content.hp_content)
cmd.Parameters.AddWithValue("@hp_refId", hp_content.hp_id)
cmd.Parameters.AddWithValue("@slogan", hp_content.hp_slogan)
cmd.Parameters.AddWithValue("@title", hp_content.hp_title)
cmd.Parameters.AddWithValue("@img", hp_content.hp_imgPath)
cmd.Parameters.AddWithValue("@id", hp_content.hp_id)
Try
cmd.ExecuteNonQuery()
Catch ex As SqlException
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": ERR01 Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Programm")
End Try
End Using
conn.Close()
End Using
If False Then
Dim sql2 As String = " UPDATE homepage_content " &
" SET [" & getSpaltenBezeichnung(laenderkuerzel) & "]=@hp WHERE hp_refId=@hp_refId "
sql2 &= " UPDATE menu_tags " &
"SET " & getSlogan(laenderkuerzel) & "=@slogan, " & getTitle(laenderkuerzel) & "=@title, menu_logo=@img WHERE id=@id "
Using conn As SqlConnection = GetNewOpenConnection()
Using cmd As New SqlCommand(sql2, conn)
cmd.Parameters.AddWithValue("@slogan", hp_content.hp_slogan)
cmd.Parameters.AddWithValue("@title", hp_content.hp_title)
cmd.Parameters.AddWithValue("@img", hp_content.hp_imgPath)
cmd.Parameters.AddWithValue("@id", hp_content.hp_id)
cmd.Parameters.AddWithValue("@hp", hp_content.hp_content)
cmd.Parameters.AddWithValue("@hp_refId", hp_content.hp_id)
Try
cmd.ExecuteNonQuery()
Catch ex As SqlException
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": ERR02 Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Programm")
End Try
End Using
conn.Close()
End Using
End If
End Sub
Public Sub doTheSql(sql As String)
Using conn As SqlConnection = GetNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
Try
cmd.ExecuteNonQuery()
Catch ex As SqlException
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": ERROR: " & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim SQL")
End Try
End Using
conn.Close()
End Using
End Sub
Public Function getInstance(id As String) As Integer
Dim instance As Integer = -1
Try
Dim hp_content As New hp_content
Using con As SQLConnection = GetNewOpenConnection()
Using cmd As New SQLCommand
cmd.Connection = con
Dim sql As String = " SELECT instance FROM menu_tags WHERE id='" & id & "' "
cmd.CommandText = sql
Dim reader As SQLDataReader = cmd.ExecuteReader
Try
'reader = cmd.ExecuteReader
If reader.HasRows Then
reader.Read()
instance = CInt(reader.Item("instance")) + 1
End If
reader.Close()
Catch ex As Exception
MsgBox("Fehler 03: " & ex.Message)
End Try
con.Close()
End Using
End Using
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return instance
End Function
Public Function insert_HPContentNew(hp_content As hp_content, laenderkuerzel As String, title As String, refId As String, instance As String) As Integer
Dim newID As Integer = -1
Dim sql As String = " INSERT INTO menu_tags ( " & getTitle(laenderkuerzel) & " , ref_id, instance) VALUES( @title,@refId,'" & (instance + 1) & "' ); Select Scope_Identity()" 'ON DUPLICATE KEY UPDATE hp_de = VALUES(@hp_de)"
'dedet_abt
'; SELECT LAST_INSERT_ID()
Using conn As SQLConnection = GetNewOpenConnection()
Using cmd As New SQLCommand(sql, conn)
cmd.Parameters.AddWithValue("@title", title)
cmd.Parameters.AddWithValue("@refId", refId)
Try
' cmd.ExecuteNonQuery()
newID = CInt(cmd.ExecuteScalar())
Catch ex As SQLException
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Programm")
End Try
End Using
conn.Close()
End Using
Dim sql2 As String = " INSERT INTO homepage_content (hp_refId) VALUES( @hp_refId) " 'ON DUPLICATE KEY UPDATE hp_de = VALUES(@hp_de)"
Using conn As SQLConnection = GetNewOpenConnection()
Using cmd As New SQLCommand(sql2, conn)
cmd.Parameters.AddWithValue("@hp_refId", newID)
Try
cmd.ExecuteNonQuery()
Catch ex As SQLException
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Programm")
End Try
End Using
conn.Close()
End Using
Return newID
End Function
Public Sub deleteHpMenueAndContent(id)
Dim sql As String = " DELETE FROM menu_tags WHERE id=@id; DELETE FROM homepage_content WHERE hp_refId=@id " 'ON DUPLICATE KEY UPDATE hp_de = VALUES(@hp_de)"
'dedet_abt
Using conn As SQLConnection = GetNewOpenConnection()
Using cmd As New SQLCommand(sql, conn)
cmd.Parameters.AddWithValue("@id", id)
Try
cmd.ExecuteNonQuery()
Catch ex As SQLException
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Datensatz kann nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Programm")
End Try
End Using
End Using
End Sub
End Class