powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как хранить версию базы?
2 сообщений из 2, страница 1 из 1
Как хранить версию базы?
    #32252404
Elias
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У приложения есть база, с которой оно работает (база Access .mdb). Приложение и база меняются, соответстенно они бывают разных версий.
Может возникнуть проблема в экспорте/импорте базы (на самом деле архивировании/восстановлении, но это не суть важно), если программа проимпортирует базу не той версии. Следовательно возникает задача хранения версии базы в базе.

Мне на ум приходит только создать табличку в базе с одним полем - версией и одной записью. Поделитесь мыслями - есть ли недостатки у такого подхода и возможны ли другие варианты хранения версии в базе.
...
Рейтинг: 0 / 0
Как хранить версию базы?
    #32253661
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы предложил хранить версию базы в свойствах самой базы.
File>Database Properties вкладка Custom, в поле Name пишем "DB Version" ставим тип "Number" и всякий раз увеличиваем это значение.

А вот процедурка которая проверяет это свойство:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Public Function HasToBeRefreshed() As Boolean
Dim wrk As Workspace
Dim dbs As DataBase, cnt As Container
Dim doc As Document, prp As Property
Dim lngVersionOnServer As Long
Dim lngVersionOnC As Long

Const conPropertyNotFound =  3270     ' Property not found error.

On Error GoTo SetCustom_Err
    Set wrk = DBEngine.CreateWorkspace( "", " Admin ", "  ")
    
    Set dbs = wrk.OpenDatabase(" C:\MyDatabase.mdb ") 
    Set cnt = dbs.Containers!Databases  
    Set doc = cnt.Documents!UserDefined 
    Set prp = doc.Properties(" DB Version ")
    
    lngVersionOnC = prp.Value
    
    Set dbs = wrk.OpenDatabase(" \\Server\MyDatabase.mdb ") 
    Set cnt = dbs.Containers!Databases  
    Set doc = cnt.Documents!UserDefined 
    Set prp = doc.Properties(" DB Version ")
    
    lngVersionOnServer = prp.Value
    
    Set prp = Nothing
    Set doc = Nothing
    Set cnt = Nothing
    Set dbs = Nothing
    
    Set wrk = Nothing
    
    HasToBeRefreshed = (lngVersionOnServer > lngVersionOnC)

    Exit Function

SetCustom_Err:
    Beep
    If Err = conPropertyNotFound Then
        MsgBox " There is no information of the DB Version.", vbExclamation
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
    HasToBeRefreshed = False
End Function
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как хранить версию базы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]