powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / В 3.0 максимальная длина имени поля/таблицы 31 символ?
25 сообщений из 92, страница 3 из 4
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561447
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисСо старым API не будут работать резалтсеты шире 64K, а также передача
параметров.
Да нет, как раз с шириной резалтсета никаких проблем нет, как и с параметрами. Как я и
сказал выше: только обрезка имён в XSQLDA, что приводит к невозможности использования
FieldByName в тех же IBX и бигбадабум у пары служебных процедур если имя блоб-поля или
массива совпадает с именем другого поля по первым 31 байтам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561457
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ты не прав
попробуй запустить запрос в IBExpert (его на новый API не переводили) и в ISQL (FB3)

Код: sql
1.
2.
3.
4.
select lpad('', 32000, ' ') as f1,
       lpad('', 32000, ' ') as f2,
       lpad('', 32000, ' ') as f3
from rdb$database



вот что пишет IBE

Код: plaintext
1.
2.
An error was found in the application program input parameters for the SQL statement.
SQL error code = -804.
SQLDA missing or incorrect version, or incorrect number/type of variables.

А в ISQL всё норм. Мы это обсуждали с ДЕ когда я поднимал вопрос почему ISQL не использует новое API, теперь его переписали и он это понимает.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561461
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это я насчёт того что проблем с шириной резалтсета нету. Хотя это не страшно.

Dimitry Sibiryakovобрезка имён в XSQLDA, что приводит к невозможности использования
FieldByName в тех же IBX и бигбадабум у пары служебных процедур если имя блоб-поля или
массива совпадает с именем другого поля по первым 31 байтам.

с этим согласен.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561465
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По мне так чем больше вкусного будет давать использование нового API, тем быстрей его поддержит сообщество, и тем быстрей оно откажется от использования старого.
Вообще при таких аргументах можно и в 3.5 длинных полей не увидеть... ещё будет много софта, который использует старое API и слазить с него не собирается ни в жизнь.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561467
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

Ну назовут длинные именна Dialect 4 и решится проблема. Каждому будет своё.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561473
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисвот что пишет IBE
Эта ошибка возникает в клиентской библиотеке, соответственно там её и можно исправить. В
старых клиентах она возникала из-за переполнения переменной размера message. Где она
возникает в новой библиотеке я сходу не вижу, так что если ДЕ ткнёт пальцем, буду признателен.

С "этой" стороны API никаких ограничений на сумму sqllen всех XSQLVAR не видно..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561474
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

я думаю в конце концов от старого API откажутся, но для этого нужно достаточно длительный период адаптации. Хотя бы для того чтобы компоненто-строители
перевели свои компоненты доступа на новый API. Да и инструменты администрирования
и разработки должны до этого дойти.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561498
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денися думаю в конце концов от старого API откажутся, но для этого нужно достаточно длительный период адаптации. Хотя бы для того чтобы компоненто-строители
перевели свои компоненты доступа на новый API. Да и инструменты администрирования
и разработки должны до этого дойти.
Я думаю что если уже сейчас громко сказать, что старый API в тройке будет deprecated(а в 3.5 вообще unsupported), и что его пользователи не смогут использовать такие-то конкретные фишки, то экосистема воспримет это адекватно. Старые базы продолжат работать.
А уж если кто-то попробует поселектить длинноимённые поля старым API, то можно выдавать им ошибку, типа: "не могу использовать старый API для поля 'бла...бла', т.к. его длина превышает 31. Обратитесь к разработчику".
Что самое забавное - это ведь так и так делать. Код на плюсах потребуется такой же, если конечно не сделать это одновременно с переводом старого API в unsupported :)
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561540
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovС "этой" стороны API никаких ограничений на сумму sqllen всех XSQLVAR не видно
XSQLDA - лишь обертка над старым добрым message-based API, который до 3-ки не умел обрабатывать сообщения длиннее 64КБ. Ни в ядре, ни в протоколе, ни в клиенте. Тоже самое для длины BLR. И почти тоже самое для длины SQL (почти - ибо есть способ обойти, но не факт что оно не упадет где-либо глубже). В старых версиях это никакими фиксами не исправить.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561549
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrВ старых версиях это никакими фиксами не исправить.
Про старые тут ничего не говорилось. Было сказано, что старое API в клиенте 3.0 не может
работать с result set шире 64к. Я хорошо знаю это API со стороны приложения и совсем
чуть-чуть "изнутри", но ни там ни там не вижу причины для такой неспособности.

Старые-то версии понятно, что уже не исправить, но текущую-то почему нет?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561556
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovБыло сказано, что старое API в клиенте 3.0 не может
работать с result set шире 64к. Я хорошо знаю это API со стороны приложения и совсем
чуть-чуть "изнутри", но ни там ни там не вижу причины для такой неспособности.
isc_dsql_execute() вызывает isc_dsql_execute2(), который вызывает isc_dsql_execute2_m(), в котором длина и BLR и message 16-битная. Приплыли.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561560
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrisc_dsql_execute() вызывает isc_dsql_execute2(), который вызывает
isc_dsql_execute2_m(), в котором длина и BLR и message 16-битная
Но который не входит в публичное API, не документирован и скорее всего не используется
нигде кроме собственно движка. И даже если не рассматривать вариант изменения прототипа
isc_dsql_execute2_m(), то проблема решается заменой его вызова на вызов функций нового API
непосредственно из isc_dsql_execute2().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38561571
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНо который не входит в публичное API, не документирован и скорее всего не используется
нигде кроме собственно движка. И даже если не рассматривать вариант изменения прототипа
isc_dsql_execute2_m(), то проблема решается заменой его вызова на вызов функций нового API
непосредственно из isc_dsql_execute2().
строго говоря, в публичное АПИ входит все, что есть в ibase.h (и что экспортируется из fbclient). Насчет возможного решения проблемы согласен.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38571471
bazilio77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В продолжение темы.

Меня ограничение на 31 символ не смущает.
Но иногда имеются неудобства:
Мы именуем констрейнты foreign key следующим образом FK_имя таблицы_имя поля по которому осуществляется сия связь.
Иногда этот шаблон приходится нарушать, т.к. не укладываемся в 31 символ. :(
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38571603
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazilio77Мы именуем констрейнты foreign key следующим образом FK_имя таблицы_имя поля по которому осуществляется сия связь.
Иногда этот шаблон приходится нарушать, т.к. не укладываемся в 31 символ. :(

тупое обрезание имени констрайнта на 31 символе.
автоматика, которая скрипты генерит, этому должна быть обучена тоже.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38571614
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOPbazilio77Мы именуем констрейнты foreign key следующим образом FK_имя таблицы_имя поля по которому осуществляется сия связь.
Иногда этот шаблон приходится нарушать, т.к. не укладываемся в 31 символ. :(

тупое обрезание имени констрайнта на 31 символе.
автоматика, которая скрипты генерит, этому должна быть обучена тоже.

для тупых обрезаторов:

1. 31 символ - это с учетом SECURITY_CLASS. Т.е. по факту после 27 символов в имени начинаются глюки с правами.
2. После обрезания имена констрентов начинают совпадать.
3. замена имен на хеши и синтетики делает бессмысленным именование констрейнтов.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38571615
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor1. 31 символ - это с учетом SECURITY_CLASS. Т.е. по факту после 27 символов в имени начинаются глюки с правами.Это давно исправлено в 2.5
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38571692
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladpastor1. 31 символ - это с учетом SECURITY_CLASS. Т.е. по факту после 27 символов в имени начинаются глюки с правами.Это давно исправлено в 2.5

а я все поезда под откос пускаю :(
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38825282
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://tracker.firebirdsql.org/browse/CORE-749 Sean Palmer added a comment - 04/дек/14 12:07 PM
Any progress on this please?
It is extremely frustrating that this limitation still exists in Firebird and is severely restricting the use of Firebird for my projects where long identifiers are required and for porting from other DBMS such as MSSQL or MS Access!

extremely frustrating :) Есть такое. Может есть смысл им там объяснить суть проблемы, чтобы не питали иллюзий?
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38825288
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

пусть он еще ораклу со своей фрустрацией поплачется
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38825354
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrпусть он еще ораклу со своей фрустрацией поплачется
Там думаю не одна сотня живых людей ожидает этого чуда, в том числе и многие с sql.ru. А ты их держишь в иллюзиях. Это косяк для всей экосистемы FB. В иллюзиях никто не хочет находиться. А уж поддерживать иллюзии или не дай Бог помогать их генерить... короче не полезно это.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38825365
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[удалено]
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38825394
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У пользователей Delphi много иллюзий в адрес Delphi. Это хорошо для Delphi? Хотим так же?
Я вот не хочу.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38825500
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хоть я и порезал пост МП, но реально твое "толчение воды в ступе" надоело.
...
Рейтинг: 0 / 0
В 3.0 максимальная длина имени поля/таблицы 31 символ?
    #38825682
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeedimitrпусть он еще ораклу со своей фрустрацией поплачется
Там думаю не одна сотня живых людей ожидает этого чуда...где "там"? в оракле? длинные имена?
ну можеть быть и ожидает не одна сотня людей такой "необходимой возможности", но не думаю, что несколько сотен людей смогут повлиять на направление разработки оракла, учитывая общее количество людей с ним работающих.
есть гораздо более злободневные и важные вопросы, например скатывание оракла в унылое маркетинговое г, такими темпами этот самый оракл в обозримом будущем реально, как говорится, "лососнёт тунца" не то чтобы у майкрософтовского сиквела, а даже у опен сорс проектов.
...
Рейтинг: 0 / 0
25 сообщений из 92, страница 3 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / В 3.0 максимальная длина имени поля/таблицы 31 символ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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