Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Связь между таблицами.  [new]
Серж-1
Member

Откуда: от верблюда
Сообщений: 173
У меня есть две таблицы
1-я табл. есть поле 1, поле 2, поле 3, поле 4
2-я табл. есть поле 1, поле 2, поле 3
мне надо зделать связь между 2-ой и 1-ой табл. но так чтобы связь был
2-я табл. поле 1 а 1-я табл поле 1, поле 2, поле 3
как мне енто зделать?
14 фев 05, 18:07    [1320372]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Ничего не понял. Ты хочешь что-то вроде такой связки?

Tab2.Field1 = Tab1.Field1+Tab1.Field2+Tab1.Field3

Нужна связь или отображение полей?
14 фев 05, 18:29    [1320451]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
Серж-1
Member

Откуда: от верблюда
Сообщений: 173
Нужна связь, чтобы привыборе Tab2.Field1 осуществлялась связь с Tab1.Field1+Tab1.Field2+Tab1.Field3
15 фев 05, 09:09    [1321125]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
так Вам никто ничего дельного не скажет
1. как реально связаны таблицы
2. где осуществляется выбор в первой таблице
3. как и где происходит реакция в таблице 2
4. может еще что от своих щедрот прибавите
15 фев 05, 10:47    [1321437]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
Серж-1
Member

Откуда: от верблюда
Сообщений: 173
Надо чтобы осуществлялась связь из второй таблицы Tab2.Field1 с первой но сразу по трем полям Tab1.Field1, Tab1.Field2, Tab1.Field3.
Может так понятней будет.
15 фев 05, 12:45    [1321945]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
угу t1.f1=t2.f1+t2.f2+t2.f3 ^)))
15 фев 05, 13:04    [1322018]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Слушай, приведи пример. Только, пожалуйста, не надо выдумывать собственную терминологию. Видимо, под словом "связь", ты понимаешь что-то сугубо специфическое.

Что такое "связь" в FoxPro почитай здесь

http://www.foxclub.ru/kb/index.php?sid=35321&aktion=artikel&rubrik=004&id=103&lang=ru
15 фев 05, 13:10    [1322039]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
Серж-1
Member

Откуда: от верблюда
Сообщений: 173
При помощи "SET RELATION" мне надо сделать связь.
Главная у меня Tab2 подчинёная Tab1 и мне надо сделать так чтобы в форме кокга я и ду по Tab2 то в Tab1 мне показывало данные. Но связь между главной и подчиненой была такая:
Tab2.Field1 = Tab1.Field1, Tab1.Field2, Tab1.Field3.
15 фев 05, 14:59    [1322544]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
-) Создаешь в таблице Tab1 индекс примерно такого вида:

INDEX ON Field1+Field2+Field3 TAG SortOrd

Здесь я предполагаю, что все 3 поля символьного типа и их общая длина не превышает 240 символов. Если используется настройка SET COLLATE отличная от MACHINE, то общая длина не должна превышать 120 символов.

Если эти поля, например, числового типа, то выражение будет примерно такое

INDEX ON STR(Field1)+STR(Field2)+STR(Field3) TAG SortOrd

Тут главное, чтобы под каждое поле отводилось фиксированное количество символов. FoxPro не поддерживает индексные ключи переменной длины

-) Далее все "как положено"

select Tab1
SET ORDER TO SortOrd
select Tab2
SET RELATION TO Field1 INTO Tab1
* Если связь вида один-ко-многим, то надо еще
SET SKIP TO Tab1
GO TOP
BROWSE FIELDS Tab2.Field1, Tab1.Field1, Tab1.Field2, Tab1.Field3
15 фев 05, 15:33    [1322687]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
Tab2.Field1 = Tab1.Field1, Tab1.Field2, Tab1.Field3
Это как?
Поле Tab2.Field1 что, состоит из конкатенации трех указанных полей в Tab1? Или может из их суммы? Или вообще по формуле какой вычисляется? Этого от тебя добиваются. Какому выражению в Tab1 соответствует поле Tab2.Field1?

Если конкатенация, тогда так.
Подготовка...
select tab1
index on Field1+Tab1.Field2+Tab1.Field3 tag KeyTag
Работа...
select tab1
set order to KeyTag
select tab2
set relation to field1 into tab2
go top
15 фев 05, 15:37    [1322704]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
Владимир меня конечно же опередил ;-) А я ошибся (into tab1 должно быть ;-))))
15 фев 05, 15:42    [1322721]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
Серж-1
Member

Откуда: от верблюда
Сообщений: 173
Все поля числовыэ.
15 фев 05, 15:46    [1322731]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
Серж-1
Member

Откуда: от верблюда
Сообщений: 173
Спасибо льшое за терпение и понимание и конечноже подсказку.
Дякую.
15 фев 05, 15:47    [1322739]     Ответить | Цитировать Сообщить модератору
 Re: Связь между таблицами.  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi Серж-1!

Давай-ка лучше описания структуры (CREATE TABLE tab1 (что там у тебя за поля
с ТИПАМИ и РАЗМЕРАМИ обязательно!) - то-же для tab2 )
пример данных (лучше всего через несколько INSERT INTO tab1 (её поля)
VALUES (значения) )
и потом ЧТО нужно получить в результате - например просто укажи - "для
строки 1 из tab1 нужно чтобы показало строки 1, 2, 5 из tab2 потому что...
твоё условие человеческим языком, а для строки 2 из tab1 - строки 3,4 из
tab2 потому что ...".

Posted via ActualForum NNTP Server 1.1

16 фев 05, 02:36    [1323517]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить