|
3 / 3 / 0
Регистрация: 27.11.2010
Сообщений: 54
|
|
Как создать внешний ключ в таблице?15.04.2011, 15:04. Показов 7009. Ответов 37
Метки нет (Все метки)
Есть готовая таблица на основе СУБД Paradox 7, созданная через Database Desktop.
Помогите пожалуйста: как создать в этой таблице поле с внешним ключом?
0
|
|
| 15.04.2011, 15:04 | |
|
Ответы с готовыми решениями:
37
Первичный ключ заполнен в одной таблице норм, он же в другой таблице внешний NULL Создание локальной БД: как создать внешний ключ Как создать внешний ключ для таблицы? |
|
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
|
||
| 15.04.2011, 16:50 | ||
Внимание, это все в Парадоксе работает только теоретически. Практически - только головная боль и неудобства. Не рекомендую.
1
|
||
|
3 / 3 / 0
Регистрация: 27.11.2010
Сообщений: 54
|
||
| 15.04.2011, 17:05 [ТС] | ||
0
|
||
|
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
|
||
| 15.04.2011, 17:10 | ||
![]() И может таблицы тоже...
1
|
||
|
3 / 3 / 0
Регистрация: 27.11.2010
Сообщений: 54
|
|
| 15.04.2011, 17:29 [ТС] | |
|
new_in_net, вот, как и просили:
Структуры таблиц: И сама картинка с нерабочим ОК-еем: Добавлено через 3 минуты Поясняю, для чего мне вообще нужен внешний ключ. В общем в таблице GLAVN есть поле Pole2 - мне нужно, что бы в нём как Lookup-поле отображалось содержимое поля Poles из таблицы Pob. Вот чтобы их связать - нужен тот самый внешний ключ.
0
|
|
|
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
|
||
| 15.04.2011, 18:07 | ||
|
Эта связь исключительно для защиты ваших данных от ввода некорректных данных, и то она работает через пень-колоду. Мой совет - либо перейдите на более серьезную БД, где это действительно можно реализовать, либо (если это не так важно) забудьте и в программе создавайте LookUp поля (картинки с этого сайта я на работе не вижу - блокируются. Лучше прикрепляйте атачментом)
1
|
||
|
3 / 3 / 0
Регистрация: 27.11.2010
Сообщений: 54
|
||
| 15.04.2011, 18:21 [ТС] | ||
|
На этом форуме даже ТЕМА ЕСТЬ где меня консультировали по этому поводу. НО! Заметьте, ЧЕМ закончилась тема: лукап-поля отображаются и работают, НО из-за соответствующей выбранной записи в поле ID главной таблице меняется на соответствующее значние ID_p Из второй. А мне надо чтобы этой взаимосвязи между ID-полями таблиц просто НЕ БЫЛО, иными словами: чтобы лукап-поле в поле-2 работало, но ID при этом не менялось. Не получив ответа здесь, я обратилась на другой форум и там мне посоветовали использовать для этого внешние ключи. П.С. до меня дошло, в чём ошибка: связь должна быть 1 к 1... =__=
0
|
||
|
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
|
|
| 15.04.2011, 18:34 | |
|
В столбце Child Fields оставьте только поле Pole2, соответствующее ID из Pob.DB.
(почитаю ту тему чуть попозже - напишу) Добавлено через 4 минуты Lacrimossa, почитал тему, я там даже написал одно сообщение ![]() вы можете просто описать словами, что вы хотите сделать, без указания технологий и т.д. - может тогда станет ясно что вам посоветовать. Мне кажется что то что вы ищите - гораздо проще, чем то что вы спрашиваете
1
|
|
|
3 / 3 / 0
Регистрация: 27.11.2010
Сообщений: 54
|
|
| 15.04.2011, 19:36 [ТС] | |
|
new_in_net, я так и сделала, но пока у меня всё равно есть эта несчастная связь с ID первой таблицы - буду эксперементировать...
Если в общем - моя задача - создать таблицу, некоторые поля которой содержат раскрывающиеся лукап-списки. Содержимое этих списков берётся из других таблиц соответственно, которые можно редактировать. Вот в той старой теме я по этому поводу и консультировалась. Я научилась создавать эти списки, но теперь у меня "зависмость" по этим несчастным айди, от которых я никак не могу избавиться...
0
|
|
|
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
|
|
| 15.04.2011, 19:48 | |
|
Может так попытаться сформулировать:
есть несколько таблиц, нужно показать данные одной из таблиц в Гриде (табличной форме). При редактированиии некоторые ячейки грида должны иметь выпадающие списки с данными из других таблиц. Причем эти списки должны быть "не жесткими" и не завязанными на ID, т.е. поведение должно быть скорее как в адресной строке интернет браузера - он приносит список адресов где мы были, мы можем выбрать или выбрать и изменить на новый и никаких ID. Похоже на это?
1
|
|
|
3 / 3 / 0
Регистрация: 27.11.2010
Сообщений: 54
|
||
| 15.04.2011, 19:53 [ТС] | ||
Я знаю что объяснять не умею... Извините =_=
0
|
||
|
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
|
||
| 15.04.2011, 22:25 | ||
|
Если же использовать стандартный TDBGrid, то единственный вариант который я вижу - использовать свойство PickList у столбца грида. Т.е. заполнять его из вспомогательных таблиц при загрузке формы. Простой пример приатачил. Запустите и попытайтесь редактировать поле Pole1. В связи с тем, что у меня нет ваших данных, я использовал "таблицы в памяти" (TClientDataSet) и заполнял вспомогательную таблицу данными. В дальнейшем вам функцию CreateAndFillTables естественно запускать не нужно.
1
|
||
|
3 / 3 / 0
Регистрация: 27.11.2010
Сообщений: 54
|
|
| 15.04.2011, 22:34 [ТС] | |
|
new_in_net, вот как... понятно, спасибо...
Эээ... А где сам пример то?
0
|
|
|
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
|
|
| 15.04.2011, 22:38 | |
|
странно... вроде как загрузил....
Дубль 2
1
|
|
|
3 / 3 / 0
Регистрация: 27.11.2010
Сообщений: 54
|
||
| 15.04.2011, 23:03 [ТС] | ||
|
Вот мой исходник
0
|
||
|
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
|
|
| 15.04.2011, 23:25 | |
|
1
|
|
|
3 / 3 / 0
Регистрация: 27.11.2010
Сообщений: 54
|
|
| 15.04.2011, 23:32 [ТС] | |
|
new_in_net, хмм, а вариант вполне подходящий! Спасибо!
А не мог бы ты мне всё пошагово расписать это, что и как мне делать?
0
|
|
|
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
|
||
| 15.04.2011, 23:45 | ||
Все...
2
|
||
|
3 / 3 / 0
Регистрация: 27.11.2010
Сообщений: 54
|
||
| 15.04.2011, 23:58 [ТС] | ||
|
new_in_net, спасибо, сейчас попробую сама сделать.
0
|
||
|
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
|
|||||||||||||||||
| 16.04.2011, 00:08 | |||||||||||||||||
|
Следующий код вам даст возможность определить поле на котором была нажата кнопка редактирования:
1
|
|||||||||||||||||
| 16.04.2011, 00:08 | |
|
Помогаю со студенческими работами здесь
20
Дублируются записи в таблице(таблица имеет внешний ключ) Выбрать все ид(внешний ключ) которых нет во второй таблице Не удается создать внешний ключ Создать внешний ключ из двух полей, одно с конкретным значением Как добавить внешний ключ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|