powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / связи
5 сообщений из 5, страница 1 из 1
связи
    #34436279
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
t_a_k //(для связи t_a с t_k)
	id
	id_t2
	id_t3

t_a  
	id

t_k  
	id
	id_k 

//  t_a_k
id	id_t2	id_t3	
 1 	 1 	 2 	
 2 	 1 	 3 	
 3 	 2 	 1 	
 4 	 2 	 4 	

// t_a
id	
 1 	
 2 	
 3 	


// t_k
id	id_k	
 1 	 1 	
 2 	 1 	
 3 	 2 	
 4 	 3 	
надо: исходя из значений t_a.id вывести данные из t_k
т.е. например t_a.id = 2 выведутся строки t_k.id=1 и t_k.id=4

как реализовать эту связь (не селектом) и показать в одном гриде все данные из t_a, а в другом соответствующие записи из t_k ?
...
Рейтинг: 0 / 0
связи
    #34436339
ламер в фоксе
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
t_a_k //(для связи t_a с t_k)
	id
	id_t2
	id_t3

t_a  
	id

t_k  
	id
	id_k 

//  t_a_k
id	id_t2	id_t3	
 1 	 1 	 2 	
 2 	 1 	 3 	
 3 	 2 	 1 	
 4 	 2 	 4 	

// t_a
id	
 1 	
 2 	
 3 	


// t_k
id	id_k	
 1 	 1 	
 2 	 1 	
 3 	 2 	
 4 	 3 	
надо: исходя из значений t_a.id вывести данные из t_k
т.е. например t_a.id = 2 выведутся строки t_k.id=1 и t_k.id=4

как реализовать эту связь (не селектом) и показать в одном гриде все данные из t_a, а в другом соответствующие записи из t_k ?
примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
* предположим, что таблицы уже открыты и у них есть необходимые индексы
select t_a_k
set order to i_id_t2  &&Индекс по полю t_a_k.id_t2

select t_k
set order to i_id &&Индекс по полю t_k.id

select t_a
set relation to id into t_a_k additive

select t_a_k
set relation to id_t3 into t_k additive

select t_k
brow norm nowait
select t_a
brow norm
...
Рейтинг: 0 / 0
связи
    #34448910
кто о чем, а я всё о связях :-)
вопрос такой.
в init формы связываю две таблицы командой
set relation to ....
и вывожу их соответственно главную в грид1, дочернюю в грид2. всё супер работает. затем по кнопке мне нужно сделать отношение наоборот. т.е. та таблица, кот-я была главной становится подчиненной. чтобы сделать такую связь, я разрываю вначале отношение, то есть пишу:
set relation to
после этой команды во втором гриде остается столько записей сколько было при старом отношении,
т.е. например для первой записи главной таблицы (грид1) соответствовало 2 записи подчиненной (грид2), далее жму на кнопку, в которой написано: set relation to и вижу что кол-во строк во втором гриде не изменилось и так и осталось 2. делаю сразу после разрыва связь где уже подчиненная таблица(грид2) становится главной. а на экране попрежнему в грид2 только 2 записи.
теперь вопрос: как после разрыва связи увидеть все записи таблицы, которая до разрыва была подчиненной???
...
Рейтинг: 0 / 0
связи
    #34449202
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы "изменения" были видны нужно "передернуть" таблицы - т.е. передвинуть указатели записи
например сделать GO recno()
...
Рейтинг: 0 / 0
связи
    #34450073
ну написал я после
set relation to
GO RECNO()
но это не помогло. дело то не в том, что она в текущем экране показывает например две записи. скроллинг то я сам догадался покрутить, дело в том что просто в гриде после разрыва связи есть только те строки на которых оборвал связь!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / связи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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