powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / View Firebird 3. Динамические поля
55 сообщений из 55, показаны все 3 страниц
View Firebird 3. Динамические поля
    #40090707
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В созданном view есть динамические поля склеенные из текста и полей типа integer. Динамическое поле вычисляет размер как сумма символов теста и + 1 символ для integer. Пока в поле integer просто цифра, все ок. Как только в поле записал 2-3.. - значное число выдает ошибку, что мол строковое поле имеет длину 5 а вы пытаетесь получить поле длинной 6 (7,8,..).
Перешел с firebird2.5 на 3 версию. На 2,5 такой проблемы не встречал.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090715
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример ?
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090726
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

таблица TB1
поле rent_min smallint
поле rent_max smallint

CREATE OR ALTER VIEW VW_TB1 (
rent
)
AS
SELECT
'аренда от '||rent_min||' до '||rent_max||' дней'
FROM
tb1

При первичном создании view размер вроде нормально считает, но стоит внести изменения и сохранить view заново, как поле укорачивается
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090727
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Firebird 3.0.7
IBExpert 2021.8.10
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090733
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop,

Проблемав делфи, я так понимаю. Запоминаешь что-то там (или эксперт запоминает).

Можно навсякий сделать этому всему CAST AS VARCHAR(20)
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090749
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop,

это не пример.
Я не могу это выполнить в isql и увидеть ошибку.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090881
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

/******************************************************************************/
/*** Tables ***/
/******************************************************************************/



CREATE TABLE TB1 (
RENT_MIN SMALLINT,
RENT_MAX SMALLINT
);



/******************************************************************************/
/*** Views ***/
/******************************************************************************/


/* View: VW_TB1 */
CREATE VIEW VW_TB1(
RENT)
AS
select
'от '||rent_min||' до '||rent_max||' дней'
from tb1
;


INSERT INTO TB1 (RENT_MIN, RENT_MAX)
VALUES (1, 1);


COMMIT WORK;
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090882
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewTop,

Отредактируйте view несколько раз, измените текст например.
Поменяйте данные в таблице, запишите 100 и 1000.
Попробуйте вызвать view и увидите ошибку.

Еще более детально не знаю как показать.

Система Windows 7 64 bit.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090883
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop
Отредактируйте view несколько раз, измените текст например.
Поменяйте данные в таблице, запишите 100 и 1000.
Попробуйте вызвать view и увидите ошибку.
Этого нет в тесте выше.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090884
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

CREATE OR ALTER VIEW VW_TB1 (
RENT)
AS
select
'аренда от '||rent_min||' до '||rent_max||' дней'
from tb1
;

update tb1 set rent_min=100,rent_max=100
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090887
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop,

и что показывает isql в итоге ?

ps для форматирования sql текста тут есть соотв. тег
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090911
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop,

привести метаданные осилил, а посмотреть в описание view не смог?
Там rent varchar(24), из которых 19 символов занимает текст 'аренда от '||rent_min||' до '||rent_max||' дней'.
На подставляемые значения остается всего 5 символов.
Совет сделать cast строке уже дали.
Хотя, вычисление сервера кривое. Т.е. сервак для smallint должен явно предполагать что там будет 5 цифр. А значит столбец во view должен создаваться как 19+5+5, т.е. не 24, а 29 символов.
я бы зарегал в трекер как баг.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090917
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

да, а до того как исправят, надо сделать нормальный cast с достаточным размером строки.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090923
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Т.е. сервак для smallint должен явно предполагать что там будет 5 цифр
... плюс знак.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090924
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

Cast as varchar уже сделал, я написал сюда чтобы разработчики увидели ошибку и исправили.

"привести метаданные осилил, а посмотреть в описание view не смог?" - не совсем понял, что вы имели ввиду, если размер динамического поля, то я вижу его, в самом первом сообщении указал, что размер получается неправильный

Разбираться с регистрацией трекера нету времени. Если сообщение оставленное здесь будет достаточно для разработчиков, то было бы хорошо.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090929
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут, как бы, "нет времени" работает в обе стороны. И было бы полезно помнить об этом.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090960
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

ты всё напутал.

