powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение формата структуры isc_dsc
16 сообщений из 16, страница 1 из 1
Изменение формата структуры isc_dsc
    #39850553
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот расскажите мне, какой индус это сделал? IB 2009
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
typedef struct isc_dsc {
    unsigned char	dsc_version;
    unsigned char	dsc_dtype;
    char		dsc_scale;
    char		dsc_precision;
    unsigned short	dsc_length;
    short		dsc_sub_type;
    unsigned short	dsc_flags;
    short		dsc_encryption;
    unsigned char	*dsc_address;
} ISC_DSC;

#define DSC_VERSION2		2
#define DSC_CURRENT_VERSION 	DSC_VERSION2


IB 2017
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
typedef struct isc_dsc {
    unsigned char	dsc_version;
    unsigned char	dsc_dtype;
    char		dsc_scale;
    char		dsc_precision;
    unsigned short	dsc_length;
    short		dsc_sub_type;
    unsigned short	dsc_flags;
    short		dsc_encryption;
    unsigned char	*dsc_address;
} ISC_DSC;

#define DSC_VERSION2		2
#define DSC_CURRENT_VERSION 	DSC_VERSION2

ладно, вы добавляете поле вовнутрь структуры, а не в конец. Но у вас же есть поле версия. Ну увеличьте вы версию на 1!

Спасибо, что хоть размер структуры не изменили из-за выравнивания

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39850561
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вижу две абсолютно одинаковые стр-ры.
Поле dsc_encryption есть обоих вариантах, если о нём речь.
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39850614
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

мнэээ, сравни тексты windiff-ом. Одно и то же ведь.
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39850655
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvОдно и то же ведь.

Просто кривая копипаста. Вот структура от ХЕ7:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
typedef struct isc_dsc {
     unsigned char	dsc_version;
     unsigned char	dsc_dtype;
     char		dsc_scale;
     char		dsc_precision;
     unsigned short	dsc_length;
     short		dsc_sub_type;
     unsigned short	dsc_flags;
     unsigned char	*dsc_address;
} ISC_DSC;

#define DSC_VERSION2		2
#define DSC_CURRENT_VERSION 	DSC_VERSION2


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851108
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, они теперь будут по другим константам определять, например по версии сервера.

в принципе, что-то похожее было при переходе IB5 -> IB6

была константа "диалект XDA", потом в другом модуле её переопределили, как "диалект SQL".
потом забыли, что это одна и та же константа, просто описанная дважды и под разными названиями.
и первая константа осталась недокументированной, в связи с чем прикладные библиотеки туда пихают кто +1, а кто -1, напрочь убив её смысл как версии и превратив в бинарный флаг большой длины. Что, впрочем, сейчас работает, поскольку implementation сравнивает диалект XDA не через switch, а через if: ноль или все остальные версии/диалекты. Если следующего диалекта не завезут, либо всех таки переведут на новый COM-подобный API и старый процедурный забросят, то ничего и не случится.
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851113
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
19.08.2019 14:00, Arioch пишет:
> в принципе, что-то похожее было при переходе IB5 -> IB6
> была константа "диалект XDA", потом в другом модуле её переопределили, как "диалект SQL".

ты пропустил много интересного.
там ещё и на версию протокола "клиент-сервер" завязано.
я жевал валидол из ложки! (С)

21944093 и далее
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851120
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Я это знаю, как "SQL-диалект соединения".
Термин "версия протокола" для меня звучит скорее как wire-протокол.

Я даже как-то вопросы задавал, что конкретно будет при задаче 1-го диалекта в соединении к БД 3-го диалекта и как конкретно "тупому юзверю" с помощью одних лишь SQL-команд определить такой нежданчик (ну там mon$xxxx или rdb$getcontext). Ответы были типа "иди на хрен с такими вопросами, фигня будет, а какая в точности никто не выяснял"

Меня же интересовал именно прикладной вопрос, в связи с IBX/IBO/UIB - как правильно задавать диалект XDA - через плюс или минус единицу. Поэтому до диалекта соединения я не копал.
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851123
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochЕсли следующего диалекта не завезут

Я надеюсь что нет. Это одно из самых неудачных решений в IB.
Вон в 4.0 тоже много хитрых типов ввели, но совместимость со старыми клиентами там по другому обеспечивается.

Ariochвсех таки переведут на новый COM-подобный API и старый процедурный забросят

я думаю это произойдёт очень нескоро. Ибо кучу легаси компонентов нечего и не слышали об OO API.
Хотя в старом API пока ещё нет новой XSQLDA с расширенными длинами имён метаданных.

Скорее всего будут появляться гибриды, потому что некоторые плюхи доступны только в новом API
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851124
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

достал ты уже. Неужели предыдущего объяснению Влада не хватило, что у соединения нет диалекта?
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851130
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было бы это где-то хорошо документировано - и вопросов бы не возникало. А теперь уже "народные термины", терпите... Сам факт что парсер слегка меняется от параметров подключения, но не весь, как его "снаружи" осознавать?

Вот ты те рассуждения Влада в свою документацию вставишь? едва ли. Следовательно каждый (во ВСЁМ мире, а не только РФ), кто на такое наткнётся, будет начинать снова, с чистого листа.

> Я надеюсь что нет. Это одно из самых неудачных решений в IB.

Что именно, диалект SQL или диалект XSQLDA ?

Последнее - было вполне нормальное решение, если бы его планомерно провели по коду и документации.
Но, похоже, что делали мучительно, наощупь. А когда, вероятно, пришли манагеры с маузером и приговором "релиз через неделю, последний дедлайн" - то уже не смогли всё вспомнить и "разложить по полочкам". Но это вполне можно сейчас ещё сделать.

Другой вопрос, что за все годы после IB6 так и не понадобилось по факту расширять XSQLDA. Поэтому эту путаницу никто и не стал упорядочивать. По хорошему бы, конечно, тут все решалось принятием и документированием общей policy совместно FB Team и IB Team. Но поскольку прямо сейчас расширять XSQLDA никто не хочет, то никто и не будет.
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851174
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПросто кривая копипаста. Вот структура от ХЕ7:Да. Спасибо
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851182
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениссовместимость со старыми клиентами там по другому обеспечивается.

Причём, надо сказать, тоже весьма кривыми костылями.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851194
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"неродной" клиент - зло.
благое намерение бормадов обеспечить "плавный переход" -
такой же вопиющий волюнтаризЪм как и введение диалектов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851201
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

это лучше чем вводить дополнительные параметры в функциях API, две ветки парсера, да ещё и диалект БД.
Уж лучше те же SET BIND и подобное
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851202
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ООП-API - зло не меньшее
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение формата структуры isc_dsc
    #39851203
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисэто лучше чем вводить дополнительные параметры в функциях API, две ветки парсера, да ещё и
диалект БД.
Уж лучше те же SET BIND и подобное

Они не нужны если придерживаться простого правила "новые фичи - только за пределами
взад-совместимой области" и чуть более сложного "взад-совместимость ломается только в
пределах взад-совместимой области".

Назачем вот было сломя голову переводить CURRENT_TIMESTAMP на новый, непроверенный тип, да
ещё и ломая приложения, работающие со старыми версиями сервера?.. Оно сто лет стандарту не
соответствовало, ещё пяток никого не убил бы.

Та же ситуация с DECFLOAT. Какой смысл его биндить в старые типы, если старым приложениям
он по определению не нужен, а новые его и нативно сожрут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение формата структуры isc_dsc
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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