|
Local View и связи БД
|
|||
---|---|---|---|
#18+
День добрый! Вот такой маленький вопросик. Есть БД с десятком таблиц и связей (настроена ссылочная целостность). Делаю Local View основанный на 4-х таблицах этой БД. Естественно он появляется в БД, но при попытке ребилдать ссылочную целостность пишет "DBC internal consistency error". Как вообще сосуществуют представления БД с таблицами БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2010, 13:47 |
|
Local View и связи БД
|
|||
---|---|---|---|
#18+
Нормально существуют. Просто Вы наткнулись на глюк модификации контейнера базы данных. От того, как именно Вы его модифицируете ничего не зависит. Это может произойти, например, и после создания новой таблицы. Тут важен сам факт модификации. Такое обычно бывает в двух случаях: 1. Включен какой-либо антивирус, который контролирует файлы с расширениями DBC, DCT, DCX (это файлы контейнера базы данных). Вот антивирус и "гадит". Очень этим "славится" Касперский. 2. Выполненные модификации еще не сброшены из системного буфера в собственно файлы. Т.е. после создания Local View желательно перезагрузить FoxPro, чтобы системный кеш был сброшен. Других способов сброса кеша нет. Также перед ребилдом ссылочной целостности очень желательно сделать упаковку контейнера базы данных. Это пункт меню DataBase \ Clean Up DataBase ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2010, 19:21 |
|
Local View и связи БД
|
|||
---|---|---|---|
#18+
ВладимирМ, Ок попробуем.... А как насчет правильности сброса значений в исходные таблицы? неужели вне зависимости от количества и типов соединений, представление "умеет" правильно сбрасывать значения в исходные таблицы?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 08:27 |
|
Local View и связи БД
|
|||
---|---|---|---|
#18+
_usa__83_А как насчет правильности сброса значений в исходные таблицы? неужели вне зависимости от количества и типов соединений, представление "умеет" правильно сбрасывать значения в исходные таблицы?.. Вы, собственно, о чем? Физически, Local View - это обычная команда Select-SQL результат которой записывается в некий курсор. А теперь поставьте себя на место разработчиков FoxPro. У Вас есть курсор. В нем сделали некие изменения. Как перенести сделанные изменения из этого курсора в исходные таблицы? Ну, очевидно, аналогичными командами Update-SQL, Insert-SQL, Delete-SQL. Что для этих команд нужно? В первую очередь ключевое поле. Идентификатор записи. Чтобы определить какую именно запись исходной таблицы следует создать/изменить/удалить. Затем, список полей, изменение в которых будем отслеживать. В смысле, изменения в которых надо переносить в исходную таблицу. Вот это и настривается на закладке Update Criteria в дизайнере Local View. Ну, еще нужна схема соответствия. В смысле, какое поле исходной таблицы какому полю курсора соответствует. Но это настривается на закладке Fields, когда формируется собственно запрос Select-SQL Также очевидно, что дизайнер Local View не в состоянии корректно обработать сброс изменений в несколько таблиц одновременно. В смысле, если источником данных Select-SQL является несколько таблиц и надо отслеживать изменение в полях, созданных из разных таблиц. Поэтому, хотя Local View и можно построить из нескольких связанных таблиц, но вот сброс изменений желательно делать только в одну из таблиц-источников Local View. Другими словами, количество и типы соединений вообще не имеют никакого отношения к работе Local View. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 11:46 |
|
Local View и связи БД
|
|||
---|---|---|---|
#18+
2 _usa__83_ надоест бить руки - осуществите поиск информации про курсорадаптер и примеры построения фреймворков с использованием курсорадаптеров. чтобы не бить руки - в помощь для начала преобразователь, чтобы поиграться. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 11:52 |
|
|
start [/forum/topic.php?fid=41&tid=1585641]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 323ms |
total: | 458ms |
0 / 0 |