powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / View Firebird 3. Динамические поля
25 сообщений из 55, страница 1 из 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
25 сообщений из 55, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / View Firebird 3. Динамические поля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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