|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Здравствуйте! Делаю следующее. Программно формирую отношения (Relations) между таблицами. Все выполняется хорошо. Теперь нужно, чтобы эти Relations проявились в схеме данных. Также программно. Если это требуется в текущей БД, то делаю так Код: vbnet 1. 2. 3. 4. 5. 6.
При этом происходит мгновенное мелькание, так как окно схемы данных открывается-обновляется-сохраняется-закрывается. В связи с этим такие вопросы: 1. Есть ли способ программной визуализации новых Relations лучше/правильнее представленного? Если есть, то какой? 2. Этот способ визуализации новых Relations не подходит, если работа выполняется в отношении другой, внешней БД, определенной через Код: vbnet 1.
Как быть в этом случае? Есть ли возможность программно воздействовать на схему данных во внешней БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 11:46 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__MichelleПри этом происходит мгновенное мелькание, может достаточно будет тот код с DoCmd "заключить" в Код: vbnet 1. 2. 3.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 12:04 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Echo,, Да при чем тут это? Мигание я упомянула для обрисовки общей картины. Его практически нет. Суть вопроса в другом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 12:07 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Поясню. Суть вопроса - как работать со схемой данных программно без имитации ручных действий . ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 12:16 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__MichelleEcho,, Да при чем тут это? Мигание я упомянула для обрисовки общей картины. Его практически нет. Суть вопроса в другом.таа, "суть вопроса" - понятна Непонятна "суть ответа" :) Relationships Window - это "составная часть" Акцесса (как какое-нибудь меню или форма) Поэтому про п.2 - просто смешно говорить! - Открываете свою "внешнюю БД" в Акцессе и делаете всё тоже, что и НЕ во внешней. по п.1 - вполне нормальный вариант. Лучше Акс не предоставляет :) пс хуже - есть , но Вам не понравится ... даа и "несработало" на А2010 у меня, видимо класс Relationships Window уже не "OSysRel" ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:03 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Echo,... даа и "несработало" на А2010 у меня, видимо класс Relationships Window уже не "OSysRel" вдруг кто захочет поиграться нужно в вызове Код: vbnet 1.
заменить "Relationships" на тайтл формы в своей локализации, или просто vbNullString Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:45 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Echo,, Спасибо большое. Простите за молчание. Пока другие дела. Надо подумать, потом отвечу. Про Лебанса тут https://bytes.com/topic/access/answers/502925-access-relationships-window-proper-layout видела, но саму штуку пока не смотрела. Может, это и есть у Лебанса, но вдруг Вы знаете по-другому - как программно выстраивать элементы в окне схемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 15:02 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__MichelleМожет, это и есть у Лебанса, но вдруг Вы знаете по-другому - как программно выстраивать элементы в окне схемы? Да, в A2KSave-Restore-Modify-RelationshipWindowLayoutver9.mdb, функция RestoreLayout в модуле формы. Там, правда, элементы выстраиваются по хранящимся в таблице координатам, но ничего не мешает их "строить" просто по какой-то логике, - от 1 к М ... но всё на ВинАПИ, предупреждаю :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 15:18 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Echo,Да, в A2KSave-Restore-Modify-RelationshipWindowLayoutver9.mdb, функция RestoreLayout в модуле формы. Там, правда, элементы выстраиваются по хранящимся в таблице координатам, но ничего не мешает их "строить" просто по какой-то логике, - от 1 к М ... но всё на ВинАПИ, предупреждаю :)Посмотрела, наконец, хоть и бегло. Спасибо-спасибо! Очень понравилось.))) API не пугают, приходилось применять. Тут разобраться можно, думаю. Каждому прямоугольничку дескриптор окна присваивается и задаются координаты и размеры? Про основное потом... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 19:55 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Echo,Relationships Window - это "составная часть" Акцесса (как какое-нибудь меню или форма) Поэтому про п.2 - просто смешно говорить! - Открываете свою "внешнюю БД" в Акцессе и делаете всё тоже, что и НЕ во внешней. Вот как раз и не хотелось открывать новый Application. Думала, можно как-то добраться и через DBEngine.OpenDatabase, тем более, что новые Relations во "внешней БД" таким образом прекрасно создаются: DBEngine —> Workspaces —> Databases —> Relations. И картинка схемы БД ведь строится по какому-то где-то хранящемуся описанию, то есть признак "Отобразить все" где-то проставляется. Вот до него и хотелось добраться программно.))) Ну, что ж. Нельзя, так нельзя. Вот так, конечно, все получается Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Только обязательно Application.Visible = True, иначе отработает без ошибок, но изменения схемы не сохранит. Echo,, а почему это "про п.2 - просто смешно говорить!", а не уметь убрать мерцание (как Вы про меня сначала подумали) не смешно?))) Echo,, еще раз большое спасибо за участие и очень полезную информацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 12:03 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Возникли попутно еще некоторые вопросы, относятся к Relations. Для новой темы, наверное, маловато, и, вообще, чистая теория, задам здесь. Влияет ли, и если влияет, то как, наличие связей на скорость обработки? Вот, например, есть основная таблица и ряд справочников, связанных с основной отношением 1 (справочник - счетчик) : М (осн.табл. - дл.целое). При этом задавать обеспечение целостности данных смысла нет ни для изменения, ни для удаления (невозможность удаления из справочника используемого значения обеспечивается программно в другом месте). В запросах нужные значения из справочников подтягиваются через JOIN'ы. И фактически прорисованные в схеме данных связи играют чисто иллюстративную роль. Но не вредят ли, не тормозят ли где-нибудь? Или, наоборот, ускоряют? Или вот. Основная таблица и ряд детализирующих таблиц. Тут уже отношения 1 (осн.табл. - счетчик) : М (детал.табл. - дл.целое). И каскадное удаление связанных записей. Но каскадное обновление смысла, очевидно, не имеет. Однако, по ошибке или по инерции задано. Влияет ли наличие этого ненужного каскадного обновления на скорость обработки? Нужно ли его вычистить или все равно? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 12:34 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__MichelleВозникли попутно еще некоторые вопросы, относятся к Relations. Для новой темы, наверное, маловато, и, вообще, чистая теория, задам здесь. Влияет ли, и если влияет, то как, наличие связей на скорость обработки? Вот, например, есть основная таблица и ряд справочников, связанных с основной отношением 1 (справочник - счетчик) : М (осн.табл. - дл.целое). При этом задавать обеспечение целостности данных смысла нет ни для изменения, ни для удаления (невозможность удаления из справочника используемого значения обеспечивается программно в другом месте). В запросах нужные значения из справочников подтягиваются через JOIN'ы. И фактически прорисованные в схеме данных связи играют чисто иллюстративную роль. Но не вредят ли, не тормозят ли где-нибудь? Или, наоборот, ускоряют? Или вот. Основная таблица и ряд детализирующих таблиц. Тут уже отношения 1 (осн.табл. - счетчик) : М (детал.табл. - дл.целое). И каскадное удаление связанных записей. Но каскадное обновление смысла, очевидно, не имеет. Однако, по ошибке или по инерции задано. Влияет ли наличие этого ненужного каскадного обновления на скорость обработки? Нужно ли его вычистить или все равно? Никогда не создаю схему данных. Почему? Отвечаю: 1 Под ногами сразу же начинает мыкаться такое понятие как каскадное удаление и прочаяя внутренняя мишура Accessa, что очень томозит ядро. 2 Связи только на уровне запросов и то программных, не сохраненных. 3 Чтобы показать схему данных заказчику (если он конечно понимает) делаю в Visio С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 13:42 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
ROI, Спасибо. Интересно. Тоже вот постепенно возникают сомнения в необходимости прорисовывания связей. Если все в программе аккуратно отслеживать, то и без них все получается. Но действительно ли они скорее вредны? Запросы тоже предпочитаю формировать программно, хоть и считается, что сохраненные как-то там оптимизируются. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 14:11 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
__MichelleROI, Спасибо. Интересно. Тоже вот постепенно возникают сомнения в необходимости прорисовывания связей. Если все в программе аккуратно отслеживать, то и без них все получается. Но действительно ли они скорее вредны? Запросы тоже предпочитаю формировать программно, хоть и считается, что сохраненные как-то там оптимизируются. Да действительно они вредны. Это есть у Гетца. Изюменка в том, что ядро очень сильно на них отвлекается (ну очень ). Это поверка целостности и корректности связей преславутая возможность каскадного удаления и прочее прочее (отслеживание изменений название полей). В общем гадость редкостная (тормоза и глюки редкостные) С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 14:36 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
ROI__MichelleROI, Спасибо. Интересно. Тоже вот постепенно возникают сомнения в необходимости прорисовывания связей. Если все в программе аккуратно отслеживать, то и без них все получается. Но действительно ли они скорее вредны? Запросы тоже предпочитаю формировать программно, хоть и считается, что сохраненные как-то там оптимизируются. Да действительно они вредны. Это есть у Гетца. Изюменка в том, что ядро очень сильно на них отвлекается (ну очень ). Это поверка целостности и корректности связей преславутая возможность каскадного удаления и прочее прочее (отслеживание изменений название полей). В общем гадость редкостная (тормоза и глюки редкостные) С уважением. В настройках базы отключаю это все. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 14:43 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
ROI__MichelleROI, Спасибо. Интересно. Тоже вот постепенно возникают сомнения в необходимости прорисовывания связей. Если все в программе аккуратно отслеживать, то и без них все получается. Но действительно ли они скорее вредны? Запросы тоже предпочитаю формировать программно, хоть и считается, что сохраненные как-то там оптимизируются. Да действительно они вредны. Это есть у Гетца. Изюменка в том, что ядро очень сильно на них отвлекается (ну очень ). Это поверка целостности и корректности связей преславутая возможность каскадного удаления и прочее прочее (отслеживание изменений название полей). В общем гадость редкостная (тормоза и глюки редкостные) С уважением. Работаю на Access 2010. Все устраивает (нарадоваться не могу). Одна только цветовая гамма чего стоит (как вспомню 2003 и XP вырви глаз из 16 цветов) Ну, а распределение контролов по сетке как на WEB странице и которые сами масштабируются. Ну, а формы навигации (не надо панель меню отдельно создавать ) Много хорошего могу сказать (добротный инструмент) С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 14:53 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Даа... Пора покупать девочке sql-сервер. Как быстро летит время... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 17:55 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Ну-да, ну-да. В реляционных базах данных эти самые "реляции" абсолютно бесполезная веcчь. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 19:01 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
PredeclaredНу-да, ну-да. В реляционных базах данных эти самые "реляции" абсолютно бесполезная веcчь. :)Да вот потому и вопросы возникают, что, по идее, полезная, но некоторые моменты неясны мне. Не могли бы Вы высказать свое мнение вот по этому 19380114 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 19:18 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
ROIДа действительно они вредны. Это есть у Гетца. Изюменка в том, что ядро очень сильно на них отвлекается (ну очень ). Это поверка целостности и корректности связей преславутая возможность каскадного удаления и прочее прочее (отслеживание изменений название полей). В общем гадость редкостная (тормоза и глюки редкостные) - мое мнение абсолютно диаметрально противоположное... - не знаю чё там у Гетца по этому поводу (и хотелось бы поконкретнее, а не просто, что это есть)... - я с этим столкнулся конкретно на практике и на приличных объемах... - Был у меня хозяйтсвенный магазин среднего размера, работал как часы года три, за это время несколько раз менялись хозяева (перепродажа бизнеса) и вот наконец пришло руководство с иконой 1С - решили перейти на этого бренда, нашли контору, которая согласилась из моей программы перенести все остатки и продажи за текущий год (6 месяцев) и типа плавно за ! 300 000 р (с учетом всех работ) перейти на 1С... и вот пробил час - открыли магазин, побибикали пол часа в 1С и поняли. что это тормоза, что результат продаж только в конце смены (у меня всё онлайн) и что моя трех летка летает в онлайне как пуля по сравнению с их полугодовалой черепахой... - в общем, внедрятели уехали ни с чем, а бабло то уже съедено, через месяц хозяева в суд, разрабы опять на неделю в магазин на доработку, потом мне хозяева звонят и говорят типа подъедь, есть вопросы... - короче в договоре с разрабами был пункт, что внедряемое ПО должно быть не хуже по возможностям и производительности чем существующее (моё) - а вопрос в том, что их по работает медленно, а моё теперь стало работать еще медленнее чем их, и типа, что делать теперь, бабки заплатили, а стало хуже в общем и целом... - оказалось всё просто - их программер взял и тупо почикал основные связи по веткам прихода и продажи, а индексированные ключи-счетчики сделал просто счетчиками... и оказалось что все запросы на базе нескольких таблиц превратились тупо в телеги с несмазанными колесами... часа два провозился, пока всё восстановил и опять всё полетело и зашуршало... - чтобы все это стало очевидно, нужно юзать базу по сетке с объемом записей в таблицах от 100 000 шт. и выше... + при нормальной схеме с полными связями гарантировано не будет мусора (хотите вы этого или нет) Ну а дальше каждый решает сам... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 19:47 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
vmag, По сети работает. Есть таблица с 200 000 записей (самая большая по числу записей, но не по количеству полей). Связи все есть. И индексы. Меня интересуют детали отношений. В частности Влияет ли наличие этого ненужного (и которое никогда не произойдет, потому что PK - счетчик) каскадного обновления на скорость обработки? Необходимо ли его вычистить или все равно? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 20:10 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
vmagROIДа действительно они вредны. Это есть у Гетца. Изюменка в том, что ядро очень сильно на них отвлекается (ну очень ). Это поверка целостности и корректности связей преславутая возможность каскадного удаления и прочее прочее (отслеживание изменений название полей). В общем гадость редкостная (тормоза и глюки редкостные) - не знаю чё там у Гетца по этому поводу (и хотелось бы поконкретнее, а не просто, что это есть)...Да. Присоединяюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 20:12 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
vmag, Там восклицательный знак, а выглядит как миллион триста тысяч.))) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 20:15 |
|
Программная работа со схемой данных
|
|||
---|---|---|---|
#18+
Я не замечал особой разницы в скорости работы баз со связями и без, но часто замечал в базах без связей нарушения целостности данных, в результате которых скорость отодвигалась на 10-й план - просто программа работала не так, как было нужно. Если бы были связи, то все вылезло бы в виде ошибок гораздо раньше и компания не теряла бы денег. В моих разработках я всегда прорисовываю все связи очень тщательно, с каскадными удалениями и т.п. Это зачастую выручает, т.к. все баги отловить невозможно и ингода после нескольких лет эксплуатации срабатывает связь, генерируя ошибку, которой быть не должно. Выясняется, что это был такой баг, который не видели годами. Проблема в программе при этом не нарушила базу. Никогда в серьезных проектах не использую аксовскую схему данных не только для просмотра (очень неудобная), но и для создания связей. Всегда генерирую SQL скрипты для создания/изменения базы в CAD типа PowerDesigner - ERWin/BPWin. Схемы в там читаются очень хорошо, а скрипты очень удобно накатывать на бэкэнд в разделенных базах - клиенту достаточно выгнать пользователей и запустить скрипт, который все сделает без потери данных. Маленькая хитрость - DAO не поддерживает DDL с каскадными связями, только ADO. в PowerDesigner, например, пришлось подкручивать конфигурационные файлы, чтобы начал генерировать каскадные связи для акса. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2016, 20:36 |
|
|
start [/forum/topic.php?fid=45&msg=39269750&tid=1613376]: |
0ms |
get settings: |
9ms |
get forum list: |
64ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 331ms |
total: | 520ms |
0 / 0 |