Для первого варианта view c "'от '||rent_min||' до '||rent_max||' дней'" я вижу VARCHR(24).

Для второго с 'аренда от '||rent_min||' до '||rent_max||' дней' - VARCHR(31).

Для варианта с rent_min||'-'||rent_max - VARCHAR(13), что однозначно указывает на 6 символов для каждого числа.

И до сих пор никто не показал ошибку в isql.

Тщательнее надо... (ц)
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40090961
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop,

без воспроизводимого примера нет смысла идти в трекер.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091006
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
NewTop,

без воспроизводимого примера нет смысла идти в трекер.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091011
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

добавил "аренда " размер поля увеличился с 16 до 19, хотя в слове "аренда " 7 символов (включая пробел)
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091013
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop,

Где воспроизводимый в isql пример ?
Куда мне эти картинки приложить ?

PS Научить коммитить метаданные перед тем, как выполнять запросы ?
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091014
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
SQL> set names win1251;
SQL> create database 'z:\temp\v.fdb';

SQL> show version;
ISQL Version: WI-V3.0.8.33484 Firebird 3.0
Server version:
Firebird/Windows/AMD/Intel/x64 (access method), version "WI-V3.0.8.33484 Firebird 3.0"
on disk structure version 12.0

SQL> CREATE TABLE TB1 (
CON> RENT_MIN SMALLINT,
CON> RENT_MAX SMALLINT
CON> );

SQL> CREATE VIEW VW_TB1(
CON> RENT)
CON> AS
CON> select
CON> 'от '||rent_min||' до '||rent_max||' дней'
CON> from tb1
CON> ;

SQL> INSERT INTO TB1 (RENT_MIN, RENT_MAX)
CON> VALUES (1, 1);
SQL>
SQL>
SQL> COMMIT WORK;

SQL> show view VW_TB1;
RENT                            VARCHAR(24) CHARACTER SET WIN1251 Expression
View Source:
==== ======
select
'от '||rent_min||' до '||rent_max||' дней'
from tb1

SQL> CREATE OR ALTER VIEW VW_TB1 (
CON> RENT)
CON> AS
CON> select
CON> 'аренда от '||rent_min||' до '||rent_max||' дней'
CON> from tb1;
SQL>
SQL> show view VW_TB1;
RENT                            VARCHAR(31) CHARACTER SET WIN1251 Expression
View Source:
==== ======
select
'аренда от '||rent_min||' до '||rent_max||' дней'
from tb1
SQL>
SQL> drop database;
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091016
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

Isql правильно вычисляет размер поля, значит виноват IBExpert.

SQL> CREATE OR ALTER VIEW VW_TB1(RENT) AS select 'аренда от '||rent_min||' до '|
|rent_max||' дней' from tb1;
SQL> select * from vw_tb1;

RENT
===============================
аренда от 100 до 110 дней

SQL>

IBExpert правильно показал размер поля Varchar(31)

Я привык к IBExpert, не стал тестировать через isql.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091019
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
NewTop,

Где воспроизводимый в isql пример ?
Куда мне эти картинки приложить ?

PS Научить коммитить метаданные перед тем, как выполнять запросы ?


Вы не правильно задаете вопросы. Не читаете вопросы, а пытаетесь сразу умничать. Firebird популярен благодаря IBExpert, я использую его как удобный инструмент. Сразу лезть в isql не стал. Оба продукта достаточно зрелые и я не ожидал такого поведения.
Если бы показали, что в isql никаких проблем нет, и что нужно искать ошибку в IBExpert, то не пришлось бы раздувать эту тему.
Но почему-то на русскоязычных форумах любят тратить свое и чужое время на пустую болтовню. Модератор, прошу закрыть тему.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091024
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop
Вы не правильно задаете вопросы
Да и вообще - как я посмел задавать вопросы ? :)

NewTop
Но почему-то на русскоязычных форумах любят тратить свое и чужое время на пустую болтовню
Как в воду глядишь :)
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091026
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop
Вы не правильно задаете вопросы. Не читаете вопросы, а пытаетесь сразу умничать.
Найдите время в своём плотном графике, чтобы поинтересоваться списком ключевых разработчиков СУБД Firebird.

