Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Линк таблиц в mdb хранилище кодом / 5 сообщений из 5, страница 1 из 1
10.01.2013, 18:37
    #38105396
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линк таблиц в mdb хранилище кодом
Доброго времени суток!

Суть проблемы: есть написанная программа филиальная ее часть выполнена на VB и базка к ней на mdb. В базке есть некий справочник, изначально заказчик просил сделать его заполняемым силами пользователя. По прошествии некоторого времени эксплуатации, заказчик решил расширить справочник(добавить поля) и сделать его единым. Т.е. заполняется он в офисе и потом рассылается по филиалам. Проблема в том что справочник должен быть регулярно обновляемым и имеет тенденцию к росту числа записей. На текущий момент он имеет порядка 300 тыс записей. за раз обновляется порядка 20 тыс существующих и добавляется порядка 3-4 тыс новых записей. Плюс первый раз его соответственно неплохо бы прогрузить полностью.

Решение с импортом данных в лоб не прокатывает т.к. только первичный импорт раздувает базу с 50 Мб до 500-600 МБ. Делать регулярное сжатие базы не хотелось бы, т.к. бывают инциденты с потерей данных. Пришел к решению высылать готовый справочник в дополнительной mdb и прилинковать ее к существующей базке (предварительно старый справочник переименовать).

Вот в чем заковыка для использования DAO и ADOX надо в референсы включать соответствующие библиотеки и я так понимаю регистрировать их на клиентском месте. У пользователей ИТ специалистов может не быть в принципе. Полноценное обновление написать я почести пока наверное не смогу. Могу ли я прилинковать таблицу используя ADODB ?
...
Рейтинг: 0 / 0
10.01.2013, 18:56
    #38105419
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линк таблиц в mdb хранилище кодом
Alex_men...
Вот в чем заковыка для использования DAO и ADOX надо в референсы включать соответствующие библиотеки и я так понимаю регистрировать их на клиентском месте. У пользователей ИТ специалистов может не быть в принципе. Полноценное обновление написать я почести пока наверное не смогу. Могу ли я прилинковать таблицу используя ADODB ?
>> DAO и ADOX надо в референсы включать соответствующие библиотеки и я так понимаю регистрировать их на клиентском месте.

можно и не включать, а пользоватся поздним связыванием
регистрировать (по крайней мере ADOX), тоже не прийдётся - ADOX, так же как и АДО включена в MDAC и если "работает" одно - то будет "работать" и 2-ое

>> Могу ли я прилинковать таблицу используя ADODB

вот как раз для этого АДО и было дополнено ADOX-ом
т.е. "прилинковать таблицу используя ADODB" === "прилинковать таблицу используя ADOX"

но, вообще вы можете поступить проще,
создать в БД1, сохранённый запрос, который будет использовать этот справочник из БД2,
и работать с ним как с обычной таблицей
в коннекшине к БД1 выполните
Код: sql
1.
2.
create view vСправочник
as select * from Справочник in 'путь и имя БД2'
...
Рейтинг: 0 / 0
10.01.2013, 19:09
    #38105433
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линк таблиц в mdb хранилище кодом
qwerty112,

Спасибо завтра с утра буду пробовать.

С create Viev при открытии коннекшена не прокатит т.к. в имеющейся mdb есть сохраненые запросы которые используют этот справочник.

Хотя я далеко не все знаю, т.к. тут и швец и жнец и на дуде игрец.
Можно открыть коннекшен 1 раз на всю программу и не будет глюков? Я как то использую коннекшен внутри конкретного класса. т.е. для формы 1 у меня cn1 для формы 2 - cn2 соответственно.
...
Рейтинг: 0 / 0
10.01.2013, 22:52
    #38105644
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линк таблиц в mdb хранилище кодом
Alex_menС create Viev при открытии коннекшена не прокатит т.к. в имеющейся mdb есть сохраненые запросы которые используют этот справочник.
1
я ничего не говорил про "при открытии коннекшена",
сказано - "в коннекшине к БД1 выполните", 1-ин раз
2
>> в имеющейся mdb есть сохраненые запросы которые используют этот справочник

тоже не проблема,
"Справочник" в БД1 - переименовуете (в "Справочник128")
а вью делаете такое
Код: sql
1.
2.
create view Справочник
as select * from Справочник in 'путь и имя БД2'


т.е. с таким именем, как была таб.-справочник до этого,
в итоге, все "сохраненые запросы которые используют этот справочник" - будут использовать вместо справочника вот это вью
...
Рейтинг: 0 / 0
11.01.2013, 09:45
    #38105876
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линк таблиц в mdb хранилище кодом
qwerty112,

Огромное спасибо за помощь! Все получилось. И с прошедшими Вас праздниками!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Линк таблиц в mdb хранилище кодом / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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