Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление новой записи с помощью навигатора / 15 сообщений из 15, страница 1 из 1
08.01.2018, 16:46:18
    #39580592
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
Привет всем.
Есть 2 зависимые таблицы. (Т1 - категория товара и Т2 - товар)
Т1 состоит из полей ID (не пустое) и CATNAME - компонент IBTable
Т2 состоит из полей ID(не пустое), IDCAT(не пустое) и ITEMNAME - компонент IBDataSet
В СУБД созданы первичные ключи Т1.ID и Т2.ID а также вторичный ключ на связь Т1.ID и Т2.IDCAT
На гриде с Т2 установлен навигатор.
Вопрос в следующем.
Например в таблице Т1 мы встали на запись с ID = 3
При нажатии кнопки "добавить запись" на навигаторе на гриде таблицы Т2 вводим значения. После попытки поста появляется сообщение "Полю ID требуется значение". Вроде есть триггер на инкремент перед вставкой.
Ну ладно. Убираем галочку "не пустое" с поля T2.ID.
Следующее сообщение после попытки поста - "Полю IDCAT требуется значение".
В свойстве T2.InsertSQL имеем запрос
Код: pascal
1.
INSERT INTO T2 (IDCAT, ITEMNAME) VALUES (:IDCAT, :ITEMNAME)


Полагаю, что значение :IDCAT - пустое.
Как в :IDCAT задать значение T1.ID и правильно ли я "победил" сообщение "Полю ID требуется значение"?
...
Рейтинг: 0 / 0
08.01.2018, 17:08:01
    #39580600
Tactical Nuclear Penguin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
HadroranКак в :IDCAT задать значение T1.ID и правильно ли я "победил" сообщение "Полю ID требуется значение"?

1. задать ручками
2. что именно ты победил?
...
Рейтинг: 0 / 0
08.01.2018, 19:37:56
    #39580651
Любезный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
авторНа гриде с Т2 установлен навигатор.
Здесь Delphi никто не знает. (С)
...
Рейтинг: 0 / 0
08.01.2018, 19:46:37
    #39580654
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
HadroranКак в :IDCAT задать значение T1.ID
видимо, для датасета с T2 не указана зависимость от датасета T1.
связь эта делается через datasource. Читаем
http://www.ibase.ru/ibx/
раздел Master-Detail.
...
Рейтинг: 0 / 0
08.01.2018, 19:48:34
    #39580657
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
Hadroran,

гм, про мастер-деталь не совсем в кассу, тогда дополню, что в данном случае датасет Т1 является "справочным" для столбца idcat T2. В общем, почитайте про датасеты и datasource, и т.д.
...
Рейтинг: 0 / 0
08.01.2018, 20:14:46
    #39580667
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
Как всегда не удивлен....
...
Рейтинг: 0 / 0
08.01.2018, 20:18:15
    #39580668
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
ЛюбезныйавторНа гриде с Т2 установлен навигатор.
Здесь Delphi никто не знает. (С)

Ах да... навигатор то тока в дельфях... Простите что не по адресу.
...
Рейтинг: 0 / 0
08.01.2018, 20:21:45
    #39580670
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
Тогда может кто подсказать. В коде для свойства InsertSQL
Код: pascal
1.
INSERT INTO T2 (IDCAT, ITEMNAME) VALUES (:IDCAT, :ITEMNAME)


:IDCAT как можно написать, чтобы значение бралось с Т1.ID.
Ну например, так (но так не работает)
Код: pascal
1.
INSERT INTO T2 (IDCAT, ITEMNAME) VALUES (:"T1"."ID", :ITEMNAME)
...
Рейтинг: 0 / 0
08.01.2018, 20:26:48
    #39580673
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
Hadroran> Как всегда не удивлен....

Чему именно?

1. Топик создал не там (модераторы перенесут).
2. Это классическая связка мастер-деталь.
Соответственно её техническая реализация
зависит от используемой библиотеки доступа
(которую ты не назвал).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.01.2018, 20:36:54
    #39580676
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
kdvЧитаем http://ibase.ru/ibx раздел Master-Detail.Глянул по диагонали.

1. Во-первых, в статье нет оглавления со ссылками
(не помню, было ли раньше - кажется, было) - для
статьи таких размеров в 2018 это даже не смешно.

2. Статья (особенно указанный раздел) устарела
очень сильно, нужно дописывать, ИМХО.
...
Рейтинг: 0 / 0
08.01.2018, 20:38:30
    #39580677
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
Hadroran> :IDCAT как можно написать, чтобы значение бралось с Т1.ID.

Зависит от библиотеки доступа. В FIBPlus можно использовать префикс MAS_.
Ну и, конечно, во всех библиотеках можно вручную заполнять, наверное.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.01.2018, 23:28:15
    #39580744
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
Гаджимурадов РустамВо-первых, в статье нет оглавления со ссылками
(не помню, было ли раньше - кажется, было) - для
статьи таких размеров в 2018 это даже не смешно.
не было там оглавления. ибо нефиг. читать надо все. Статья для начинающих, а не справочник с заходами на нужные темы.
В конце-концов есть кнопка Ctrl-F.

Гаджимурадов РустамСтатья (особенно указанный раздел) устарела
очень сильно, нужно дописывать
устарела в каком именно смысле? В IBX все по прежнему, ничего существенно нового (кроме юникода) с момента написания статьи не появилось.
А про то что спрашивает автор топика, там и так не было. Типа, это слишком просто, чтобы спрашивать, да и не спрашивал никто.
...
Рейтинг: 0 / 0
08.01.2018, 23:32:44
    #39580747
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
Гаджимурадов Рустам,

собственно, вопрос сугубо интерфейсный, и достаточно дурной. Допустим, мы видим таблицу Т2 в гриде.
А как мы видим таблицу Т1? Тоже в гриде, отдельном? И что, надо встать в гриде Т1, а потом жмакать кнопку вставки в гриде Т2?
Ересь какая-то. Почему-бы не сделать в поле idcat вываливающийся список значений из Т1. Как это делать - написано во всех учебниках.
...
Рейтинг: 0 / 0
09.01.2018, 00:03:29
    #39580755
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
kdv... И что, надо встать в гриде Т1, а потом жмакать кнопку вставки в гриде Т2?
Ересь какая-то. Почему-бы не сделать в поле idcat вываливающийся список значений из Т1...
Одно другому не мешает. Если ты работаешь с элементами (Т2) конкретной категории (ссылающимися на конкретную записью таблицы T1), то вполне логично, что добавление нового элемента в T2 автоматически заполняет ключевое поле, ссылающееся на соответствующий элемент T1. Если не устраивает- меняешь (вываливается список и т.п.).

Модератор: Тема перенесена из форума "Firebird, InterBase".
...
Рейтинг: 0 / 0
09.01.2018, 00:20:02
    #39580758
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи с помощью навигатора
kdv> не было там оглавления. ибо нефиг. читать надо все

Узнаю брата Колю, узнаю... (с) Если на суахили на каком-нибудь
сельскохозяйственном форуме Танзании кто-то напишет что-то
в таком же стиле - я подумаю, что это ты там отпуск проводишь.

> устарела в каком именно смысле?

Раз для начинающих - надо как HowTo - связали - молодцы, а
инсертим так-то и так-то (примеры для известных 2-3 способов).

kdv> собственно, вопрос сугубо интерфейсный

Не, GUI тут как раз второстепенен. ТС хочет вставлять
через присвоение DetailDataSet.Fields + Post и спрашивает как.

kdv> Ересь какая-то. Почему-бы не сделать в поле idcat
kdv> вываливающийся список значений из Т1.

Это а) подразумевает использование лукапов, которых многие
(если не большинство) чураются (кто - из брезгливости, кто из
религиозных соображений, кого производительность/удобство
не устраивают, кто тупо приготовить не смог); б) редактирование
в гриде, что ещё хуже, чем "а". Так что сам ты ересь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление новой записи с помощью навигатора / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]