Access 2007 SCM через несколько баз данных - PullRequest
1 голос
/ 14 апреля 2011

Я ищу способ реализации SCM для нескольких баз данных Access 07.Нам просто нужен контроль исходного кода для форм / кода.

По сути, у нас есть более 100 баз данных, которые имеют одинаковую структуру, используют один и тот же код / ​​модули, но каждая содержит данные только для одного клиента.Когда мы вносим изменения в код, нам необходимо вручную просмотреть каждый файл, чтобы внести изменения.

Кто-нибудь реализовал управление исходным кодом для чего-то подобного (да поможет вам Бог) или у вас есть идеи?

PS - Я понимаю, что здесь много DailyWTFery, это устаревший продуктПеред тем как мы переписываем на .NET / MSSQL, мне было поручено выполнить какое-то неотложное обслуживание, но я думаю, что есть достаточно работы, чтобы оправдать это, если это возможно.

1 Ответ

2 голосов
/ 15 апреля 2011

Вы можете узнать больше, как сделать SCM в этот вопрос ;он включает в себя экспорт и импорт кода и форм с использованием некоторых недокументированных (или плохо документированных) команд.Я также вспоминаю проблемы с контрольными суммами или номерами версий, возникающие при использовании этого метода.

Однако вы можете решить большую часть этой проблемы, разделив данные и стороны приложения БД на отдельные файлы, а затем добавивтаблица ссылок на данные БД из БД приложения.Тогда у вас будет только одна прикладная БД и куча БД данных клиента.

Переключение на другой клиент так же просто, как повторное связывание с другой БД.

Это можно сделать вручнуюили закодируйте его со структурой примерно так:

Dim myTable As TableDef
Dim db As Database
dim strDBPath as string

strDBPath = ";DATABASE=C:\workbench\MyNewDB.mdb"

Set db = CurrentDb
db.TableDefs.Refresh
For Each myTable In db.TableDefs
    If Len(myTable.Connect) > 0 Then
        myTable.Connect = strDBPath 
        myTable.RefreshLink
    End If
Next

'' Note: This whips through every table in your database and re-links it to the new
''       DB. ODBC links will have a different value for strDBPath - I'll leave that as
''       and exercise for the reader
...