Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не получаетс становить связь многие к одному / 25 сообщений из 26, страница 1 из 2
20.05.2010, 16:47
    #36639679
Ganjubas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
Привет. Ребят, очень и очень надо чтоб вы помогли чем сможете. Есть две таблицы - 'Строит. Организации' и 'НП СРО' (НЕКОММЕРЧЕСКОЕ ПАРТНЕРСТВО САМОРЕГУЛИРУЕМЫЕ ОРГАНИЗАЦИИ). Первая таблица содержит 2 тыс организаций, а вторая несколько десятков. Необходимо установить отношения многие(организации) к одному (СРО). Т.е. таблица 'строит. организ.' выводилась полностью, а в таблице 'СРО' выводилось то СРО в которое оно входит. Р.S. Базы делаю на visual foxpro 9. Заранее благодарен
...
Рейтинг: 0 / 0
23.05.2010, 11:54
    #36643768
Ganjubas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
Весь инет перерыл, ничего подходящего не нашел. Везде говорится что visual foxpro поддерживает связь многие к одному, но нигде нету нормального описания этой связи с примерами
...
Рейтинг: 0 / 0
23.05.2010, 13:15
    #36643830
Fffffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
Ganjubas, связь многие-к-одному это то же самое, что связь один-ко-многим.
...
Рейтинг: 0 / 0
23.05.2010, 16:08
    #36643941
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
Зависит от того, что именно Вы вкладываете в понятие "Связь". Как именно это слово интерпретируется в FoxPro описано здесь

Связи и отношения между таблицами

С точки зрения FoxPro связь много-к-одному - это то же самое, что и один-к-одному. Ведь Вам надо поставить в соответствие одной записи главной таблицы одну запись подчиненной. То, что записи главной таблицы могут дублироваться с точки зрения подчиненной таблицы не имеет никакого значения. Она все-равно "смотрит" только на одну (текущую) запись главной таблицы.

И еще, определитесь, а зачем Вам это связь вообще нужна? Что Вы хотите реализовать с ее помощью? Ведь "связь" - это всего-лишь инструмент. А цель-то в чем заключается? Ну, установили Вы эти отношения и что? Какую "выгоду" Вы с этого будете иметь?
...
Рейтинг: 0 / 0
23.05.2010, 20:59
    #36644164
Ganjubas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
ВладимирМ, как какую выгоду? Например, меня интересует какая-то организация из таблицы 'строит организации'. Мне нужно определить именно в какую СРО она входит, и это СРО ВЫВЕСТИ В ДРУГОЙ ТАБЛИЦЕ. Или можно просто сделать так чтоб это СРО выделилось как-то в таблице.
...
Рейтинг: 0 / 0
23.05.2010, 21:47
    #36644227
Ganjubas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
ВладимирМ, если можешь, объясни как лучше всего сделать эту связь? Или без связи, вообще, как-то по другому сделать. Я до сих пор делал связь один-к-многим, один-к-одному, многие-к- многим, но первый раз приходиться связывать таблицы отношением многие-к-одному. Поэтому прошу помощи, пока у меня не получается, как не крути, связать эти таблицы
...
Рейтинг: 0 / 0
23.05.2010, 22:07
    #36644248
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
GanjubasВладимирМ, как какую выгоду? Например, меня интересует какая-то организация из таблицы 'строит организации'. Мне нужно определить именно в какую СРО она входит, и это СРО ВЫВЕСТИ В ДРУГОЙ ТАБЛИЦЕ. Или можно просто сделать так чтоб это СРО выделилось как-то в таблице.
Вы опять не о том. Ну, вот Вы нашли эту CPO и что Вы с ней будете делать? Для чего, для каких целей, Вы хотите ее найти?

Установка связи, по большому счету - это чисто визуальная "примочка". Ну, чтобы пользователю красиво показать при определенном способе работы с данными. Но можно сделать то же самое и без установки связи, если придерживаться другой идеологии работы с данными

Если же Вам нужно просто установить указатель записи, то для этого есть функции поиска

LOCATE - может искать без индекса. FOUND() сообщает о том, нашли или нет
SEEK - команда, выполняет поиск по текущему индексу
SEEK() - функция, выполняет поиск по текущему или указанному индексу

Далее выполняете обработку найденной записи, если необходимо.
...
Рейтинг: 0 / 0
24.05.2010, 06:14
    #36644473
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
GanjubasВладимирМ, если можешь, объясни как лучше всего сделать эту связь? Или без связи, вообще, как-то по другому сделать. Я до сих пор делал связь один-к-многим, один-к-одному, многие-к- многим, но первый раз приходиться связывать таблицы отношением многие-к-одному. Поэтому прошу помощи, пока у меня не получается, как не крути, связать эти таблицы
Так вам может и вовсе не нужна связь (SET RELATION и иже с ней). Может сгодится выборка из дочерней таблицы по условию из родительской ?
Код: plaintext
SELECT * FROM KidTable, MotherTable WHERE KidTable.id=MotherTable.id INTO CURSOR MyCursor
...
Рейтинг: 0 / 0
24.05.2010, 09:43
    #36644593
Ganjubas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
ВладимирМ, а где набрать данный код, именно в каком модуле? Просто я новичок в этом деле
...
Рейтинг: 0 / 0
24.05.2010, 10:00
    #36644622
Ganjubas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
И насчет связи. Мне нужна не постоянная связь, а обычная связь.
...
Рейтинг: 0 / 0
24.05.2010, 10:49
    #36644726
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
GanjubasВладимирМ, а где набрать данный код, именно в каком модуле? Просто я новичок в этом деле
Где нужна, там и набирайте.

Еще раз. Все зависит от конечной задачи. Для какой цели Вы хотите использовать найденную запись подчиненной таблицы? Что Вы с ней собираетесь делать?
...
Рейтинг: 0 / 0
24.05.2010, 11:04
    #36644756
Ganjubas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
ВладимирМ, с подчиненной таблицей ничего не буду делать, просто нужно выделить как-то соответствующую запись и все.
...
Рейтинг: 0 / 0
24.05.2010, 15:15
    #36645414
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
GanjubasВладимирМ, с подчиненной таблицей ничего не буду делать, просто нужно выделить как-то соответствующую запись и все.
Для чего выделить-то?

Ну, по простому, Вы это отображать будете? Если отображать, то как это должно выглядеть? Вы хотите отображать все те тысячи записей, какие есть или какую-то выборку? Если выборку, то как много записей будет в этой выборке? Если отображаете список организаций, то значения подчиненной таблицы должны быть видны в списке? Или же в списке этих значений нет, но при в форме редактирования организации должны быть отображены реквизиты из подчиненной таблице?

Другими словами, как Вы себе представляете внешний вид Вашего приложения? Интерфейс с пользователем?
...
Рейтинг: 0 / 0
25.05.2010, 05:23
    #36646556
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
GanjubasВладимирМ, а где набрать данный код, именно в каком модуле? Просто я новичок в этом деле
Да можно и в отдельном модуле, можно просто при перемещении курсора по записям родительской таблицы (в методе AfterRowColChange), можно даже по специательной кнопке в родителе.
...
Рейтинг: 0 / 0
25.05.2010, 11:58
    #36647101
Ganjubas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
ВладимирМ, нужно чтоб все записи в первой и во второй таблице были видны, т.е. не было так, чтоб при запросе в таблице оставались только те записи которые нас интересуют. Они (интересующиеся записи) в первой и во второй таблице должны просто выделятся. Например, в таблице 'организ' выбрал (установил курсор) я на организацию 'Сельхозстрой' - в таблице 'СРО' должна выделятся то СРО в которое она (организация 'Сельхозстрой') входит, при этом все остальные записи первой и второй таблицы не должны исчезать. Думаю что здесь запрос, вообще, не нужен, а нужно просто при возникновении события 'установка курсора' (выделения записи) необходимо выделить запись из второй таблицы с совпадающим ключом. Но как? Где? и какой код нужно писать просто незнаю.
...
Рейтинг: 0 / 0
25.05.2010, 12:15
    #36647156
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
GanjubasВладимирМ, нужно чтоб все записи в первой и во второй таблице были видны, т.е. не было так, чтоб при запросе в таблице оставались только те записи которые нас интересуют. Они (интересующиеся записи) в первой и во второй таблице должны просто выделятся. Например, в таблице 'организ' выбрал (установил курсор) я на организацию 'Сельхозстрой' - в таблице 'СРО' должна выделятся то СРО в которое она (организация 'Сельхозстрой') входит, при этом все остальные записи первой и второй таблицы не должны исчезать. Думаю что здесь запрос, вообще, не нужен, а нужно просто при возникновении события 'установка курсора' (выделения записи) необходимо выделить запись из второй таблицы с совпадающим ключом. Но как? Где? и какой код нужно писать просто незнаю.
Наконец-то автор разродился на более-менее описание, чего он хочет. Ну так ставьте в метод AfterRowColChange родительской таблицы
Код: plaintext
1.
SET FILTER TO <поле дочерней>=<поле родителя> IN KidTable (или какое там у вас условие) 
GO top in KidTable
затем Grid2.Refresh.
...
Рейтинг: 0 / 0
25.05.2010, 12:22
    #36647186
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
Каким образом вы отображаете таблицы?

Ganjubas, вы или по-русски плохо понимаете, или в предмете абсолютно не ориентируетесь.
Если хотите получить ответ на свой вопрос, сформулируйте его грамотно или вообще не отвлекайте посетителей форума своими глупостями.
...
Рейтинг: 0 / 0
25.05.2010, 12:24
    #36647198
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
reware Ну так ставьте в метод AfterRowColChange родительской таблицы
Если у него вообще есть грид.
...
Рейтинг: 0 / 0
25.05.2010, 12:31
    #36647230
Ganjubas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
Ffffffffffffffff, а тебе, вообще, здесь слово не давали. Если ты не в состоянии понять то, что я написал, а я написал между прочим очень доходчиво, тогда я тебе соболезную.
...
Рейтинг: 0 / 0
25.05.2010, 12:40
    #36647263
Не получаетс становить связь многие к одному
Ganjubas,
1. Доходчивость Вашего объяснения, кстати, не Вам оценивать. При том, что суть вопроса начинает проясняться только на пятые сутки с момента публикации вопроса.
2. Форум -публичное место и раздачи слов тут нет. Или же, если применять Вашу же логику, Вам тоже слова не давали.
3. Ваши понимание связи очень сильно отличается от общепринятого. Похоже в этом суть непонимания Вашего вопроса.
...
Рейтинг: 0 / 0
25.05.2010, 12:46
    #36647298
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
Ganjubas, принимаю ваши соболезнования. Удалился.
...
Рейтинг: 0 / 0
25.05.2010, 12:57
    #36647348
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
Может, вам подойдёт свойство колонки DynamicBackColor? В хелпе даже есть пример...
...
Рейтинг: 0 / 0
25.05.2010, 16:20
    #36648126
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
GanjubasFfffffffffffffff, а тебе, вообще, здесь слово не давали. Если ты не в состоянии понять то, что я написал, а я написал между прочим очень доходчиво, тогда я тебе соболезную.
А вот грубить не надо бы. Вам пытались помочь и не наша тут беда в вашей проблеме.
...
Рейтинг: 0 / 0
25.05.2010, 17:45
    #36648480
Ganjubas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
reware, он (Ffffff) не пытался мне помочь. Прочитайте его первое сообщение. Вместо того, чтоб по существу ответит на вопрос, он про глупости говорит.
...
Рейтинг: 0 / 0
25.05.2010, 19:27
    #36648736
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаетс становить связь многие к одному
GanjubasВладимирМ, нужно чтоб все записи в первой и во второй таблице были видны, т.е. не было так, чтоб при запросе в таблице оставались только те записи которые нас интересуют. Они (интересующиеся записи) в первой и во второй таблице должны просто выделятся. Например, в таблице 'организ' выбрал (установил курсор) я на организацию 'Сельхозстрой' - в таблице 'СРО' должна выделятся то СРО в которое она (организация 'Сельхозстрой') входит, при этом все остальные записи первой и второй таблицы не должны исчезать. Думаю что здесь запрос, вообще, не нужен, а нужно просто при возникновении события 'установка курсора' (выделения записи) необходимо выделить запись из второй таблицы с совпадающим ключом. Но как? Где? и какой код нужно писать просто незнаю.
Вы опять не о том. Точнее так, Вы не понимаете смысл используемых Вами терминов, поэтому в результате получается "каша".

Забудьте пока про "таблицы", "курсоры", "связи" и "записи". Поставьте себя на место пользователя. Какую картинку должен увидеть пользователь? Вот открываем Выше приложение и что? Что должен увидеть пользователь? Вероятно форму. Но что на этой форме должно быть отображено?

Ну, в большинстве случаев отображается список. Список чего? Понятно, что список организаций. Только вот, все записи организаций должны быть отображены сразу или какая-то часть из них? Если часть, то как определить какая именно часть?

Кроме того, как правило, таблицы содержат в себе очень много полей. Вывести сразу в списке вообще все поля можно, только работать с подобным списком будет крайне не удобно. Поэтому в списке отображается только часть полей, использующихся для идентификации записи. Ну, чтобы пользователь "глазами" быстро определил, какая именно запись ему нужна.

Затем, когда пользователь нашел нужную запись, открывают дополнительную форму для просмотра/редактирования (или переключаются на другую закладку PageFrame в этой же форме). Вот в этой другой форме уже отображается не список, а поля только одной, выбранной записи.

Теперь, собственно, о чем Вас спрашивают:

1. Вы собираетесь строить ваше приложение именно так? Форма со списком + форма для редактирования записи. Или как-то по другому?

2. Если будет форма со списком, то в ней будут отображены все записи организаций или некая часть?

3. Непосредственно в списке должна отображаться CPO?
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не получаетс становить связь многие к одному / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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