Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual FoxPro

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.95
llFreeManll
23 / 23 / 6
Регистрация: 27.11.2011
Сообщений: 272
Завершенные тесты: 1
#1

Связать две таблицы программно - FoxPro

28.11.2012, 18:48. Просмотров 2980. Ответов 7
Метки нет (Все метки)

Доброго времени суток.Такая проблема,нужно связать таблицу которая находится в бд со свободной таблицей.Заюзав поиск нашел похожую тему,от туда взял команду "SET SKIP TO",получилось вот так
SQL
1
SET SKIP TO account_base.id,freetable.id
поле индекса id.В первой таблице id Primary,а во второй id Regular.
Но вылетает ошибка:
Связать две таблицы программно
Помогите разобраться пожалуйста)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2012, 18:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Связать две таблицы программно (FoxPro):

Объединить две таблицы по двум одинаковым полям. Не показываются данные со второй таблицы - FoxPro
set safety off select tbl1 Index ON pole1 TAG pole1 OF C:\tbl1.dbf.cdx select tbl1 Index ON pole2 TAG pole2 OF...

Как связать две таблицы с датами????? - Базы данных
Не понимаю! Подскажите плиззз!!! Имеются две таблицы продаж товара SALES (по одной на офис) вида: ID, DATE, Quantity. Имеется общий...

Связать в запросе 2 поля таблицы с одним справочником - Базы данных
Здравствуйте. Есть таблица (SAMPLES) в БД Firebird Embedded, 2 поля которой (например, в данном случае единицы измерения...

Можно ли связать данные внутри одной таблицы? - Базы данных
Мне нужно создать свою бд,замутить к ней связи и реляционную модель. У меня возник вопрос.Я могу связывать только таблицы ??? я...

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

Поле, ссылка на две таблицы - Базы данных
Есть таблица письма. У неё кроме прочего, есть два поля ид ссылки, на получателя и отправителя. Каждое поле может быть как организация...

7
tmpnik1
31 / 26 / 8
Регистрация: 28.02.2011
Сообщений: 1,103
29.11.2012, 06:09 #2
перед set skip..., должна быть команда set relation...
0
llFreeManll
23 / 23 / 6
Регистрация: 27.11.2011
Сообщений: 272
Завершенные тесты: 1
29.11.2012, 11:05  [ТС] #3
Почитав литературу нашел что "set skip to" устанавливает временную связь,а мне нужна постоянная и что делается это через "ALTER TABLE, используя ключевое слово REFERENCES". Но примеров использования не нашел.Может кто знает как это делается.
0
Grossmeister
Модератор
3326 / 2402 / 399
Регистрация: 21.01.2011
Сообщений: 10,611
29.11.2012, 11:16 #4
Цитата Сообщение от llFreeManll Посмотреть сообщение
делается это через "ALTER TABLE, используя ключевое слово REFERENCES"
Что ты понимаешь под словом "связь" и для чего тебе она нужна?
0
llFreeManll
23 / 23 / 6
Регистрация: 27.11.2011
Сообщений: 272
Завершенные тесты: 1
29.11.2012, 11:23  [ТС] #5
В лабораторной работе задание,программно установить постоянную связь таблицы в составе бд,со свободной таблицей...
0
Grossmeister
Модератор
3326 / 2402 / 399
Регистрация: 21.01.2011
Сообщений: 10,611
29.11.2012, 12:04 #6
Значит так...

По связью можно понимать связь нескольких таблиц для целей отображения. Это как раз то, что ты назвал "временной связью". В SQL-базах это осуществляется с пом. JOIN в запросе. В Фоксе - SET RELATION. Существует она только на время выполнения запроса или на время выполнения программы.

Под связью можно понимать создание ограничения целостности (constraint) под названием Foreign Key (FK). Это делается для того, чтобы в логически связанные таблицы нельзя было ввести некорректные данные. Например, у тебя есть таблица подразделений - department и таблица служащих - employee. В таблице служащих есть колонка dep_id, ссылка на таблицу department (т.е. в каком подразделении работает служащий). Наличие FK не даст проставить в dep_id ссылку на несуществующее подразделение. Это связь создается в БД с пом. ALTER TABLE ... REFERENCE и на отображение никак не влияет. Существует до тех пор, пока ты этот FK не грохнешь.
0
llFreeManll
23 / 23 / 6
Регистрация: 27.11.2011
Сообщений: 272
Завершенные тесты: 1
29.11.2012, 17:18  [ТС] #7
спасибо за подсказку,вроде бы нашел решение:
SQL
1
2
ALTER TABLE account_base;
ADD FOREIGN KEY id TAG id REFERENCES freetable
но вылетает ошибка:
Вложение 206916
Собственно где и как нужно открыть файл и какой именно файл нужно открыть?
0
Redglow
106 / 106 / 1
Регистрация: 06.05.2011
Сообщений: 277
29.11.2012, 22:13 #8
FOREIGN KEY нельзя указать для свободных таблиц. Здесь два варианта: либо создавать БД и включать таблицы в ее состав, либо отказаться от данной затеи, создать обычные структурные индексы и связывать таблицы вручную где-то в начале программы по SET RELATION + SET SKIP
0
29.11.2012, 22:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2012, 22:13
Привет! Вот еще темы с ответами:

Две таблицы Аccess и Visual Basic - Базы данных
Есть две и более таблиц в Аксессе. В каждой много разных полей, но есть и одно общее. По идее, я понимаю, что используя это поле, можно...

Две таблицы dBase в разных папках - Базы данных
Как в выражении SQL (ODBC: Provider=MSDASQL.1;Data Source=Файлы dBASE) упомянуть после FROM две таблицы dBase, которые находятся в разных...

Нормализация БД, две связанные таблицы. А что дальше? - Базы данных
Здравствуйте. Помогите разобраться с задачкой Есть две таблицы РАБОТНИКИ и КОМПАНИИ (названия изменены) РАБОТНИКИ ...

Что лучше: две подобные таблицы или одна с дополнительным уточняющим столбцом? - Базы данных
В случае одной таблицы с дополнительным уточняющим столбцом этот столбец будет заполняться одинаковыми значениями. С одной стороны...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru