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

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

look up поля [D5, IB6.x]


Sour ©   (2002-05-18 10:07:00) 

Есть таблицы:

1. spravochnick
id
text

2. main
id
referencesTOsp

Вставляю IBDataSet.
Добавляю все поля и добавляю новое look up STEXT, чтобы отображалось поле text из справочника.
Все работает нормально. Но изменить это look up нельзя. Я пишу в ModifySQL

update spravochnick set
text = :new.STEXT
where id = :old.id

И нечерта не работает. Ошибка SQL 104 во второй строке.

Что надо сделать, чтобы прямо в DBGrid-е можно было менять/удалять/изменять look up поля, чтобы изменения заносились в базу.
Как узнать, что изменилось в базе, я думал, что :new.поле - верное решение?

В свойстве SQL пишу:
select * from main


kaif   (2002-05-18 14:22:00) [1]

Логических ограничений я не вижу на то, чтобы редактировать справочник одновременно с зависящей от него таблицей.
Однако, юзер может не разобраться в случае, если вдруг при редактировании произойдет нарушение уникальности значений справочника (он меняет Васю на Петю, а Петя уже имеется в справочнике). Он может сдуру решить, что он нарушает уникальность основной таблицы и долго пытаться от этого избавиться.
С моей точки зрения юзеру всегда удобнее редактировать справочник отдельно, нажав на некую кнопку типа ellipsis.


Johnmen   (2002-05-18 12:51:00) [2]

>Desdechado © (18.05.02 12:16)
Это, в целом, верно, но бывают ситуации, когда в DBGrid-е надо не только выбирать значение лукапа из списка, но и вводить с клавы значения, отсутствующие в справочнике....
(Естественно, с соответствующем помещением их в справочник)


Desdechado   (2002-05-18 12:16:00) [3]

вообще-то справочники редактируют отдельно от таблиц, в которых их используют. А ты пытаешься изменить поле справочника, редактируя зависящую от него таблицу. Где логика?


Johnmen   (2002-05-18 10:45:00) [4]

1.
>text = :new.STEXT where id = :old.id - это чушь, т.к. в ModifySQL и т.д. присутствуют :fld , а это параметры, содержащие соотв. значения полей НД.
2.
>Что надо сделать, чтобы прямо в DBGrid-е можно было
>менять/удалять/изменять look up поля, чтобы изменения
>заносились в базу

Придется поработать ручками и головой :)
Придумать механизм реализации...
Как делал я, рассказывать долго....


Наверх

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