|
|
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
Как сделать хорошо и правильно? Опять хочется хорошую функцию. Условия: 1. не зависимую от задачи; 1. Должна проверять наличие всех связанных таблиц (не все таблицы, как в примере у Гетца, живут в одном файле); 2. Не должна на время проверки "замораживать компьютер". Проверять таблицы по мере загрузки форм/запросов и пр., к ним обращающиеся - идея заведомо утопическая. Пробежаться по всем подформам/спискам какой-нибудь формы (не говоря о том, что текст какого-нибудь запроса легко может оказаться и в коде) может занять еще больше времени, чем проверить все возможные связанные таблицы (а их тоже может быть несколько сотен). Вывести заставку, и нехай пользователь все-таки ждет, пока она все проверит? Или кто-то делает иначе? Поделитесь, кому не жалко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 19:28 |
|
||
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
позволю себе себя процитировать поскольку искать лень. сервис-параметры-вид-системные объекты=галочка-ОК таблицы-MSysObjects-колонка Databases ---- вся информация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 19:36 |
|
||
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
2вадя Неправильный ответ. Счет 1:0 в пользу теле... знатоков! :)) Шутка. Это, конечно, хорошо. Но таким способом не проверишь возможность отсутствия таблицы в наличествующем файле. Способов добиться подобной ситуации куча, например обновить клиентский файл, не обновив файл базы, когда в последний добавлена новая таблица. Не дай бог забудешь и уедешь от клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 19:44 |
|
||
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
ты хочешь обрубить все связи и не запоминать что ты обрубил. ну чтож флаг в руки, проще скопировать имена таблиц из этой таблици в отдельную табличку , местную. и жить спокойно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 19:55 |
|
||
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
Не хочу обрубить связи всех таблиц. Хочу проверить, не обрубились ли они, например, в результате изменения конфигурации сети. А какой смысл хранить имена таблиц и путь к их БД в локальной табличке, если все равно надо проверить, не просто есть ли такой файл, а есть ли в нем такая таблица? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 20:04 |
|
||
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
есть книжка по А95: чтоб проверить целостность связи, просто обратитесь к любому из свойств таблицы и выловите произошедшую при этом ошибку. ошибка 3265 - элемент этого семейства не найден. делаешь функ. с вх параметром имена таблиц из таблики (см выше) и проверяешь их все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 20:21 |
|
||
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
чтоб проверить целостность связи, просто обратитесь к любому из свойств таблицы и выловите произошедшую при этом ошибку. ошибка 3265 - элемент этого семейства не найден. делаешь функ. с вх параметром имена таблиц из таблики (см выше) и проверяешь их все. Функция 2. Не должна на время проверки "замораживать компьютер". . В то же время, проверить все возможные связанные таблицы (а их тоже может быть несколько сотен). займет уйму ресурсов. М.б. это и единственный способ, не знаю, а вдруг?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 20:45 |
|
||
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
если у тебя прога работает значит связи есть. а проверку делают при запуске . а проверяется сетевой ресурс - уж это отдельная пестня. а проверять все таблицы на связь не стоит. если у тебя несколько разнесенных баз - проверь по одной таблицы с каждой базы. а если у тебя сетевой кооннект есть, то проверка на наличие таблицы многа время не потребует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 21:04 |
|
||
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
а проверку делают при запуске . Видимо, все-таки да. а проверять все таблицы на связь не стоит. если у тебя несколько разнесенных баз - проверь по одной таблицы с каждой базы. "Но таким способом не проверишь возможность отсутствия таблицы в наличествующем файле. <...>, например обновить клиентский файл, не обновив файл базы, когда в последний добавлена новая таблица." а если у тебя сетевой кооннект есть, то проверка на наличие таблицы многа время не потребует. 200 таблиц из 3-х файлов (которые к этому времени могут быть открыты другим(и) пользователем(лями)) открыть и закрыть - недолго? Я не тормоз. В топике про переменные тоже все "топали ногами и подписывали указы" ((с) Шрек), а потом пришел Нуф-Нуф и всех победил :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 21:39 |
|
||
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
ну тут надо разбить на две задачи. 1. установливание обновленной проги 2. проверка конекта к базам(таблицам) а если ты добавляешь новую таблицу, то в предыдущей версии проги она нужна как собаке пятая нога. ну можно прилинковать таблицу MSysObjects из базовой части и сравнить имена таблиц из таблицы MSysObjects клиентской части разница - отпавшие таблицы (если ты знаешь что все таблицы должны быть прилинкованы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 22:03 |
|
||
|
Восстановление связей с таблицами
|
|||
|---|---|---|---|
|
#18+
а если ты добавляешь новую таблицу, то в предыдущей версии проги она нужна как собаке пятая нога. Это да. А если меняю структуру существующей? И предыдущая версия на этом спотыкаться будет. " Если таблички можно переприсоединить (и даже юзеру такую возможность дать), то при изменении пути к аксесовской базе придется перекомпилять приложение. " (с) Лох Позорный Опять же случай. Одинаковые базы стоят у разных клиентов. Можно создать сетевые диски с одинаковой буковкой Z, а еще лучше, если программа однопользовательская сделать какой-нить Subst Z: c:\blalba\. А если нельзя. Клиент уперся рогом и говорит, что программа должна со всеми прибамбасами лежать на рабочем столе? Каждый раз при обновлении программы сидеть и ручками перепроверять ссылки? Или легче отправить, например, по почте клиентскую программу, и, если что, она сама скажет, типа, не доделали вам прогу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 22:15 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32217495&tid=1680318]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 485ms |

| 0 / 0 |
