|
|
Attribute VB_Name = "Main" Option Explicit
Private Const DB_VERSION_C As String = "DBVersion" Private Const OPERATORS_AND_C As String = "OperatorsAnd" Private Const OPERATORS_OR_C As String = "OperatorsOr" Private Const OPERATORS_NOT_C As String = "OperatorsNot" Private Const AUTHORING_GROUP_C As String = "AuthoringGroup" Private Const LOCK_KEYWORDS_C As String = "LockKeywords" Private Const LOCK_STOP_SIGNS_C As String = "LockStopSigns" Private Const LOCK_STOP_WORDS_C As String = "LockStopWords" Private Const LOCK_SYNONYMS_C As String = "LockSynonyms" Private Const LOCK_SYNONYM_SETS_C As String = "LockSynonymSets" Private Const LOCK_TAXONOMY_C As String = "LockTaxonomy" Private Const LOCK_TYPES_C As String = "LockTypes" Private Const MINIMUM_KEYWORD_VALIDATION_C As String = "MinimumKeywordValidation"
Private Const AUTHORING_GROUP_VALUE_C As Long = 10001
Private p_cnn As ADODB.Connection
Public Sub MainFunction( _ ByVal i_strDatabaseIn As String, _ ByVal i_strDatabaseOut As String _ ) On Error GoTo LError
Dim FSO As Scripting.FileSystemObject Dim rs As ADODB.Recordset Dim strQuery As String Dim strVersion As String Dim strAnd As String Dim strOr As String Dim strNot As String
Set FSO = New Scripting.FileSystemObject
If (Not FSO.FileExists(i_strDatabaseIn)) Then Err.Raise E_FAIL, , "File " & i_strDatabaseIn & " does not exist" End If
FSO.CopyFile i_strDatabaseIn, i_strDatabaseOut
Set p_cnn = New ADODB.Connection
p_cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & i_strDatabaseOut & ";"
Set rs = New ADODB.Recordset
strQuery = "UPDATE Taxonomy SET Username = ""Microsoft"", Comments = """"" rs.Open strQuery, p_cnn, adOpenStatic, adLockPessimistic
strVersion = p_GetParameter(DB_VERSION_C) strAnd = p_GetParameter(OPERATORS_AND_C) strOr = p_GetParameter(OPERATORS_OR_C) strNot = p_GetParameter(OPERATORS_NOT_C)
strQuery = "DELETE * FROM DBParameters" rs.Open strQuery, p_cnn, adOpenStatic, adLockPessimistic
p_SetParameter AUTHORING_GROUP_C, AUTHORING_GROUP_VALUE_C p_SetParameter DB_VERSION_C, strVersion p_SetParameter OPERATORS_AND_C, strAnd p_SetParameter OPERATORS_OR_C, strOr p_SetParameter OPERATORS_NOT_C, strNot p_SetParameter LOCK_KEYWORDS_C, "False" p_SetParameter LOCK_STOP_SIGNS_C, "False" p_SetParameter LOCK_STOP_WORDS_C, "False" p_SetParameter LOCK_SYNONYMS_C, "False" p_SetParameter LOCK_SYNONYM_SETS_C, "False" p_SetParameter LOCK_TAXONOMY_C, "False" p_SetParameter LOCK_TYPES_C, "False" p_SetParameter MINIMUM_KEYWORD_VALIDATION_C, "False"
p_cnn.Close
p_CompactDatabase i_strDatabaseOut
LEnd:
Exit Sub
LError:
frmMain.Output Err.Description, LOGGING_TYPE_ERROR_E Err.Raise Err.Number
End Sub
Public Function p_GetParameter( _ ByVal i_strName As String _ ) As Variant
Dim rs As ADODB.Recordset Dim strQuery As String Dim str As String
str = Trim$(i_strName)
p_GetParameter = Null
Set rs = New ADODB.Recordset
strQuery = "" & _ "SELECT * " & _ "FROM DBParameters " & _ "WHERE (Name = '" & str & "');"
rs.Open strQuery, p_cnn, adOpenForwardOnly, adLockReadOnly
If (Not rs.EOF) Then p_GetParameter = rs("Value") End If
End Function
Private Sub p_SetParameter( _ ByVal i_strName As String, _ ByRef i_vntValue As Variant _ )
Dim rs As ADODB.Recordset Dim strQuery As String Dim str As String
str = Trim$(i_strName)
Set rs = New ADODB.Recordset
strQuery = "" & _ "SELECT * " & _ "FROM DBParameters " & _ "WHERE (Name = '" & str & "');"
rs.Open strQuery, p_cnn, adOpenForwardOnly, adLockPessimistic
If (rs.EOF) Then rs.AddNew rs("Name") = i_strName End If
rs("Value") = i_vntValue rs.Update
End Sub
Public Sub p_CompactDatabase( _ ByVal i_strDatabase As String, _ Optional ByVal lcid As Long = 1033 _ ) Dim je As New JRO.JetEngine Dim FSO As Scripting.FileSystemObject Dim strTempFile As String
Set FSO = New Scripting.FileSystemObject
strTempFile = Environ$("TEMP") & "\" & FSO.GetTempName
je.CompactDatabase _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & i_strDatabase & ";", _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & strTempFile & ";" & _ "Locale Identifier=" & lcid & ";"
FSO.DeleteFile i_strDatabase FSO.MoveFile strTempFile, i_strDatabase
End Sub
|