|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
День добрый! Существует ли возможность каким либо другим способом, нежели разбор результатов LIST DATABASE узнать структуру связей между таблицами (какие ключи куда смотрят) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2010, 18:41 |
|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
Это тебе не Оракл. Сам ,сам, по декларотивному описанию. Ну или через утилиту "c:\Program Files\Microsoft Visual FoxPro 9\Tools\Gendbc\gendbc.prg" (если на С: установлен) разгребай связи ручками. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2010, 19:05 |
|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
50копеек, То бишь все-таки нет.... Разборщик результатов LIST DATABASE я уже написал, думал что лучше есть... Чтож, пасиба, попробуем ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2010, 21:05 |
|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
Зависит от того, какая информация нужна ADBOBJECTS() - список объектов одного из 4 типов: CONNECTION, RELATION, TABLE, VIEW HELP VFP9Двумерный массив создается, когда Вы определяете RELATION для cSetting . Каждая строка в двумерном массиве соответствует отношению в базе данных. Первый столбец в строке массива содержит имя дочерней таблицы, а второй столбец в строке массива содержит имя родительской таблицы. Третий столбец содержит имя индексного тэга для дочерней таблицы, и четвертый столбец содержит имя индексного тэга для родительской таблицы. Пятый столбец в строке массива содержит информацию ссылочной целостности. Этот столбец пуст, если отношение не имеет никаких правил ссылочной целостности. Если отношения действительно имеют правила ссылочной целостности, столбец содержит символы, соответствующие типу правил ссылочной целостности для модификаций, удалений, и вставок. Первый символ указывает тип правила модификации, второй символ указывает тип правила удаления, и третий символ указывает тип правила вставки. Возможные значения для модификаций и удалений - "C" для каскада, "R" для ограничения, и "I" для игнорирования. Возможные значения для вставок - "R" для ограничения, и "I" для игнорирования. Например, если отношение имеет каскадную модификацию, ограничение удаления, и игнорирование вставки в соответствии с правилами ссылочной целостности, то столбец содержат "CRI". Обрати внимание, что постоянные связи контейнера базы данных организуются между индексными тегами, а не между полями. Поэтому, если надо копнуть глубже и узнать именно поля, то следует анализировать уже таблицы ATAGINFO() Вообще, очень много полезных функция по сбросу различных структур в массивы. Все такие функции начинаются с буквы A. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2010, 21:55 |
|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
_usa_))День добрый! Существует ли возможность каким либо другим способом, нежели разбор результатов LIST DATABASE узнать структуру связей между таблицами (какие ключи куда смотрят) ? Глупый вопрос. MODIFY PROJECT MODIFY DATABASE Эти пробовал набирать? ))))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2010, 22:07 |
|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
Eugenkru10, Дык надо чтоб программа разбирала, то есть дал путь к контейнеру БД, - получил всю структуру: таблицы поля связи индексы и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2010, 22:58 |
|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
ВладимирМ, Огромное пасиба! Уж больно большой парсер получился, да еще локали... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2010, 22:59 |
|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
_usa__83_Eugenkru10, Дык надо чтоб программа разбирала, то есть дал путь к контейнеру БД, - получил всю структуру: таблицы поля связи индексы и т.д. Оно даром не нужно чтоб программа эти связи разбирала )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2010, 23:40 |
|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
_usa__83_, Связи между таблицами в Фоксе образуются не только через SET RELATION. 1) даже образованные таким образом связи при необходимости могут переопределены той же командой (в зависимости от необходимости) с направленностью до наоборот; 2) более часто связи определяются в SQL SELECT в предикатах JOIN, WHERE, HAVING и пр. Определить, что с чем и как связано, возможно только визуально (по коду программы или результатам запроса). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2010, 11:50 |
|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
Связей явно вообще может не быть. Все связи у разработчика. И Именно так и делают чтобы явно скрыть что с чем связано. Потому как любая система без поддежки - не система. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2010, 12:58 |
|
Связи таблиц в контейнере БД
|
|||
---|---|---|---|
#18+
Постоянные связи в контейнере базы данных - это чисто дизайнерская "примочка". Используется только и исключительно при проектировании каких-либо объектов. В работающем приложении, как правило, не используются никак. Т.е. никак, никоим образом, не влияет на работу тех объектов, которые как раз и были созданы при помощи постоянных связей. _usa__83_ Если не удалось найти какие-либо функции для определения структуры базы данных, то можно вспомнить, что контейнер базы данных - это обычная DBF-таблица у которой всего-лишь изменен один бит в 28 байте. Как следствие, ее можно открыть как обычную таблицу и анализировать содержимое. Примерно так Код: plaintext 1. 2. 3.
Здесь обязательно надо указать расширение DBC и опцию AGAIN, поскольку контейнер базы данных, скорее всего, уже открыт командой OPEN DATABASE. Вот чтобы не возникло конфликта с ранее использованной рабочей областью и нужна опция AGAIN. Далее посмотри на структуру хранения данных и все поймешь. Там обычная древовидная структура ID-ParentID. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2010, 21:04 |
|
|
start [/forum/topic.php?fid=41&fpage=94&tid=1585154]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 353ms |
total: | 480ms |
0 / 0 |