Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! У меня два набора: dataset2 - хранимая процедура, выбирает записи по параметру dataset1 - таблица БД dataset1 содержит lookup-поле - источник dataset2 Мне нужно чтобы значения lookup-поля, выбранные ранее, сохранялись независимо от того, существуют ли записи с такими значениями в dataset2 на данный момент или нет. Подскажите как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2003, 11:49 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
По моим понятиям надо источник менять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2003, 13:00 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
Наверное тогда нужно использовать не лукап поля, а вставку значений. Но это не очень хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2003, 16:50 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
Почему плохо? Как можно сделать лучше? TABLE "COUNTRY" /*CountryDataset*/ ( "COUNTRY_ID" (PK) "COUNTRY_NAME" ) TABLE "CITY" /*CityDataset*/ ( "CITY_ID" (PK) "CITY_NAME" "COUNTRY_ID" (FK) ) TABLE "HOTEL" /*HotelDataset*/ ( "HOTEL_ID" (PK) "HOTEL_NAME" "COUNTRY_ID" (FK) "CITY_ID" (FK) ) HotelDataset: "HOTEL_ID" "HOTEL_NAME" "COUNTRY_ID" "CITY_ID" "countryname" /*название и код страны из "COUNTRY" */ FieldKind = fkLookup KeyFields = "COUNTRY_ID" LookupDataset = CountryDataset LookupKeyField = "COUNTRY_ID" LookupResultField = "COUNTRY_NAME" "cityname" /*это то самое, которое не получается*/ FieldKind = fkLookup KeyFields = ? LookupDataset = ? LookupKeyField = ? LookupResultField = ? Я хочу, чтобы в списке выбора cityname были только те города, которые есть в стране. Может быть у меня таблицы построены неправильно? Потому что в книге я подобных примеров не нашла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2003, 21:40 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
Добавьте TQuery: Name = CityInCountryDataSet DataSource=CountryDataset SQL = 'SELECT * FROM City' Тогда все получится так: "cityname" /*это то самое, которое не получается*/ FieldKind = fkLookup KeyFields = City_ID LookupDataset = CityInCountryDataSet LookupKeyField = City_ID LookupResultField = City_Name В таблице HOTEL поле Country_ID лишнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2003, 22:52 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
Виноват одну строку написал не правильно: SQL = 'SELECT * FROM City WHERE Country_ID=:Country_ID' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 00:20 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
Вы правы, TQuery подходит лучше. Но с полем осталось по прежнему. Мне хотелось, чтобы названия вводились и отображались в одном и том же поле(cityname), но показываются только те, которые есть в CityInCountryDataset Если к примеру Гостиницы(HotelDataset): 1 Гостиница1 Китай Суйфуньхэ 2 Гостиница2 Китай Харбин 3 Гостиница3 Япония Токио Результат запроса(CityInCountryDataset): Ниигата Япония Токио Япония то Гостиницы будут выглядеть так: 1 Гостиница1 Китай 2 Гостиница2 Китай 3 Гостиница3 Япония Токио Но, я так думаю, если страна здесь не нужна, можно успокоиться и выбирать города из CityDataset. Тогда я ничего не понимаю с этой нормализацией: получается, что в следующей таблице будут лишними поля CITY_ID и COUNTRY_ID, но ведь по смыслу они более важны, чем HOTEL_ID, если допустить, что заполнение HOTEL_ID необязательно? TABLE "TOUR" ( "TOUR_ID" (PK) "CITY_ID" (FK) "COUNTRY_ID" (FK) "HOTEL_ID" (FK) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 20:03 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
Все таки не до конца понял, что Вы хотите получить. 1. Чтобы при просмотре таблицы HOTEL отображались все города. 2. При вводе города в ComboBox в выпадающем списке были города одной страны. Если я правильно понял подтвердите, если нет объясните. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 20:30 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
Все верно, только у меня DBGrid для ввода и просмотра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 20:39 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
Простого решения не вижу. Есть 2 способа: 1. Сделать DBGrid нередактируемым, создать 3 кнопки: <Добавить>, <Изменить>, <Удалить>, по <добавить> и <изменить> открывается окно с полями ввода, поле город DBLookupComboBox. при открытии окна LookupDataSet меняется с CityDataset на CityInCountryDataset, при закрытии обратно. Следует предусмотреть изменение CityInCountryDataset при изменении Country_ID. 2. Без окна. На Query для HOTEL определить событие AfterScroll (срабатывает при изменении текущей записи), в нем заполнить свойство PickList, списком из CityInCountryDataset. Изменение PickList следует предусмотреть при изменении Country_ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 21:19 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
Спасибо, все получилось. А как быть с таблицами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 23:19 |
|
||
|
lookup-поле
|
|||
|---|---|---|---|
|
#18+
В таблице TABLE "HOTEL" /*HotelDataset*/ ( "HOTEL_ID" (PK) "HOTEL_NAME" "COUNTRY_ID" (FK) "CITY_ID" (FK) ) поле "COUNTRY_ID" не нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 14:29 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32338821&tid=2115638]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 416ms |

| 0 / 0 |
