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

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

Сделать в Query неБазовое поле


Страницы:   1 2

lightix ©   (2003-05-07 10:03:00) 

Как сделать в Query неБазовое поле (типа как вычисляемое, но чтобы пользователь мог менять его значение)?


Соловьев   (2003-05-07 11:08:00) [21]


> Не хотят они выбирать... а проверка на наличие в справочнике
> должна быть...

геморой конечно... у меня тоже юзеры попорченные...:))
я думаю может тогда сделать так: вычислить поле, onCalcField
и присвоить значение Edit пусть себе юзеры редактят. А потом перед сохранением бей на части(вот тут геморой и начинается) и исчи в справочниках... ИМХО, геморой обеспечен... Что хоть за хадача? може структура БД неверна?


Sergey13   (2003-05-07 11:08:00) [22]

2lightix (07.05.03 11:01)
>kt_perem это не поле а таблица
Сори, не то скопировал. Хотел podr.
>Так что делать-то, посоветуйте?
Читай выше. Много насоветовали уже. 8-)
Юзер - он не клиент, и потому не всегда прав.


Anatoly Podgoretsky   (2003-05-07 11:05:00) [23]

После изменения по определению поле должно снова вычислиться и вся работа насмарку, иначе поле не вычисляемое, в этом и весь парадокс.

passm © (07.05.03 10:18)
Ты знаешь слово Парадокс это не только база данных такого типа.


lightix   (2003-05-07 11:01:00) [24]

2Соловьев:
Не хотят они выбирать... а проверка на наличие в справочнике должна быть...

2Sergey13:
Оракл+NCOCI8
kt_perem это не поле а таблица.

Кеширование на Query включил, не помогло...
Так что делать-то, посоветуйте?


Sergey13   (2003-05-07 11:01:00) [25]

2lightix (07.05.03 10:52)
Соловьев © (07.05.03 10:55) прав.
А уж если хочется именно так, то поставь рядышком 2 дбедита и будет юзерам счастье. 8-)


Zacho   (2003-05-07 10:58:00) [26]


> lightix (07.05.03 10:40)
> Редактироваться оно то редактируется, но когда перехожу
> на любое другое поле, оно чистится :(((

CachedUpdates:=true - и все изменения в этом поле будут сохраняться. Не забудь в нужном месте сделать ApplyUpdates. Еще тебе могут пригодиться события TField.OnGetText и TFiled.OnSetText


Соловьев   (2003-05-07 10:55:00) [27]


> некоторых программах юзера не хотят вводить их в отдельных
> полях, хочет в одном как 0102

прямой путь к недостоверным данным. Юзеры не должны их вводить, а выбирать из справочника.


lightix   (2003-05-07 10:52:00) [28]

В таблице в отдельных полях хранится NOTD -номер отдела
и NGRP - номер группы
например 01 и 02
в некоторых программах юзера не хотят вводить их в отдельных полях, хочет в одном как 0102, а в других программах наоборот вот и приходится извращаться ....


Sergey13   (2003-05-07 10:49:00) [29]

2lightix (07.05.03 10:40)
Судя по запросу Оракл+ДОА, я прав?
Так он тебе не даст редактировать, потому что в таблице нет такого поля kt_perem.


Danilka   (2003-05-07 10:45:00) [30]

lightix
а для чего это может понадобиться, если не секрет? просо, не могу прдставить такой ситуации


lightix   (2003-05-07 10:40:00) [31]

Написал так:
select t.*,t.rowid,cast(null as varchar2(4)) as podr from kt_perem as t
where nvl(prz,0)=0
and tabn=:TABN

Редактироваться оно то редактируется, но когда перехожу на любое другое поле, оно чистится :(((
А мне нужно чтобы значение сохранялось (в Query)... и чтобы его можно было потом использовать ...

На форме стоит DBCtrlGrid ну и на нем DBEdit...
В таблице имеются поля
NOTD VARCHAR2(2);
NGRP VARCHAR2(2);

Поле PODR вычисляется как NOTD || NGRP. Если Пользователь изменил значение PODR то первые 2 символа идут в NOTD, остальные в NGRP..
и т.п.


Zacho   (2003-05-07 10:38:00) [32]


> Sergey13 © (07.05.03 10:30)

Да почему никак ? См. passm © (07.05.03 10:09) и еще, скорее всго, потребуется включить CascedUpdates. Сам так делаю, имхо нормальный способ.


Sergey13   (2003-05-07 10:30:00) [33]

2lightix (07.05.03 10:03)
Нормально, ИМХО, никак. Придется поизвращаться. Я в таких случаях использую таблицы в памяти RxMemoryData.


passm   (2003-05-07 10:18:00) [34]

Anatoly Podgoretsky © (07.05.03 10:11)> Нет. Вопрос не звучит: как редактировать вычисляемое поле...
А кто сказал, что Paradox? ;))
Я понял, что ему нужно сгенерировать поле SQL"ем и редактировать.


Соловьев   (2003-05-07 10:12:00) [35]


> типа как вычисляемое, но чтобы пользователь мог менять его
> значение)?

меняешь те поля которые участвуют в вычислениях. а вычисляемое менять нельзя.


Anatoly Podgoretsky   (2003-05-07 10:11:00) [36]

Парадокса не наблюдаешь между вычисляемым и редактируемым.


passm   (2003-05-07 10:09:00) [37]

Например:
SELECT T1.FIELD1, T1.FIELD2, CAST(NULL AS INTEGER) AS MODE_FIELD
FROM TABLE1 AS T1

И позволь менять MODE_FIELD.


Страницы:   1 2

Наверх

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