powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
25 сообщений из 145, страница 2 из 6
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37190868
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMDeveloperРеально медленнее - факт!
Не вижу факта. Только твои утверждения. Воспроизводимый пример на API - в студию! Кривые
обёртки - фтопку.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37190872
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMDeveloperТогда чем объяснить, что блоб медленнее варчара? Реально медленнее - факт!Факт - это воспроизводимый тесктейз. Пока его нет, это "подземный стук".
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37190875
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Кривые обёртки - фтопку.

Ты имеешь ввиду FIB+ и мое приложение?:)
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37190877
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMDeveloperЕсли кто-то спросит почему нельзя готовить пакет в фоне, отвечаю, потому что логика такая, не должен юзер во время подготовки пакета ничего изменять, поэтому modal окно с индикатором. Программа не сетевая.уровень изоляции снапшот запретили враги. От жеж негодяи!
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37190885
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMDeveloperТы имеешь ввиду FIB+ и мое приложение?:)

Именно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37190889
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> уровень изоляции снапшот запретили враги. От жеж негодяи!

Приложение однопользовательское со встроенным FB
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37190894
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dimitry Sibiryakov

> Именно.

Ну если писать на API не используя FIB+ и др., тогда преимуществ у FB маловато остается.
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37190903
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMDeveloper> уровень изоляции снапшот запретили враги. От жеж негодяи!

Приложение однопользовательское со встроенным FBИ что с того? Не вижу логики.
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37190913
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMDeveloperпреимуществ у FB маловато остается.

Перед кем?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191036
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dimitry Sibiryakov
2 kdv

Ладно, забьем что быстрее, варчар или блоб. Не суть уже. Объясните пожалуйста это:

Можно так:
CREATE TABLE TEST_1 (
ASCI_1 VARCHAR(32764) CHARACTER SET ASCII,
ASCI_2 VARCHAR(8186) CHARACTER SET ASCII
);
Т.е. всего 32764+8186=40950 символов

Можно и так:
CREATE TABLE TEST_2 (
ASCI_1 VARCHAR(8186) CHARACTER SET ASCII,
ASCI_2 VARCHAR(32764) CHARACTER SET ASCII
);
Т.е. те же 40950 символов.

А вот так, те же 40950 символов, уже нельзя:
CREATE TABLE TEST_3 (
ASCI_1 VARCHAR(20475) CHARACTER SET ASCII,
ASCI_2 VARCHAR(20475) CHARACTER SET ASCII
);
Выдает ошибку про блок сайз.

Почему?
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191041
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и ведь даже так нельзя!!
CREATE TABLE TEST_4 (
ASCI_1 VARCHAR(10000) CHARACTER SET ASCII,
ASCI_2 VARCHAR(10000) CHARACTER SET ASCII
);
Ошибка про блок сайз.
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191045
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMDeveloperи ведь даже так нельзя!!

Считай на пальцах: (10000*4+2)+(10000*4+2) = 80004. 80004 больше чем 65535.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191063
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dimitry Sibiryakov
> У тебя лимит в 64к преодолел конечный result set, который уже в кодировке utf8.

Поля в ASCI, т.е. 100% в UTF8 они будут по 1 байту. Откуда берется
переполнение 64к в "конечный result set, который уже в кодировке utf8."?

> Считай на пальцах: (10000*4+2)+(10000*4+2) = 80004. 80004 больше чем 65535.

Слушай, не тупи, Тогда почему можно
(32764*4+2)+(8186*4+2)=131056+2+32744+2=163804 ??

Максимальное с двумя одинаковыми полями в ASCI можно так:
CREATE TABLE TEST_5 (
ASCI_1 VARCHAR(8189) CHARACTER SET ASCII,
ASCI_2 VARCHAR(8189) CHARACTER SET ASCII
);

Это (8189*4+2)+(8189*4+2+)=32756+2+32756+2=65516.
Т.е. в случае двух полей в ASCI баг налицо.
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191071
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMDeveloperТогда почему можно

Почему ты так уверен, что можно?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191085
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потому что я сижу за компом и пробую как можно.
В IBExpert-e таблица

CREATE TABLE TEST_1 (
ASCI_1 VARCHAR(32764) CHARACTER SET ASCII,
ASCI_2 VARCHAR(8187) CHARACTER SET ASCII
);

