775 lines
38 KiB
VB.net
775 lines
38 KiB
VB.net
Imports MySql.Data.MySqlClient
|
|
Imports System.Data.OleDb
|
|
Imports System.Data.EntityClient
|
|
Imports System.Data.SqlClient
|
|
Imports Oracle.ManagedDataAccess.Client
|
|
Imports System.Data.Objects
|
|
|
|
Public Class bbdd
|
|
Public Shared Function SQLADatarow(ByVal Conexion As System.Data.Common.DbConnection, ByVal ClausulaSQL As String) As DataRow
|
|
If Conexion.GetType Is GetType(OleDbConnection) Then
|
|
Throw New Exception("Tipo no soportado")
|
|
ElseIf Conexion.GetType Is GetType(MySqlConnection) Then
|
|
Return SQLADatarowMysql(Conexion, ClausulaSQL)
|
|
ElseIf Conexion.GetType Is GetType(OracleConnection) Then
|
|
Return SQLADatarowOracle(Conexion, ClausulaSQL)
|
|
Else
|
|
Throw New Exception("Tipo no soportado")
|
|
End If
|
|
End Function
|
|
Private Shared Function SQLADatarowOracle(ByVal Conexion As OracleConnection, ByVal ClausulaSQL As String) As DataRow
|
|
Try
|
|
Dim ad As OracleDataAdapter, dsDatos As New DataSet
|
|
ad = New OracleDataAdapter(ClausulaSQL, Conexion)
|
|
ad.Fill(dsDatos)
|
|
If dsDatos.Tables(0).Rows.Count > 0 Then
|
|
SQLADatarowOracle = dsDatos.Tables(0).Rows(0)
|
|
Else
|
|
SQLADatarowOracle = Nothing
|
|
End If
|
|
Catch ex As Exception
|
|
Throw New Exception(ex.Message & vbCrLf & "SQL: " & ClausulaSQL)
|
|
End Try
|
|
End Function
|
|
Private Shared Function SQLADatarowMysql(ByVal Conexion As MySqlConnection, ByVal ClausulaSQL As String) As DataRow
|
|
Try
|
|
Dim ad As MySqlDataAdapter, dsDatos As New DataSet
|
|
ad = New MySqlDataAdapter(ClausulaSQL, Conexion)
|
|
ad.Fill(dsDatos)
|
|
If dsDatos.Tables(0).Rows.Count > 0 Then
|
|
SQLADatarowMysql = dsDatos.Tables(0).Rows(0)
|
|
Else
|
|
SQLADatarowMysql = Nothing
|
|
End If
|
|
Catch ex As Exception
|
|
Throw New Exception(ex.Message & vbCrLf & "SQL: " & ClausulaSQL)
|
|
End Try
|
|
End Function
|
|
Public Shared Function EjecutaComandoMysql(ByVal Conexion As MySqlConnection, ClausulaSQL As String, Optional Parametros() As Object = Nothing) As Integer
|
|
Dim bCerrar As Boolean
|
|
Try
|
|
If Conexion.State = ConnectionState.Closed Then
|
|
bCerrar = True
|
|
Conexion.Open()
|
|
End If
|
|
Dim i As Integer
|
|
ClausulaSQL = ClausulaSQL.Replace("?", "@")
|
|
Do While ClausulaSQL.Contains("@")
|
|
ClausulaSQL = ClausulaSQL.Split("@")(0) & "?" & i.ToString & ClausulaSQL.Split("@", 2, StringSplitOptions.None)(1)
|
|
i += 1
|
|
Loop
|
|
'ClausulaSQL = ClausulaSQL.Replace("?", "@")
|
|
Dim mc As New MySqlCommand(ClausulaSQL, Conexion)
|
|
Dim mp As MySqlParameter
|
|
mc.Prepare()
|
|
If Not Parametros Is Nothing Then
|
|
For i = 0 To Parametros.Length - 1
|
|
Select Case Parametros(i).GetType
|
|
Case GetType(DateTime)
|
|
mp = New MySqlParameter("?" & i.ToString, MySqlDbType.DateTime)
|
|
mp.Value = Parametros(i)
|
|
mc.Parameters.Add(mp)
|
|
Case GetType(Boolean)
|
|
mp = New MySqlParameter("?" & i.ToString, MySqlDbType.Bit)
|
|
mp.Value = Parametros(i)
|
|
mc.Parameters.Add(mp)
|
|
Case Else
|
|
mp = New MySqlParameter("?" & i.ToString, Parametros(i))
|
|
mc.Parameters.Add(mp)
|
|
End Select
|
|
|
|
Next
|
|
End If
|
|
Return mc.ExecuteNonQuery()
|
|
Catch ex As Exception
|
|
Throw ex
|
|
Finally
|
|
Try
|
|
If bCerrar Then
|
|
Conexion.Close()
|
|
End If
|
|
Catch ex As Exception
|
|
End Try
|
|
End Try
|
|
End Function
|
|
Public Shared Function EjecutaComandoSql(ByVal Conexion As SqlConnection, ClausulaSQL As String, Optional Parametros() As Object = Nothing) As Integer
|
|
Dim bCerrar As Boolean
|
|
Try
|
|
If Conexion.State = ConnectionState.Closed Then
|
|
bCerrar = True
|
|
Conexion.Open()
|
|
End If
|
|
Dim i As Integer
|
|
ClausulaSQL = ClausulaSQL.Replace("?", "@")
|
|
Do While ClausulaSQL.Contains("@")
|
|
ClausulaSQL = ClausulaSQL.Split("@")(0) & "?" & i.ToString & ClausulaSQL.Split("@", 2, StringSplitOptions.None)(1)
|
|
i += 1
|
|
Loop
|
|
'ClausulaSQL = ClausulaSQL.Replace("?", "@")
|
|
Dim mc As New SqlCommand(ClausulaSQL, Conexion)
|
|
Dim mp As SqlParameter
|
|
mc.Prepare()
|
|
If Not Parametros Is Nothing Then
|
|
For i = 0 To Parametros.Length - 1
|
|
Select Case Parametros(i).GetType
|
|
Case GetType(DateTime)
|
|
mp = New SqlParameter("?" & i.ToString, MySqlDbType.DateTime)
|
|
mp.Value = Parametros(i)
|
|
mc.Parameters.Add(mp)
|
|
Case GetType(Boolean)
|
|
mp = New SqlParameter("?" & i.ToString, MySqlDbType.Bit)
|
|
mp.Value = Parametros(i)
|
|
mc.Parameters.Add(mp)
|
|
Case Else
|
|
mp = New SqlParameter("?" & i.ToString, Parametros(i))
|
|
mc.Parameters.Add(mp)
|
|
End Select
|
|
|
|
Next
|
|
End If
|
|
Return mc.ExecuteNonQuery()
|
|
Catch ex As Exception
|
|
Throw ex
|
|
Finally
|
|
Try
|
|
If bCerrar Then
|
|
Conexion.Close()
|
|
End If
|
|
Catch ex As Exception
|
|
End Try
|
|
End Try
|
|
End Function
|
|
|
|
Public Shared Function ObtienePrimeraFilaMysql(ByVal Conexion As MySqlConnection, ClausulaSQL As String, Optional Parametros() As Object = Nothing) As DataRow
|
|
Dim bCerrar As Boolean
|
|
Try
|
|
If Conexion.State = ConnectionState.Closed Then
|
|
bCerrar = True
|
|
Conexion.Open()
|
|
End If
|
|
Dim i As Integer
|
|
ClausulaSQL = ClausulaSQL.Replace("?", "@")
|
|
Do While ClausulaSQL.Contains("@")
|
|
ClausulaSQL = ClausulaSQL.Split("@")(0) & "?" & i.ToString & ClausulaSQL.Split("@", 2, StringSplitOptions.None)(1)
|
|
i += 1
|
|
Loop
|
|
Dim mc As New MySqlCommand(ClausulaSQL, Conexion)
|
|
Dim mp As MySqlParameter
|
|
mc.Prepare()
|
|
If Not Parametros Is Nothing Then
|
|
For i = 0 To Parametros.Length - 1
|
|
mp = New MySqlParameter("?" & i.ToString, Parametros(i))
|
|
mc.Parameters.Add(mp)
|
|
Next
|
|
End If
|
|
Dim dr As MySql.Data.MySqlClient.MySqlDataReader = mc.ExecuteReader()
|
|
Dim dt As New DataTable
|
|
dt.Load(dr)
|
|
If dt.Rows.Count > 0 Then
|
|
Return dt(0)
|
|
Else
|
|
Return Nothing
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
Throw ex
|
|
Finally
|
|
Try
|
|
If bCerrar Then
|
|
Conexion.Close()
|
|
End If
|
|
Catch ex As Exception
|
|
End Try
|
|
End Try
|
|
End Function
|
|
Public Shared Function ObtienePrimeraFilaSQLServer(ByVal Conexion As Data.SqlClient.SqlConnection, ClausulaSQL As String, Optional Parametros() As Object = Nothing) As DataRow
|
|
Dim bCerrar As Boolean
|
|
Try
|
|
If Conexion.State = ConnectionState.Closed Then
|
|
bCerrar = True
|
|
Conexion.Open()
|
|
End If
|
|
Dim i As Integer
|
|
ClausulaSQL = ClausulaSQL.Replace("?", "@")
|
|
Do While ClausulaSQL.Contains("@")
|
|
ClausulaSQL = ClausulaSQL.Split("@")(0) & "?" & i.ToString & ClausulaSQL.Split("@", 2, StringSplitOptions.None)(1)
|
|
i += 1
|
|
Loop
|
|
ClausulaSQL = ClausulaSQL.Replace("?", "@")
|
|
Dim mc As New Data.SqlClient.SqlCommand(ClausulaSQL, Conexion)
|
|
Dim mp As SqlParameter
|
|
mc.Prepare()
|
|
If Not Parametros Is Nothing Then
|
|
For i = 0 To Parametros.Length - 1
|
|
mp = New SqlParameter("@" & i.ToString, Parametros(i))
|
|
mc.Parameters.Add(mp)
|
|
Next
|
|
End If
|
|
Dim dr As SqlDataReader = mc.ExecuteReader()
|
|
Dim dt As New DataTable
|
|
dt.Load(dr)
|
|
If dt.Rows.Count > 0 Then
|
|
Return dt(0)
|
|
Else
|
|
Return Nothing
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
Throw ex
|
|
Finally
|
|
Try
|
|
If bCerrar Then
|
|
Conexion.Close()
|
|
End If
|
|
Catch ex As Exception
|
|
End Try
|
|
End Try
|
|
End Function
|
|
Public Shared Function ObtieneTablaMysql(ByVal Conexion As MySqlConnection, ClausulaSQL As String, Optional Parametros() As Object = Nothing) As DataTable
|
|
Dim bCerrar As Boolean
|
|
Try
|
|
If Conexion.State = ConnectionState.Closed Then
|
|
bCerrar = True
|
|
Conexion.Open()
|
|
End If
|
|
Dim i As Integer
|
|
ClausulaSQL = ClausulaSQL.Replace("?", "@")
|
|
Do While ClausulaSQL.Contains("@")
|
|
ClausulaSQL = ClausulaSQL.Split("@")(0) & "?" & i.ToString & ClausulaSQL.Split("@", 2, StringSplitOptions.None)(1)
|
|
i += 1
|
|
Loop
|
|
Dim mc As New MySqlCommand(ClausulaSQL, Conexion)
|
|
Dim mp As MySqlParameter
|
|
mc.Prepare()
|
|
If Not Parametros Is Nothing Then
|
|
For i = 0 To Parametros.Length - 1
|
|
mp = New MySqlParameter("?" & i.ToString, Parametros(i))
|
|
mc.Parameters.Add(mp)
|
|
Next
|
|
End If
|
|
Dim dr As MySql.Data.MySqlClient.MySqlDataReader = mc.ExecuteReader()
|
|
Dim dt As New DataTable
|
|
' dt.BeginLoadData()
|
|
dt.Load(dr)
|
|
' dt.EndLoadData()
|
|
Return dt
|
|
Catch ex As Exception
|
|
Throw ex
|
|
Finally
|
|
Try
|
|
If bCerrar Then
|
|
Conexion.Close()
|
|
End If
|
|
Catch ex As Exception
|
|
End Try
|
|
End Try
|
|
End Function
|
|
|
|
|
|
Public Shared Function ObtieneTablaSqlServer(ByVal Conexion As SqlConnection, ClausulaSQL As String, Optional Parametros() As Object = Nothing) As DataTable
|
|
Dim bCerrar As Boolean
|
|
Try
|
|
If Conexion.State = ConnectionState.Closed Then
|
|
bCerrar = True
|
|
Conexion.Open()
|
|
End If
|
|
Dim i As Integer
|
|
ClausulaSQL = ClausulaSQL.Replace("?", "@")
|
|
Do While ClausulaSQL.Contains("@")
|
|
ClausulaSQL = ClausulaSQL.Split("@")(0) & "?" & i.ToString & ClausulaSQL.Split("@", 2, StringSplitOptions.None)(1)
|
|
i += 1
|
|
Loop
|
|
Dim mc As New SqlCommand(ClausulaSQL, Conexion)
|
|
Dim mp As SqlParameter
|
|
mc.Prepare()
|
|
If Not Parametros Is Nothing Then
|
|
For i = 0 To Parametros.Length - 1
|
|
mp = New SqlParameter("?" & i.ToString, Parametros(i))
|
|
mc.Parameters.Add(mp)
|
|
Next
|
|
End If
|
|
Dim dr As SqlDataReader = mc.ExecuteReader()
|
|
Dim dt As New DataTable
|
|
' dt.BeginLoadData()
|
|
dt.Load(dr)
|
|
' dt.EndLoadData()
|
|
Return dt
|
|
Catch ex As Exception
|
|
Throw ex
|
|
Finally
|
|
Try
|
|
If bCerrar Then
|
|
Conexion.Close()
|
|
End If
|
|
Catch ex As Exception
|
|
End Try
|
|
End Try
|
|
End Function
|
|
|
|
Private Shared Function ObtienePrimeraFilaMysql(ByVal Conexion As MySqlConnection, ClausulaSQL As String, Parametros() As MySql.Data.MySqlClient.MySqlParameter) As DataRow
|
|
Try
|
|
Dim ad As New MySqlDataAdapter(ClausulaSQL, Conexion)
|
|
Dim ds As New DataSet
|
|
ad.FillSchema(ds, SchemaType.Mapped)
|
|
|
|
For Each par In Parametros
|
|
ad.SelectCommand.Parameters.Add(par)
|
|
Next
|
|
ad.Fill(ds)
|
|
Return ds.Tables(0).Rows(0)
|
|
Catch ex As Exception
|
|
Throw ex
|
|
End Try
|
|
End Function
|
|
Public Shared Function GetMySQLType(ByVal sysType As Type) As MySqlDbType
|
|
If sysType Is GetType(String) Then
|
|
Return MySqlDbType.VarChar
|
|
ElseIf sysType Is GetType(Integer) Then
|
|
Return MySqlDbType.Int64
|
|
ElseIf sysType Is GetType(Boolean) Then
|
|
Return MySqlDbType.Byte
|
|
ElseIf sysType Is GetType(Date) Then
|
|
Return MySqlDbType.Date
|
|
ElseIf sysType Is GetType(Char) Then
|
|
Return MySqlDbType.Byte
|
|
ElseIf sysType Is GetType(Decimal) Then
|
|
Return MySqlDbType.Decimal
|
|
ElseIf sysType Is GetType(Double) Then
|
|
Return MySqlDbType.Double
|
|
ElseIf sysType Is GetType(Single) Then
|
|
Return MySqlDbType.LongBlob
|
|
ElseIf sysType Is GetType(Byte()) Then
|
|
Return MySqlDbType.Binary
|
|
ElseIf sysType Is GetType(Guid) Then
|
|
Return MySqlDbType.Guid
|
|
Else
|
|
Throw New Exception("Tipo no soportado")
|
|
End If
|
|
End Function
|
|
|
|
|
|
Public Shared Function GeneraConnectionStringMySQLPasswordClara(Servidor As String, Esquema As String, usuario As String, password As String, Optional Puerto As Integer = 13306, Optional SegundosTimeout As Integer = 60, Optional Pooling As Boolean = False, Optional SSL As Boolean = False, Optional FicheroCertificado As String = "", Optional ContraseñaCertificado As String = "") As String
|
|
Dim sCadenaDeConexion As String
|
|
sCadenaDeConexion = "server=" & Servidor &
|
|
";database=" & Esquema &
|
|
";user=" & usuario &
|
|
";Password=" & password &
|
|
";port=" & Puerto.ToString &
|
|
";default command Timeout=" & SegundosTimeout.ToString & ";" &
|
|
";Connection Timeout=" & SegundosTimeout.ToString & ";"
|
|
If Pooling Then sCadenaDeConexion &= "Pooling=True;"
|
|
If SSL Then sCadenaDeConexion &= "SSL Mode=Required;"
|
|
If FicheroCertificado <> "" Then sCadenaDeConexion &= "CertificateFile=" & FicheroCertificado & ";"
|
|
If FicheroCertificado <> "" Then sCadenaDeConexion &= "CertificateFile=" & FicheroCertificado & ";"
|
|
If ContraseñaCertificado <> "" Then sCadenaDeConexion &= "CertificatePassword=" & ContraseñaCertificado & ";"
|
|
|
|
Return sCadenaDeConexion
|
|
End Function
|
|
|
|
Public Shared Function GeneraConnectionStringMySQL(Servidor As String, Esquema As String, usuario As String, passwordEnc As String, Optional Puerto As Integer = 13306, Optional SegundosTimeout As Integer = 60, Optional Pooling As Boolean = False, Optional SSL As Boolean = False, Optional FicheroCertificado As String = "", Optional ContraseñaCertificado As String = "") As String
|
|
Dim cadenaDeConexion As String = ""
|
|
Dim juegoDeCaracteresDeOrigen As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
Dim juegoDeCaracteresDeDestino As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
Dim spassword As String = crypt.FEncS(passwordEnc, juegoDeCaracteresDeOrigen, juegoDeCaracteresDeDestino, -875421649)
|
|
cadenaDeConexion = "server=" & Servidor &
|
|
";database=" & Esquema &
|
|
";user=" & usuario &
|
|
";Password=" & spassword &
|
|
";port=" & Puerto.ToString &
|
|
";default command Timeout=" & SegundosTimeout.ToString & ";" &
|
|
";Connection Timeout=" & SegundosTimeout.ToString & ";"
|
|
If Pooling Then cadenaDeConexion &= "Pooling=True;"
|
|
If SSL Then cadenaDeConexion &= "SSL Mode=Required;"
|
|
If FicheroCertificado <> "" Then cadenaDeConexion &= "CertificateFile=" & FicheroCertificado & ";"
|
|
If FicheroCertificado <> "" Then cadenaDeConexion &= "CertificateFile=" & FicheroCertificado & ";"
|
|
If ContraseñaCertificado <> "" Then cadenaDeConexion &= "CertificatePassword=" & ContraseñaCertificado & ";"
|
|
Return cadenaDeConexion
|
|
End Function
|
|
|
|
|
|
Public Shared Function GeneraConnectionStringOraclePasswordClara(Servidor As String, Esquema As String, usuario As String, password As String, Optional Puerto As Integer = 13306, Optional SegundosTimeout As Integer = 60, Optional Pooling As Boolean = False, Optional SSL As Boolean = False, Optional FicheroCertificado As String = "", Optional ContraseñaCertificado As String = "") As String
|
|
Dim cadenaDeConexion As String
|
|
If Pooling Then
|
|
cadenaDeConexion = "DATA SOURCE=" & Servidor &
|
|
":" & Puerto.ToString &
|
|
"/" & Esquema &
|
|
";USER ID=" & usuario &
|
|
";PASSWORD=" & password &
|
|
";PERSIST SECURITY INFO=True;"
|
|
Else
|
|
cadenaDeConexion = "DATA SOURCE=" & Servidor &
|
|
":" & Puerto.ToString &
|
|
"/" & Esquema &
|
|
";USER ID=" & usuario &
|
|
";PASSWORD=" & password &
|
|
";POOLING=False" &
|
|
";PERSIST SECURITY INFO=True;"
|
|
End If
|
|
Return cadenaDeConexion
|
|
End Function
|
|
|
|
Public Shared Function GeneraConnectionStringOracle(Servidor As String, Esquema As String, usuario As String, passwordEnc As String, Optional Puerto As Integer = 13306, Optional SegundosTimeout As Integer = 60, Optional Pooling As Boolean = False, Optional SSL As Boolean = False, Optional FicheroCertificado As String = "", Optional ContraseñaCertificado As String = "") As String
|
|
Dim cadenaDeConexion As String = ""
|
|
Dim juegoDeCaracteresDeOrigen As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
Dim juegoDeCaracteresDeDestino As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
Dim spassword As String = crypt.FEncS(passwordEnc, juegoDeCaracteresDeOrigen, juegoDeCaracteresDeDestino, -875421649)
|
|
If Pooling Then
|
|
cadenaDeConexion = "DATA SOURCE=" & Servidor &
|
|
":" & Puerto.ToString &
|
|
"/" & Esquema &
|
|
";USER ID=" & usuario &
|
|
";PASSWORD=" & spassword &
|
|
";PERSIST SECURITY INFO=True;"
|
|
Else
|
|
cadenaDeConexion = "DATA SOURCE=" & Servidor &
|
|
":" & Puerto.ToString &
|
|
"/" & Esquema &
|
|
";USER ID=" & usuario &
|
|
";PASSWORD=" & spassword &
|
|
";POOLING=False" &
|
|
";PERSIST SECURITY INFO=True;"
|
|
End If
|
|
Return cadenaDeConexion
|
|
End Function
|
|
|
|
|
|
Public Shared Function GeneraConnectionStringLocalDB(Servidor As String, FicheroMDF As String) As String
|
|
Return "Server=" & Servidor & ";Integrated Security=true;AttachDbFileName=" & FicheroMDF & ";"
|
|
End Function
|
|
Public Shared Function GeneraConnectionStringSQLServer(Servidor As String, DataBase As String, usuario As String, passwordEnc As String, Optional Puerto As Integer = 1433) As String
|
|
Dim cadenaDeConexion As String = ""
|
|
'Dim juegoDeCaracteresDeOrigen As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
'Dim juegoDeCaracteresDeDestino As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
Dim spassword As String = crypt.FEncS(passwordEnc, "[JO1]", "[JD1]", -875421649)
|
|
cadenaDeConexion = "Server=" & Servidor & ", " & Puerto.ToString &
|
|
";Database=" & DataBase &
|
|
";User Id=" & usuario &
|
|
";Password=" & spassword & ";"
|
|
Return cadenaDeConexion
|
|
End Function
|
|
Public Shared Function GeneraConnectionStringSQLServer(Servidor As String, DataBase As String, usuario As String, passwordEnc As String, Optional Puerto As Integer = 1433, Optional JuegoCaracteresOrigen As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-", Optional JuegoCaracteresDestino As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-") As String
|
|
Dim cadenaDeConexion As String = ""
|
|
' Dim juegoDeCaracteresDeOrigen As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
' Dim juegoDeCaracteresDeDestino As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
Dim spassword As String = crypt.FEncS(passwordEnc, JuegoCaracteresOrigen, JuegoCaracteresDestino, -875421649)
|
|
cadenaDeConexion = "Server=" & Servidor & ", " & Puerto.ToString &
|
|
";Database=" & DataBase &
|
|
";User Id=" & usuario &
|
|
";Password=" & spassword & ";"
|
|
|
|
Return cadenaDeConexion
|
|
End Function
|
|
Public Shared Function GeneraConnectionStringSQLServerPasswordClara(Servidor As String, DataBase As String, usuario As String, password As String, Optional Puerto As Integer = 1433) As String
|
|
Dim cadenaDeConexion As String = ""
|
|
cadenaDeConexion = "Server=" & Servidor & ", " & Puerto.ToString &
|
|
";Database=" & DataBase &
|
|
";User Id=" & usuario &
|
|
";Password=" & password & ";"
|
|
Return cadenaDeConexion
|
|
End Function
|
|
|
|
|
|
'Public Shared Function ConectarTsl5EntitySQLServer(ByVal DataSource As String, InitialCatalog As String, ByVal user As String, ByVal password As String, NombreMetadata As String) As tsl5Entities
|
|
' Return New tsl5Entities(ObtieneEntityConnectionStringSQLServer(DataSource, InitialCatalog, user, password, NombreMetadata))
|
|
'End Function
|
|
'Public Shared Function ConectarTsl5EntityMySQL(ByVal server As String, ByVal database As String, ByVal port As String, ByVal user As String, ByVal password As String, NombreMetadata As String, Optional Pooling As Boolean = False, Optional SSL As Boolean = False, Optional FicheroCertificado As String = "", Optional ContraseñaCertificado As String = "") As tsl5Entities
|
|
' Return New tsl5Entities(ObtieneEntityConnectionStringMysql(server, database, port, user, password, NombreMetadata, Pooling, SSL, FicheroCertificado, ContraseñaCertificado))
|
|
'End Function
|
|
'Public Shared Function ConectarTsl5EntityLocalDB(ByVal Datasource As String, ByVal Fichero As String, ByVal Database As String, NombreMetaData As String, Optional IntegratedSecurity As Boolean = True) As tsl5Entities
|
|
' Return New tsl5Entities(ObtieneEntityConnectionStringLocalDB(Datasource, Fichero, Database, NombreMetaData, IntegratedSecurity))
|
|
'End Function
|
|
|
|
Public Shared Function ObtieneEntityConnectionStringSQLServer(ByVal DataSource As String, InitialCatalog As String, ByVal user As String, ByVal password As String, NombreMetadata As String, Optional passwordclara As Boolean = False, Optional Puerto As Integer = 1433, Optional ConnectionTimeout As Integer = 60) As String
|
|
|
|
|
|
' Initialize the connection string builder for the underlying provider.
|
|
Dim sqlBuilder As New Data.SqlClient.SqlConnectionStringBuilder
|
|
|
|
' Set the properties for the data source.
|
|
sqlBuilder.DataSource = DataSource & "," & Puerto.ToString
|
|
sqlBuilder.InitialCatalog = InitialCatalog
|
|
sqlBuilder.PersistSecurityInfo = True
|
|
sqlBuilder.MultipleActiveResultSets = True
|
|
sqlBuilder.IntegratedSecurity = False
|
|
sqlBuilder.ConnectTimeout = ConnectionTimeout
|
|
|
|
If passwordclara Then
|
|
sqlBuilder.Password = password
|
|
Else
|
|
sqlBuilder.Password = crypt.FEncS(password, "[JO1]", "[JD1]", -875421649)
|
|
End If
|
|
|
|
sqlBuilder.UserID = user
|
|
|
|
' Build the SqlConnection connection string.
|
|
Dim providerString As String = sqlBuilder.ToString()
|
|
|
|
' Initialize the EntityConnectionStringBuilder.
|
|
Dim entityBuilder As New EntityConnectionStringBuilder()
|
|
|
|
'Set the provider name.
|
|
entityBuilder.Provider = "System.Data.SqlClient"
|
|
|
|
' Set the provider-specific connection string.
|
|
entityBuilder.ProviderConnectionString = providerString
|
|
|
|
|
|
' Set the Metadata location.
|
|
entityBuilder.Metadata = "res://*/" & NombreMetadata & ".csdl|res://*/" & NombreMetadata & ".ssdl|res://*/" & NombreMetadata & ".msl"
|
|
|
|
Return entityBuilder.ToString
|
|
End Function
|
|
|
|
Public Shared Function ObtieneEntityConnectionStringLocalDB(ByVal Datasource As String, ByVal Fichero As String, ByVal Database As String, NombreMetaData As String, Optional IntegratedSecurity As Boolean = True, Optional ConnectionTimeout As Integer = 60) As String
|
|
|
|
Dim SqlBuilder As New Data.SqlClient.SqlConnectionStringBuilder
|
|
SqlBuilder.DataSource = Datasource
|
|
SqlBuilder.AttachDBFilename = Fichero
|
|
SqlBuilder.InitialCatalog = Database
|
|
SqlBuilder.IntegratedSecurity = IntegratedSecurity
|
|
SqlBuilder.Enlist = True ' tsl5.cryp.FEncS(password, juegoDeCaracteresDeOrigen, juegoDeCaracteresDeDestino, -875421649)
|
|
SqlBuilder.MultipleActiveResultSets = True
|
|
SqlBuilder.ConnectTimeout = ConnectionTimeout
|
|
|
|
' Build the SqlConnection connection string.
|
|
Dim providerString As String = SqlBuilder.ToString()
|
|
|
|
' Initialize the EntityConnectionStringBuilder.
|
|
Dim entityBuilder As New System.Data.EntityClient.EntityConnectionStringBuilder()
|
|
|
|
'Set the provider name.
|
|
entityBuilder.Provider = "System.Data.SqlClient"
|
|
|
|
' Set the provider-specific connection string.
|
|
entityBuilder.ProviderConnectionString = providerString
|
|
|
|
' Set the Metadata location.
|
|
entityBuilder.Metadata = "res://*/" & NombreMetaData & ".csdl|res://*/" & NombreMetaData & ".ssdl|res://*/" & NombreMetaData & ".msl"
|
|
Return entityBuilder.ToString()
|
|
End Function
|
|
Public Shared Function ObtieneEntityConnectionStringMysql(ByVal server As String, ByVal database As String, ByVal port As String, ByVal user As String, ByVal passwordEnc As String, NombreMetadata As String, Optional Pooling As Boolean = False, Optional SSL As Boolean = False, Optional FicheroCertificado As String = "", Optional ContraseñaCertificado As String = "", Optional ConnectionTimeout As UInteger = 60) As String
|
|
Dim juegoDeCaracteresDeOrigen As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
Dim juegoDeCaracteresDeDestino As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
|
|
' Initialize the connection string builder for the underlying provider.
|
|
Dim mySqlBuilder As New MySqlConnectionStringBuilder
|
|
|
|
|
|
' Set the properties for the data source.
|
|
mySqlBuilder.Server = server
|
|
mySqlBuilder.Port = port
|
|
mySqlBuilder.Database = database
|
|
mySqlBuilder.Password = crypt.FEncS(passwordEnc, juegoDeCaracteresDeOrigen, juegoDeCaracteresDeDestino, -875421649)
|
|
mySqlBuilder.UserID = user
|
|
mySqlBuilder.ConnectionTimeout = ConnectionTimeout
|
|
mySqlBuilder.Pooling = Pooling
|
|
mySqlBuilder.ConvertZeroDateTime = True
|
|
mySqlBuilder.SslMode = If(SSL, MySqlSslMode.Required, MySqlSslMode.None)
|
|
If FicheroCertificado <> "" Then mySqlBuilder.CertificateFile = FicheroCertificado
|
|
If ContraseñaCertificado <> "" Then mySqlBuilder.CertificatePassword = ContraseñaCertificado
|
|
|
|
' Build the SqlConnection connection string.
|
|
Dim providerString As String = mySqlBuilder.ToString()
|
|
|
|
' Initialize the EntityConnectionStringBuilder.
|
|
Dim entityBuilder As New EntityConnectionStringBuilder()
|
|
|
|
'Set the provider name.
|
|
entityBuilder.Provider = "MySql.Data.MySqlClient"
|
|
|
|
' Set the provider-specific connection string.
|
|
entityBuilder.ProviderConnectionString = providerString
|
|
|
|
' Set the Metadata location.
|
|
If NombreMetadata <> "" Then
|
|
entityBuilder.Metadata = "res://*/" & NombreMetadata & ".csdl|res://*/" & NombreMetadata & ".ssdl|res://*/" & NombreMetadata & ".msl"
|
|
End If
|
|
|
|
Return entityBuilder.ToString
|
|
|
|
End Function
|
|
|
|
|
|
Public Shared Function ObtieneEntityConnectionStringMysqlReducido(ByVal server As String, ByVal database As String, ByVal port As String, ByVal user As String, ByVal passwordEnc As String, Optional Pooling As Boolean = False, Optional SSL As Boolean = False, Optional FicheroCertificado As String = "", Optional ContraseñaCertificado As String = "", Optional ConnectionTimeout As UInteger = 60) As String
|
|
Dim juegoDeCaracteresDeOrigen As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
Dim juegoDeCaracteresDeDestino As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
|
|
' Initialize the connection string builder for the underlying provider.
|
|
Dim mySqlBuilder As New MySqlConnectionStringBuilder
|
|
|
|
|
|
' Set the properties for the data source.
|
|
mySqlBuilder.Server = server
|
|
mySqlBuilder.Port = port
|
|
mySqlBuilder.Database = database
|
|
mySqlBuilder.Password = crypt.FEncS(passwordEnc, juegoDeCaracteresDeOrigen, juegoDeCaracteresDeDestino, -875421649)
|
|
mySqlBuilder.UserID = user
|
|
mySqlBuilder.ConnectionTimeout = ConnectionTimeout
|
|
mySqlBuilder.Pooling = Pooling
|
|
mySqlBuilder.SslMode = If(SSL, MySqlSslMode.Required, MySqlSslMode.None)
|
|
If FicheroCertificado <> "" Then mySqlBuilder.CertificateFile = FicheroCertificado
|
|
If ContraseñaCertificado <> "" Then mySqlBuilder.CertificatePassword = ContraseñaCertificado
|
|
Dim providerString As String = mySqlBuilder.ToString()
|
|
Return providerString
|
|
|
|
End Function
|
|
|
|
|
|
|
|
Public Shared Function ObtieneEntityConnectionStringOracle(ByVal server As String, ByVal database As String, ByVal port As String, ByVal user As String, ByVal passwordEnc As String, NombreMetadata As String, Optional Pooling As Boolean = True, Optional SSL As Boolean = False, Optional FicheroCertificado As String = "", Optional ContraseñaCertificado As String = "", Optional ConnectionTimeOut As Integer = 60) As String
|
|
Dim juegoDeCaracteresDeOrigen As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
Dim juegoDeCaracteresDeDestino As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
|
|
' Initialize the connection string builder for the underlying provider.
|
|
Dim Builder As New OracleConnectionStringBuilder
|
|
|
|
|
|
' Set the properties for the data source.
|
|
|
|
Builder.DataSource = server & ":" & port & "/" & database
|
|
|
|
Builder.Password = crypt.FEncS(passwordEnc, juegoDeCaracteresDeOrigen, juegoDeCaracteresDeDestino, -875421649)
|
|
Builder.UserID = user
|
|
Builder.ConnectionTimeout = ConnectionTimeOut
|
|
Builder.Pooling = Pooling
|
|
|
|
' Builder.SslMode = If(SSL, MySqlSslMode.Required, MySqlSslMode.None)
|
|
' If FicheroCertificado <> "" Then Builder.CertificateFile = FicheroCertificado
|
|
' If ContraseñaCertificado <> "" Then Builder.CertificatePassword = ContraseñaCertificado
|
|
|
|
|
|
' Build the SqlConnection connection string.
|
|
Dim providerString As String = Builder.ToString()
|
|
|
|
' Initialize the EntityConnectionStringBuilder.
|
|
Dim entityBuilder As New EntityConnectionStringBuilder()
|
|
|
|
'Set the provider name.
|
|
entityBuilder.Provider = "Oracle.ManagedDataAccess.Client" '"System.Data.EntityClient"
|
|
|
|
' Set the provider-specific connection string.
|
|
entityBuilder.ProviderConnectionString = providerString
|
|
|
|
' Set the Metadata location.
|
|
entityBuilder.Metadata = "res://*/" & NombreMetadata & ".csdl|res://*/" & NombreMetadata & ".ssdl|res://*/" & NombreMetadata & ".msl"
|
|
|
|
|
|
Return entityBuilder.ToString
|
|
|
|
End Function
|
|
Public Shared Function ObtieneEntityConnectionStringOraclePasswordClara(ByVal server As String, ByVal database As String, ByVal port As String, ByVal user As String, ByVal password As String, NombreMetadata As String, Optional Pooling As Boolean = True, Optional SSL As Boolean = False, Optional FicheroCertificado As String = "", Optional ContraseñaCertificado As String = "", Optional ConnectionTimeOut As Integer = 60) As String
|
|
Dim juegoDeCaracteresDeOrigen As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
Dim juegoDeCaracteresDeDestino As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/\-"
|
|
|
|
' Initialize the connection string builder for the underlying provider.
|
|
Dim Builder As New OracleConnectionStringBuilder
|
|
|
|
|
|
' Set the properties for the data source.
|
|
|
|
Builder.DataSource = server & ":" & port & "/" & database
|
|
|
|
|
|
Builder.Password = password
|
|
Builder.UserID = user
|
|
Builder.ConnectionTimeout = ConnectionTimeOut
|
|
Builder.Pooling = Pooling
|
|
' Builder.SslMode = If(SSL, MySqlSslMode.Required, MySqlSslMode.None)
|
|
' If FicheroCertificado <> "" Then Builder.CertificateFile = FicheroCertificado
|
|
' If ContraseñaCertificado <> "" Then Builder.CertificatePassword = ContraseñaCertificado
|
|
|
|
|
|
' Build the SqlConnection connection string.
|
|
Dim providerString As String = Builder.ToString()
|
|
|
|
' Initialize the EntityConnectionStringBuilder.
|
|
Dim entityBuilder As New EntityConnectionStringBuilder()
|
|
|
|
'Set the provider name.
|
|
entityBuilder.Provider = "Oracle.ManagedDataAccess.Client" '"System.Data.EntityClient"
|
|
|
|
' Set the provider-specific connection string.
|
|
entityBuilder.ProviderConnectionString = providerString
|
|
|
|
' Set the Metadata location.
|
|
entityBuilder.Metadata = "res://*/" & NombreMetadata & ".csdl|res://*/" & NombreMetadata & ".ssdl|res://*/" & NombreMetadata & ".msl"
|
|
|
|
|
|
Return entityBuilder.ToString
|
|
|
|
End Function
|
|
|
|
|
|
|
|
Public Shared Function ObtieneEntityConnectionStringMysqlPasswordClara(ByVal server As String, ByVal database As String, ByVal port As String, ByVal user As String, ByVal password As String, NombreMetadata As String, Optional Pooling As Boolean = True, Optional SSL As Boolean = False, Optional FicheroCertificado As String = "", Optional ContraseñaCertificado As String = "") As String
|
|
|
|
|
|
' Initialize the connection string builder for the underlying provider.
|
|
Dim mySqlBuilder As New MySqlConnectionStringBuilder
|
|
|
|
' Set the properties for the data source.
|
|
mySqlBuilder.Server = server
|
|
mySqlBuilder.Port = port
|
|
mySqlBuilder.Database = database
|
|
mySqlBuilder.Password = password
|
|
mySqlBuilder.UserID = user
|
|
mySqlBuilder.ConnectionTimeout = 60
|
|
mySqlBuilder.Pooling = Pooling
|
|
mySqlBuilder.SslMode = If(SSL, MySqlSslMode.Required, MySqlSslMode.None)
|
|
If FicheroCertificado <> "" Then mySqlBuilder.CertificateFile = FicheroCertificado
|
|
If ContraseñaCertificado <> "" Then mySqlBuilder.CertificatePassword = ContraseñaCertificado
|
|
|
|
|
|
' Build the SqlConnection connection string.
|
|
Dim providerString As String = mySqlBuilder.ToString()
|
|
|
|
' Initialize the EntityConnectionStringBuilder.
|
|
Dim entityBuilder As New EntityConnectionStringBuilder()
|
|
|
|
'Set the provider name.
|
|
entityBuilder.Provider = "MySql.Data.MySqlClient"
|
|
|
|
' Set the provider-specific connection string.
|
|
entityBuilder.ProviderConnectionString = providerString
|
|
|
|
' Set the Metadata location.
|
|
entityBuilder.Metadata = "res://*/" & NombreMetadata & ".csdl|res://*/" & NombreMetadata & ".ssdl|res://*/" & NombreMetadata & ".msl"
|
|
|
|
|
|
Return entityBuilder.ToString
|
|
|
|
End Function
|
|
Public Shared Function FechaHoraMySQL(ByVal FechaHora As Date) As String
|
|
Return FechaHora.Year.ToString & FechaHora.Month.ToString.PadLeft(2, "0") & FechaHora.Day.ToString.PadLeft(2, "0") & FechaHora.Hour.ToString.PadLeft(2, "0") & FechaHora.Minute.ToString.PadLeft(2, "0") & FechaHora.Second.ToString.PadLeft(2, "0")
|
|
End Function
|
|
Public Shared Function FechaMySQL(ByVal FechaHora As Date) As String
|
|
Return FechaHora.Year.ToString & FechaHora.Month.ToString.PadLeft(2, "0") & FechaHora.Day.ToString.PadLeft(2, "0")
|
|
End Function
|
|
Public Shared Function AhoraMysql(bd As System.Data.Objects.ObjectContext) As DateTime
|
|
Try
|
|
Dim FechaServidor As DateTime = bd.ExecuteStoreQuery(Of DateTime)("select now() as Ahora").First
|
|
Return FechaServidor
|
|
Catch ex As Exception
|
|
Return Now
|
|
End Try
|
|
End Function
|
|
Public Shared Function ObtieneIPMysql(bd As System.Data.Objects.ObjectContext) As String
|
|
Dim sConexion As String = bd.ExecuteStoreQuery(Of String)("select host from information_schema.processlist WHERE ID=connection_id()").First
|
|
Dim sIP As String = sConexion.Split(":")(0)
|
|
Return sIP
|
|
End Function
|
|
Public Shared Function ObtieneIPSqlServer(bd As System.Data.Objects.ObjectContext) As String
|
|
Dim sConexion As String = bd.ExecuteStoreQuery(Of String)("SELECT client_net_address FROM sys.dm_exec_connections WHERE session_id = @@SPID").First
|
|
Return sConexion
|
|
End Function
|
|
|
|
Public Shared Function AhoraSqlServer(bd As ObjectContext) As DateTime
|
|
Try
|
|
Dim FechaServidor As DateTime = bd.ExecuteStoreQuery(Of DateTime)("select SYSDATETIME() as Ahora").First
|
|
Return FechaServidor
|
|
Catch ex As Exception
|
|
Return Now
|
|
End Try
|
|
End Function
|
|
End Class
|