P.S.
Я вот ни разу не программист, но и мне непонятно, почему "типа самые умные", не в состоянии выложить текст.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091031
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop

Isql правильно вычисляет размер поля, значит виноват IBExpert.


Эксперт там ничего не вычисляет. Как и isql, впрочем.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091035
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop
Модератор, прошу закрыть тему.
А поговорить?
Причина ошибки, очевидно, в чём-то другом, а не в том, что показалось с первого взгляда.
Может, всё же выясним? Или уже не интересно, отказываешься от использования IBExpert и FB3 как неправильных?
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091230
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpert
NewTop

Isql правильно вычисляет размер поля, значит виноват IBExpert.


Эксперт там ничего не вычисляет. Как и isql, впрочем.


Поясните пожалуйста в чем тогда ошибка? При редактирований view через isql динамические поля получаются нужного размера, а через IBExpert размер урезан.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091234
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop,

IBExpert при "редактировании" показывает скрипт, который он собирается для этого редактирования применить.
Он не отличается от того, что ты isql скармливал?
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091377
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop
Поясните пожалуйста в чем тогда ошибка? При редактирований view через isql динамические поля получаются нужного размера, а через IBExpert размер урезан.


Я не знаю, в чем ошибка. Могу только подтвердить, что проблема есть и воспроизводится в эксперте и под FB 3, и под FB 4.
В обоих случаях CREATE VIEW передается на сервер так, как его написал пользователь. Дальнейшими вычислениями занимается сервер, поэтому вины эксперта я здесь не вижу.

А воспроизведение в isql от тебя просят для того, чтобы исключить влияние багов и особенностей сторонних инструментов, к которым разработчики сервера отношения не имеют.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091392
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Могу только подтвердить, что проблема есть и воспроизводится в эксперте и под FB 3, и под FB 4
Как её воспроизвести ?
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091397
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
Как её воспроизвести ?


В isql - не знаю. В эксперте выполнить скрипт:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE TB1 (
    RENT_MIN  SMALLINT,
    RENT_MAX  SMALLINT
);

/* View: VW_TB1 */
CREATE VIEW VW_TB1(
    RENT)
AS
select
'от '||rent_min||' до '||rent_max||' дней'
from tb1
;



После чего уже видно, что поле RENT вьюхи имеет тип VARCHAR(16)
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091419
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

нет, varchar(24).
ibe 2021.5.14.1, FB 3.0.7.33374, чарсет базы NONE.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091420
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
IBExpert,

нет, varchar(24).
ibe 2021.5.14.1, FB 3.0.73347, чарсет базы NONE.


p.s. выполнял НЕ скрипт, а create/commit/create/commit в sql editor.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091426
demon1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv
IBExpert,

нет, varchar(24).
ibe 2021.5.14.1, FB 3.0.7.33374, чарсет базы NONE.

Проблема в кодировке, в которой коннектишся к базе.
Под 1251 проблем нет, 24 длина получается. Под utf8 - 16.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091431
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon1992
Под utf8 - 16.


Точно. У меня utf8 была.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091442
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE VIEW VW_TB1(
    RENT)
AS
select
_win1251'от '||rent_min||_win1251' до '||rent_max||_win1251' дней'
from tb1
;
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091449
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийа вот так:

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

В isql со скриптом в UTF-8 воспроизводится?
Текст запроса реально в какой кодировке?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091456
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВ isql со скриптом в UTF-8 воспроизводится?
я воспроизвел.

Тоже 16 получается. Файл скрипта uft8, кодировка utf8, set names utf8 и все дела, символы во вью нормальные,
и т.д.

Собственно, если упростить пример, и сделать

CREATE OR ALTER VIEW VW_TB2(
RENT)
AS
select
'от '||' до '||' дней'
from tb1
;

то мы увидим, что столбец у view - varchar(4), что совершенно импоссибль, инкредибль, и мерде
(при том что литералы по 3, 4 и 5 символов, как на заказ).

А значит - ФБ правильно делает по 6 символов на smallint. Но хрен поймешь как вычисляет длину строки.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091492
NewTop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Мимопроходящийа вот так:

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

В isql со скриптом в UTF-8 воспроизводится?
Текст запроса реально в какой кодировке?