В нее можно вставить. Потом перезакрыть БД, открыть таблицу - все видно,
читается. Но вот редактировать, да, нельзя, "блок сайз" вылезает.
Но при вставке картинок редактирование и не надо. Поэтому я не сразу заметил,
что редактировать уже вставленное нельзя. За это сорри.

Почему под поля ASCI в UTF8 резервируется память в 4 раза больше чем надо?
В UTF8 символы ASCI всегда 1 байт, а не 4. (В UTF16 всегда 2 байта на все символы)
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191087
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
про UTF16 я винду имею ввиду и в частности Delphi XE
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191090
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, это что, если БД в UTF8, то побарабану какие чарсеты полей? Все чарсеты будут в 4 байта переводиться?? Бред. Тогда нафига такой выбор чарсетов, если все они себя как UTF8 ведут. Тогда все поля в UTF8 и все... Попал я с переходом на юникод, просто ппц... :-(
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191094
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все чарсеты при выборке переводятся в чарсет коннекта. И это правильно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191100
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, пусть переводятся. Но ведь строка в ASCI в UTF8 будет как есть. UTF8 плавающий формат, а не фиксированный, как UTF16.
Коннект в UTF8, тогда памяти под строку "абвгд" надо 10 (или 12 с BOM) байт, а под строку "abcde" точно 5 (или 7 с BOM). Нафига все конвертировать в 4 байта? Хотя наверняка так - выделяется память под все поля без учета их чарсетов, т.е. тупо все по 4 байта, причем при использовании полей ASCI остается масса ненужно выделенной памяти. Это же не правильно, не рационально. Наверно нужно сначала анализировать чарсеты... Я разочарован в FB. Т.е. под строки даже в 10кб нужно использовать блоб? Это однозначно мертворожденное приложение получится...
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191106
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMDeveloperвыделяется память под все поля без учета их чарсетов

Ты знаешь функцию ICU которая бы для данного чарсета выдала максимальные размер его
символа в UTF8?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191113
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет. Но если поле ASCI, то максимальный размер символа 1 байт всегда. Как можно символ с кодом меньше 128 впихнуть в 4 байта.. Стандарт UTF8 такое предусматривает... Интересно даже. Сейчас посмотрю.
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191118
Esperito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMDeveloper , сделай отдельный коннект к базе с чарсетом NONE и передавай конкретно эти данные через него.
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191127
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
RECREATE TABLE TEST (
  ID INT,
  F1 VARCHAR( 32700 ) CHARACTER SET OCTETS,
  F2 VARCHAR( 32700 ) CHARACTER SET OCTETS
)
COMMIT
SELECT * FROM TEST

INSERT INTO TEST VALUES ( 1 , LPAD(_OCTETS'',  32700 , _OCTETS'-'), LPAD(_OCTETS'',  32700 , _OCTETS'+'))
SELECT * FROM TEST
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191138
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Esperito
Ну это уже решение на коленках, тоже самое, что все строки хранить кусками в варчарах в разных записях одной таблицы. Вопрос уже не про блобы и варчары, вопрос уже ппц... Принципиальный. С ужасом осознал что имеющиеся проекты на FB на юникод не перевести, проще начинать сначала и на другом сервере. А я то наивный думал, что в Delphi буду мучаться c PAnsiChar/PWideChar :-) В Delphi все перевелось на юникод в течении суток и прекрасно работает, а с FB просто патовая ситуация. Расстроился, честно, ппц...

Здравый смысл: два поля, одно UTF8(10 символов) второе ASCI(10 символов). Во что превратится итоговая строка UTF8? Здравый смысл подсказывает что 10*4+10=50, а не 10*4+10*4=80. 30 байт просто зря выделены и являются паразитирующими.

Навеяло, с баш.орг:

Наш программер по телефону: Это вы рассуждаете с точки зрения здравого смысла, а не реализации в FB....


Может кто знает, на какой сервер можно срочно слинять? Может у Yaffil с этим получше?
...
Рейтинг: 0 / 0
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
    #37191141
TMDeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 hvlad

Опа, забрезжила надежда. Скажи в двух словах, куда копать? Разве OCTETS
не будет так же в 4 байта переводиться? Мне в таблице кроме
этих двух полей в OCTETS надо еще поле в UTF8 под комментарий.
Думаешь получится? Не будет из-за одного поля в UTF8 все в 4 байта переводиться?
...
Рейтинг: 0 / 0
25 сообщений из 145, страница 2 из 6
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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