powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
20 сообщений из 20, страница 1 из 1
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602039
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Жила-была таблица, в которой варчар-поле объявлено как:
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE DOC_LIST (
    ID             DM_IDS NOT NULL /* DM_IDS = BIGINT NOT NULL */,
    DOC_NUMB       DM_NUMS /* DM_NUMS = VARCHAR(20) NOT NULL */,
    OPTYPE_ID      DM_IDS /* DM_IDS = BIGINT NOT NULL */,
    . . .
);

- и при этом:
Код: sql
1.
2.
3.
4.
5.
CREATE DOMAIN DM_NUMS AS 
VARCHAR(20) 
CHARACTER SET UTF8 
NOT NULL 
COLLATE NUMS_COLL 


Каждый раз, когда делается селект из этой таблицы, ИБЭ выводит данные из doc_numb с каким-то диким избытком по ширине (см аттач). Да, я делаю, конечно же, сразу Ctrl-[+] для автовыравнивания.
Но:
1) ИБЭ помнит это только до момента селекта из другой таблицы; как только я сделаю "другой селект", а затем снова вернуть к doc_list'у, - опять надо жмякать Упр-Плюс.
2) Откудова он вообще берёт размер графы для показа ? Не умножает ли он декларированную ширину (varchar( 20 )) на число байтов в кодировке (4), дабы получить ширину в октетах ? Ибо что-то очень похоже, судя по видимому размеру...
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602056
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

Вполне может быть, что грид инициализирует ширину столбца по размеру поля в пересчете на байты.
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602091
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertВполне может быть, что грид инициализирует ширину столбца по размеру поля в пересчете на байты.А нельзя ли в далёком и светлом будущем (ввиду моратория :)) научить грид смотреть не на число октетов, на на число символов ?
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602150
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

Короче, это в Options | Environment Options | Grid | Display formats задается.
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602167
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидIBExpertВполне может быть, что грид инициализирует ширину столбца по размеру поля в пересчете на байты.А нельзя ли в далёком и светлом будущем (ввиду моратория :)) научить грид смотреть не на число октетов, на на число символов ?
И если число символов больше 100 (например 255, или 4096, или 32000), то не делать невменяемую ширину столбца, а ограничиться 50-100 символами :)
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602219
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertOptions | Environment Options | Grid | Display formats задается.там тока спиннер с надписью: "String Fields Width (chars)" c нулём.
Что значит "ноль" - брать число октетов из DDL столба ?
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602220
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeИ если число символов больше 100 (например 255, или 4096, или 32000), то не делать невменяемую ширину столбца, а ограничиться 50-100 символами :)+1
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602230
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидтам тока спиннер с надписью: "String Fields Width (chars)" c нулём.
Что значит "ноль" - брать число октетов из DDL столба ?

Ё-мое... Ноль значит как у тебя сейчас. Нравится, как сейчас? Тогда оставь ноль.
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602306
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertТаблоидтам тока спиннер с надписью: "String Fields Width (chars)" c нулём.
Что значит "ноль" - брать число октетов из DDL столба ?Ё-мое... Ноль значит как у тебя сейчас. Нравится, как сейчас? Тогда оставь ноль.Если выставить не ноль (например, 20), то эта величина перебьёт значение длины в декларации поля.
Все поля будут под одну гребёнку.
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602341
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

Других бананьев у нас нэма.
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602371
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertДругих бананьев у нас нэма.ТаблоидА нельзя ли в далёком и светлом будущем <...> смотреть не на число октетов, на на число символов ?- ?
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602415
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вполне бы устроило и просто запоминание последних использованных при просмотре ширин столбцов...
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602534
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

Занудный ты... У меня тут далекое и светлое будущее уже наступило. Вчера...
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602597
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

а что такое произошло?
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38602601
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениса что такое произошло?

На 4 длину поделил ;)
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38603484
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertНа 4 длину поделил ;)надеюсь, это только для UTF8 столбов такое деление ?
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38603722
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertЗанудный ты... У меня тут далекое и светлое будущее уже наступило. Вчера...
. . .
На 4 длину поделил ;)Прошу прощения за назойливость, но у меня это светлое будущее до сих пор не наступает, несмотря на IBE 2014.4.1.1
Скрипт:
Код: 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.
recreate table t_utf8(
id bigint generated by default as identity primary key
,dts timestamp default 'now'
,s05 varchar(5) character set utf8
,s10 varchar(10) character set utf8
,s15 varchar(15) character set utf8
,s20 varchar(20) character set utf8 default '1234567890ABCDEFGHIJ'
);
commit;
insert into t_utf8(s05, s10, s15)
select
 rpad( '',  5, 'йцукенг' )
,rpad( '', 10, 'фывапро' )
,rpad( '', 15, 'ячсмитьбюждл' )
from rdb$formats rows 3;

insert into t_utf8(s05, s10, s15)
select
 rpad( '',  5, 'ЙЦУКЕНГ' )
,rpad( '', 10, 'ФЫВАПРО' )
,rpad( '', 15, 'ЯЧСМИТЬБЮЖДЛ' )
from rdb$formats rows 3;

commit;


recreate table t_win1251(
id bigint generated by default as identity primary key
,dts timestamp default 'now'
,s05 varchar(5) character set win1251
,s10 varchar(10) character set win1251
,s15 varchar(15) character set win1251
,s20 varchar(20) character set win1251 default '1234567890ABCDEFGHIJ'
);

commit;
insert into t_win1251(s05, s10, s15)
select
 rpad( '',  5, 'йцукенг' )
,rpad( '', 10, 'фывапро' )
,rpad( '', 15, 'ячсмитьбюждл' )
from rdb$formats rows 3;

insert into t_win1251(s05, s10, s15)
select
 rpad( '',  5, 'ЙЦУКЕНГ' )
,rpad( '', 10, 'ФЫВАПРО' )
,rpad( '', 15, 'ЯЧСМИТЬБЮЖДЛ' )
from rdb$formats rows 3;

commit;
Ввожу в SQL Editor'e:
Код: sql
1.
2.
3.
select 'utf8' c, x.* from t_utf8 x
UNION ALL
select 'win1251', x.* from t_win1251 x


И получаю тот же самый грид с "расточительно-широкими" столбами:
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38603769
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

не понятно что ты хочешь. При UNION ALL ширина столбца определяется по размеру самого большого
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38603916
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидПрошу прощения за назойливость, но у меня это светлое будущее до сих пор не наступает, несмотря на IBE 2014.4.1.1


В этой версии светлое будущее уже не наступит.
...
Рейтинг: 0 / 0
Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
    #38604098
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertТаблоидПрошу прощения за назойливость, но у меня это светлое будущее до сих пор не наступает, несмотря на IBE 2014.4.1.1
В этой версии светлое будущее уже не наступит.ладно, подожду до след. билда.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Как IBE определяет отображаемую ширину в grid'e для varchar-столбов с charset UTF8 ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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