UTF-8. Всегда по умолчанию использую его. Я был уверен, что вин-1251 уже практический ни кем не используется. И при тестировании через isql я не обратил внимание на кодировку, посмотрел только размер поля.

Могут ли разработчики без трекера начать исправлять эту ошибку?
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091494
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewTop,

могут. Но почему ты думаешь что они должны начать делать это прямо сейчас? Трекер он для того и есть, чтобы внести как напоминалку. Разработчики смотрят в трекер на баги, фичи и улучшения и выстраивают себе приоритет по их выполнению.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091513
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
я воспроизвел.
Занесешь в трекер ?
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091538
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

могобыть. надо ж еще и без конкатенации проверить. вечером.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091540
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Ржака
Код: sql
1.
2.
3.
4.
5.
6.
CREATE OR ALTER VIEW VW_TB3(
    RENT)
AS
select
'ab '||' ab '||' abcd'
from tb1;



VARCHAR(2) !!!! Так что можно и без русских букв.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091543
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

что-то я не очень понимаю пока.
Вот это выдало
select 'ab ' from tb1
varchar(2), как бы, причина понятна - пробелы справа урезаются, т.к. это char исходно.
Тут селект * from view так и выдает 'ab'.
А вот если сделать select rent||'a' from view
тут же лезет ошибка переполнения, expected length 3, actual 11.

А вот
select 'ab '||'cd ' from tb1
varchar(3) , что пока для меня загадка (типа должно быть или 2, или 4).
И при наличии данных в tb1 сразу тупо overflow идет при любом селекте.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091552
demon1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Длина поля высчитывается как целое число от деления на 4.
Если будет 'ab' или 'abcd' или 'abcdefg' будет char(1).
Если 'abcdefgh' то 2 и т.д.
Хз как ты получил 3 при 'ab '||'cd ', может перекомпилить забыл или коммит сделать, у меня получается varchar(1).
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091559
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon1992,

Я проверял по простому - методически.
Код: plaintext
1.
'ab ' - varchar(2)
'ab    ' - varchar(2) 
вывод - конечные пробелы игнорируются при подсчете?

Съедает-ли их компиляция view?
select view('ab ')||'a' - ошибка переполнения. Значит нет, не съедает.

До "деления" я в проверках не доехал, но да
'abcdefg' - да, превращается в varchar(1).
'abcdefgh' - да, превращается в varchar(2).
А 'abcdefgh ' - всё равно varchar(2).

Почему тогда 'ab ' varchar(2), а не varchar(1) ? 3/4 = 0+2 ? вместо 0+1 :-)

И varchar(3) я получил на конкатенации
Код: plaintext
'ab        '||'cd   '
обращаю внимание на пробелы - в первом куске их 8 штук.
2+8+2 = 12/4=3.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40091564
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon1992,

вот теперь бы еще сформулировать для трекера. И для русских букв в юникоде, получается, "кто-то делит" не на 4, а на 2.
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40097039
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз оно никому не надо, то и не надо, ок
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40097123
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
Ну раз оно никому не надо, то и не надо, ок


смежный вопрос: а конкатенацию строковых констант или арифметические операции над числовыми константами Firebird делает во время выполнения или во время компиляции?
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40097127
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

во время выполнения конечно. А вот результирующий размер и тип вычисляется во время подготовки запроса или компиляции view
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40097136
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40097210
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис
ggreggory,

во время выполнения конечно.


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

1) умножение на две трети X*(2/3) если не делать прерасчет приводит к операции умножения и деления.

2) конкатенацию строк приходится использовать в коде процедуры/триггера для переноса одной единой длинной строки, когда она "уходит за экран"
...
Рейтинг: 0 / 0
View Firebird 3. Динамические поля
    #40097221
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggoryконстанты разумно вычислять единократно, чем делая это каждый раз.

Разумно. Но напрочь поломает "хинты" класса f+0. Поэтому разумный программист
вычислит их самостоятельно, ещё при написании SQL. Заодно его не будет поджидать сюрприз "почему X*(2/3) всегда равно нулю".
...
Рейтинг: 0 / 0
55 сообщений из 55, показаны все 3 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / View Firebird 3. Динамические поля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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