Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / View Firebird 3. Динамические поля / 25 сообщений из 55, страница 1 из 3
14.08.2021, 10:09
    #40090707
NewTop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
В созданном view есть динамические поля склеенные из текста и полей типа integer. Динамическое поле вычисляет размер как сумма символов теста и + 1 символ для integer. Пока в поле integer просто цифра, все ок. Как только в поле записал 2-3.. - значное число выдает ошибку, что мол строковое поле имеет длину 5 а вы пытаетесь получить поле длинной 6 (7,8,..).
Перешел с firebird2.5 на 3 версию. На 2,5 такой проблемы не встречал.
...
Рейтинг: 0 / 0
14.08.2021, 12:03
    #40090715
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
Пример ?
...
Рейтинг: 0 / 0
14.08.2021, 13:36
    #40090726
NewTop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
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
14.08.2021, 13:38
    #40090727
NewTop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
Firebird 3.0.7
IBExpert 2021.8.10
...
Рейтинг: 0 / 0
14.08.2021, 13:54
    #40090733
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
NewTop,

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

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

это не пример.
Я не могу это выполнить в isql и увидеть ошибку.
...
Рейтинг: 0 / 0
15.08.2021, 14:36
    #40090881
NewTop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
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
15.08.2021, 14:41
    #40090882
NewTop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
NewTop,

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

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

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

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

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

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

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

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

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

Разбираться с регистрацией трекера нету времени. Если сообщение оставленное здесь будет достаточно для разработчиков, то было бы хорошо.
...
Рейтинг: 0 / 0
16.08.2021, 08:03
    #40090929
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
Тут, как бы, "нет времени" работает в обе стороны. И было бы полезно помнить об этом.
...
Рейтинг: 0 / 0
16.08.2021, 11:41
    #40090960
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
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
16.08.2021, 11:41
    #40090961
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
NewTop,

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

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

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

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

PS Научить коммитить метаданные перед тем, как выполнять запросы ?
...
Рейтинг: 0 / 0
16.08.2021, 13:56
    #40091014
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
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
16.08.2021, 14:03
    #40091016
NewTop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
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
16.08.2021, 14:17
    #40091019
NewTop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View Firebird 3. Динамические поля
hvlad
NewTop,

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

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


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

NewTop
Но почему-то на русскоязычных форумах любят тратить свое и чужое время на пустую болтовню
Как в воду глядишь :)
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / View Firebird 3. Динамические поля / 25 сообщений из 55, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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