|
Как правильно работать с вычисляемыми полями?
|
|||
---|---|---|---|
#18+
Здравствуйте! Обычная ситуация: в таблице есть поля для габаритов некоторого товара (length, width и height), но понадобится также и объем. Вводя в таблицу специальное поле volume, мы, по сути, создаем избыточную информацию и рискуем, что данные в таблице могут и рассогласоваться. С другой стороны, теперь придется создавать специальное поле и особым образом его обрабатывать. Способ, который мне известен, это добавить лишнее поле в запрос примерно так: SELECT length, width, height, (length * width * height) as volume FROM table Однако будет ли вычисляемое поле оперативно изменяться при изменении полей линейных размеров и не возникнут ли сложности с сохранением результатов? Опять же, в Lazarus был особый вид полей, так и называемых: вычисляемые. Они не упоминались даже в тексте запросов (т.е. запрос был бы таким: SELECT length, width, height FROM table) и присутствовали только в списках полей инспекторах запроса. Но всякий раз, когда в программе происходило бы изменение обычных полей запроса, инициировалось специальное событие, в котором можно было прописать вычисления и присваивания для поля volume. Это, в том числе, позволяло обходиться без описания лишних retrieval arguments запроса (если они требовались для вычислений поля). Есть ли аналог в PowerBuilder? А общий вопрос такой: как бы вы реализовали такую задачу? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2016, 14:12 |
|
Как правильно работать с вычисляемыми полями?
|
|||
---|---|---|---|
#18+
Apprehension, смотрите в сторону computed fields. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2016, 14:26 |
|
Как правильно работать с вычисляемыми полями?
|
|||
---|---|---|---|
#18+
05.12.2016 14:12, Apprehension пишет: > SELECT length, width, height, (length * width * height) as volume FROM table Можно и так. > Однако будет ли вычисляемое поле оперативно изменяться при изменении > полей линейных размеров Само - нет, потребуются некоторые телодвижения. > Опять же, в Lazarus был особый вид полей, так и называемых: вычисляемые. Это эха по PowerBuilder-у, причём тут Lazarus ;)? > Они не упоминались даже в тексте запросов (т.е. запрос был бы таким: > SELECT length, width, height FROM table) и присутствовали только в > списках полей инспекторах запроса. Но всякий раз, когда в программе > происходило бы изменение обычных полей запроса, инициировалось > специальное событие, в котором можно было прописать вычисления и > присваивания для поля volume. Это, в том числе, позволяло обходиться без > описания лишних retrieval arguments запроса (если они требовались для > вычислений поля). Есть ли аналог в PowerBuilder? В DW painter-е Insert -> Control -> Computed field. > А общий вопрос такой: как бы вы реализовали такую задачу? Если нужно сохранять резалтсет в текстовой файл - первый. Если нужно редактировать инфу на экране - второй. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2016, 18:27 |
|
Как правильно работать с вычисляемыми полями?
|
|||
---|---|---|---|
#18+
Спасибо! Кажется, это то самое... Я иногда поминаю Лазарус, поскольку имею небольшой опыт работы на нем и потому провожу с ним аналогии :) Еще вопрос: мне хочется, чтобы значение этого поля можно было выделять и копировать, но нельзя изменять. Какие свойства мне нужно настроить и как? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2016, 13:30 |
|
Как правильно работать с вычисляемыми полями?
|
|||
---|---|---|---|
#18+
Apprehension Еще вопрос: мне хочется, чтобы значение этого поля можно было выделять и копировать, но нельзя изменять. Какие свойства мне нужно настроить и как? Вряд-ли получиться у computed field не захватывает фокус , но можно попробовать выделять значение поля через контекстное меню по клику на поле открыть контекстное меню а по выбору copy скопировать значение в буфер обмена ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2016, 13:40 |
|
Как правильно работать с вычисляемыми полями?
|
|||
---|---|---|---|
#18+
pand Вряд-ли получиться у computed field не захватывает фокус , но можно попробовать выделять значение поля через контекстное меню по клику на поле открыть контекстное меню а по выбору copy скопировать значение в буфер обмена Да вот даже контекстное меню (по правому клику) не открывается... И еще - в других, обычных полях, вызвать контекстное меню получается только после того, как я в них захожу, а в вычисляемое заходить не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2016, 15:09 |
|
Как правильно работать с вычисляемыми полями?
|
|||
---|---|---|---|
#18+
06.12.2016 15:09, Apprehension пишет: > Да вот даже контекстное меню (по правому клику) не открывается... И еще > - в других, обычных полях, вызвать контекстное меню получается только > после того, как я в них захожу, а в вычисляемое заходить не получается. Вот и сделай с помощью обычного поля ;). А ещё лучше - займись чем-нибудь менее бессмысленным ;). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2016, 15:55 |
|
|
start [/forum/topic.php?fid=15&msg=39360482&tid=1335187]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
147ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 239ms |
total: | 488ms |
0 / 0 |