Converted by http://www.developerfusion.com/tools/convert/csharp-to-vb/


Imports System.Data

Imports DevExpress.Xpo.DB

Imports DevExpress.Xpo.DB.Helpers

Imports System.Data.OleDb

Imports System.Threading

Imports DevExpress.Persistent.Base



Namespace WinSolution.Win

	Public Class MyAccessConnectionProvider
		Inherits AccessConnectionProvider

		Public Sub New(connection As IDbConnection, autoCreateOption As AutoCreateOption)
			MyBase.New(connection, autoCreateOption)
		End Sub

		Public Overrides Function ComposeSafeColumnName(columnName As String) As String

			Return MyBase.ComposeSafeColumnName(columnName).ToUpper(Thread.CurrentThread.CurrentCulture)

		End Function

		Public Overrides Function ComposeSafeTableName(tableName As String) As String

			Return MyBase.ComposeSafeTableName(tableName).ToUpper(Thread.CurrentThread.CurrentCulture)

		End Function

		Public Shared Shadows Function CreateProviderFromString(connectionString As String, autoCreateOption As AutoCreateOption, ByRef objectsToDisposeOnDisconnect As IDisposable()) As IDataStore

			Dim connection As IDbConnection = New OleDbConnection(connectionString)

			objectsToDisposeOnDisconnect = New IDisposable() {connection}

			Return CreateProviderFromConnection(connection, autoCreateOption)

		End Function

		Public Shared Shadows Function CreateProviderFromConnection(connection As IDbConnection, autoCreateOption As AutoCreateOption) As IDataStore


			If DirectCast(connection, System.Data.OleDb.OleDbConnection).Provider.StartsWith("Microsoft.Jet.OLEDB") OrElse DirectCast(connection, System.Data.OleDb.OleDbConnection).Provider.StartsWith("Microsoft.ACE.OLEDB") Then

				Return New MyAccessConnectionProvider(connection, autoCreateOption)
			Else


				Return Nothing
			End If

		End Function

		Public Shared Shadows Function GetConnectionString(database As String, userid As String, password As String) As String

			Return [String].Format("{3}={4};Provider=Microsoft.Jet.OLEDB.4.0;Mode=Share Deny None;data source={0};user id={1};password={2};", database, userid, password, DataStoreBase.XpoProviderTypeParameterName, XpoProviderTypeString)

		End Function

		Public Shared Shadows Sub Register()

			Try


				DataStoreBase.RegisterDataStoreProvider(XpoProviderTypeString, New DataStoreCreationFromStringDelegate(AddressOf CreateProviderFromString))
			Catch e As ArgumentException

				Tracing.Tracer.LogText(e.Message)


				Tracing.Tracer.LogText("A connection provider with the same name ( {0} ) has already been registered", XpoProviderTypeString)
			End Try

		End Sub

		Public Overrides Function ComposeSafeConstraintName(constraintName As String) As String

			Return MyBase.ComposeSafeConstraintName(constraintName).ToUpper(Thread.CurrentThread.CurrentCulture)

		End Function

		Public Shadows Const XpoProviderTypeString As String = "MyMSAccess"

	End Class

End Namespace