Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Lookup или не lookup - вот в чём вопрос (программирующий Гамлет) [D6, D7, MSSQL]


Страницы:   1 2

31512 ©   (2004-02-11 14:40:00) 

Проблема заключена в заставлении DBGrid работать так (или примерно так), как это сделано в Access. Итак есть на MS SQL Server 2000 база данных. В базе данных имеется несколько таблиц, связанных отношениями. Например пусть есть

таблица "Организации", с полями:
"Наименование организации"- ключевое поле (nvarchar(255)),
"Юридический адрес" (nvarchar(255)), и т.д. (атрибуты организации).
Вторая таблица "Регистрационные номера"с полями "Регистрационный номер"- ключевое поле (nvarchar(255)), "Наименование организации"(nvarchar(255)) - оно берётся из таблицы "Организации". Таблицы, естественно связаны отношением один-ко-многимВот так:

Организации1------------| Регистрационные номера
Наименование организации| Регистрационный номер
Юридический адрес |-->Наименование организации
ПолеX $ ПолеY
ПолеY ПолеZ
ПолеZ .
. .
. .
.
Значок $ заменяет значок бесконечности...

Первое: является ли поле [Регистрационные номера].[Наименование организации] lookup полем?

Ясно что что в нём хранятся значения ключевого поля таблицы Организации. Если бы в Организацииключевым полем был бы "Счётчик", то в Регистрационные номера].[Наименование организации] хранились бы соответсвующие значения это счётчика из таблицы Организации.

Второе: как заставить DBGrid поступать так же как это делает редактор в Access?.

Ведь Access формирует на клетке сетки Комбобокс, а из него выбираются значения поля подстановки ( не значения ключевого поля).


Плохиш   (2004-02-12 10:41:00) [21]


> 31512 © (12.02.04 10:31) [12]

> Блин, ну трудно объясняться на расстоянии


Блин, ну ни фига себе, угрозы пошли.


31512   (2004-02-12 10:31:00) [22]

Для Sergey13
Просто хотелось упростить проблему. То есть вообще решить задачу, для любых баз данных MS SQL Server 2000. Блин, ну трудно объясняться на расстоянии.


Sergey13   (2004-02-12 10:11:00) [23]

231512 © (12.02.04 09:51) [9]
>Ты не прав в корне.
1. Я прав всегда
2. Если я не прав см. п.1
8-)

>Это пример, возможно, неудачный
Да уж.

>Забудь про 1С
А что это?

>Первое: является ли поле [Регистрационные номера].[Наименование организации] lookup полем?
Как ты сделаешь в апликухе, так и будет. Сделаешь лукапом, будет им (но скорее не им а полем связи для лукапного поля, если я не запутался в твоих именах полей 8-). Вставишь в запрос, не будет лукапом.

>Второе: как заставить DBGrid поступать так же как это делает редактор в Access?.Ведь Access формирует на клетке сетки Комбобокс
Я уж не помню как в стандартном гриде (давно не юзал), в EhLib-овском вроде будет так же.

>Вопрос прост: как заставить DBGrid работать так как это сделано в Access.

Вот и изъяснялся бы попроще (не по Гамлетовски 8-) - как вделать в грид комбобокс. Было бы проще. ИМХО. А то ... ту би не ту би. Как в Аксес да на МS SQL. Нет у меня этого аксеса на МS SQL.
8-)


Соловьев   (2004-02-12 09:56:00) [24]

чтобы в сентке появилось выпадающий список - надо сделать новое поле Lookup и при редактировании автоматически будет список


31512   (2004-02-12 09:51:00) [25]

Для Sergey13!!!!
Для начала хочу сказать спасибо что откликнулся.
Ты не прав в корне.
Во-первых
Это пример, возможно, неудачный, на самом деле всё сложнее. Я лишь пытался облегчить понимание проблемы. Я не просил анализировать пример базы данных. Базу данных я давно сделал и к ней претензий нет. Она не имеет отношения к продавцам, покупетелям и т.д. Ещё раз, это просто пример, от балды...
Во-вторых
Забудь про 1С. Нет её. Просвоение регистрационного номера - это операция. Этому соответсвует целая кипа государственных докумунтов и сам номер не просто набор цифр. Тоже самое относится и к отмене регистрационного номера. Поясню: даже если организация исчезла с лица планеты, то регистрационный номер за неё всё равно остаётся. И его нельзя присвоить другой организации. Отмена регистрационного номера - операция(тоже с кипой документов).
В третьих
Вопрос прост: как заставить DBGrid работать так как это сделано в Access.


Sergey13   (2004-02-12 09:04:00) [26]

to 31512 © (11.02.04 14:40)
Че то, сдается мне, ты напутал при проектировании, а решаешь проблему с гридом. Какое поле у тебя ПК?
>"Наименование организации" - ключевое поле (nvarchar(255))
А завтра название поменяли, и что? Все перелопачивать? Я уж не говорю про производительность такого ключа.

Регистрационные номера - их может быть сколько угодно, или все таки ограниченное количество? Есл второе, я бы прямо в первую таблицу вставил. Да и вообще, что организация является продавцом, покупателем или производителем, ИМХО, должно следовать из ОПЕРАЦИИ (продажи, покупки...). Иначе не исключены возможности записи продажи на покупателя и наоборот.


31512   (2004-02-12 08:46:00) [27]

Для Anatoly Podgoretsky. Нет, один ко многим. Каждое предриятие может иметь несколько регистрационных номеров.


31512   (2004-02-12 08:44:00) [28]

Для VLAD-MAL:
Да, много. Приведу пример:
Супермаркет "Рамстор" имеет регистрационный номер X как производитель товара, регистрационный номер Y как покупатель товара, регистрационный номер Z как перепродавец товара. Так очень удобно классифицировать организации. Могу дать детальные пояснения.


Shaman   (2004-02-11 15:31:00) [29]

используй join в запросе


VLAD-MAL   (2004-02-11 14:50:00) [30]

Ой, блин, чего это я?

Не TDBLookupComboBox, конечно же, а Lookup - поля!


Anatoly Podgoretsky   (2004-02-11 14:48:00) [31]

Это все таки один ко одному связь


VLAD-MAL   (2004-02-11 14:45:00) [32]

TDBLookupComboBox

---------------
Интересно, у тебя что, у одной организации много рег. номеров может быть?


Fiend   (2004-02-11 14:45:00) [33]

самому надо анализировать таблицу и добавлять лукап поля. Ничего сложного. Я такое делал, тока для ФБ


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо