|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Симонов Денискак можно перевести слова версия как диалект? не ко мне вопрос. предполагаю, что методом копипаста из функций execute_immed и prepare но это не точно ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 17:31 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
может быть и будет работать мне сейчас некогда вникать в Симонов ДенисПои идее в 4.0 могли бы версию XSQLDA поднять из-за того что размерность идентификаторов в XSQLVAR подросла и как это может отразиться на существующих обычных клиентах прохоже, сейчас это поле просто игнорируется, потому ч тоникаких других версий SQLDA не предусмотрено было вообще но всегда ли так будет?... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 17:36 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Arioch, сделай длинный идентификатор в 4.0 и попробуй открой в любом из существующих клиентов. Если оно реально определено вот так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
то может случится маленькая неприятность ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 17:40 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Симонов Денис, а у тебя нет ради интереса нигде нет FIBC ? на ibase.ru нету ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 17:42 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
А впрочем не надо. Я посмотрел в IBX XE2 - там ровно та же ошибка В общем, автор FIBC накосячил на почве копипаста и нехватки документации А IBX и FIB+ просто тупо продолжили традицию ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 17:45 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Симонов Денис, ....да я и в 3.0 не сильно заинтересован, пока мой баг не пофиксят, в чем не заинтересованы мечтающие о лаврах Оракла девелоперы а вот IBExpert'e тема для проверки с FB4 :-) И вообще, напишу я админам, чтобы этот кусок перетащили в другую ветку ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 17:48 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
29.04.2019 17:45, Arioch пишет: > В общем, автор FIBC накосячил на почве копипаста и нехватки документации API Guide есть в доке от IB5.Х и в доке от IB6.0 Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 17:56 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Arioch, короче пока эту фичу с идентификаторами сделали для нового API где на эту структуру плевать, но его почти никто не использует. Будет ли оно нормально работать если подпихнуь ISC_SCHAR sqlname[253]; и др. не знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 18:04 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Мимопроходящий29.04.2019 17:45, Arioch пишет: > В общем, автор FIBC накосячил на почве копипаста и нехватки документации API Guide есть в доке от IB5.Х и в доке от IB6.0 Ну, может в IB 5.x был косяк ,и сервер реально требовал туда диалект подставлять? DDDDD ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 18:49 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Мимопроходящий, Бздыц, в UIB тот же косяк... Видимо Анри тупо использовал код FIBC/IBX за учебник, не проверяя... придется искать API Guide современного Interbase и сверять с IB6.... Вдруг там реально не таК, как в FB ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 19:02 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
29.04.2019 19:02, Arioch пишет: > > придется искать API Guide современного Interbase http://docs.embarcadero.com/products/interbase/IBXE/APIGuide.pdf Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 19:07 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Симонов Денис, нужен человек, который ориентируется в C++ исходниках FB, чтобы он посмотрел где там реально реализация isc_dsql_execute2 и isc_dsql_execute - и что там происходит в пробелмным параметром. Видимо в версиях от 0.x до 3.x он просто игнорируется нафиг ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 19:13 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
P.S. я отписался модерам, чтобы комменты про диалект и API отсюда перетащили туда, так что пока тут завязываем с этим - это уже не про IBE ,а про библиотеки в целом ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 19:14 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Мимопроходящий, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 19:15 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
В Interbase Guide то же самое. Как и ожидалось ,но проверить не грех. Вчитался лучше в "Specifies that the XSQLDA descriptor, rather than SQLDA, should be used; set this value to 1." Т.е. этот параметр - он просто boolean - ноль либо не ноль. Пока что. Поэтому баг и не проявлялся. Интересно, что там будет в FB4, Денис сказал, там SQLDA расширяли в плане длины названий, но возможно это ни на что на практике не влияет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 19:22 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Arioch, опять ты исказил мои слова. Как раз SQLDA в 4.0 не расширяли. Поэтому на старом API длинные идентификаторы скорее всего работать не будут. А ещё сказал, что я не пробовал можно ли в старый API просто подсунуть структуру с расширенными полями под метаданные. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 20:29 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Arioch, там не надо быть мегашарящим см. https://github.com/FirebirdSQL/firebird/blob/master/src/yvalve/why.cpp ищем поиском isc_dsql_execute и isc_dsql_execute2 и видим что на этот параметр кладётся болт. Всё твоя душа может быть спокойна ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 20:44 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 21:23 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
hvlad, спасибо, нашёл. Arioch, судя по всему этот параметр артефакт, говорит о том что надо использовать расширенный формат дескриптора. В >= 3.x он вообще игнорируется, в более ранних версиях используется. Но там в коде написано что-то в роде такого Код: plaintext 1.
поэтому и работает корректно даже если туда передать sql диалект ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 23:01 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Симонов Денис, Ну исказил, так исказило. Распиши подробно, что ты имел в виду, чтобы и ежу было понятно. А если тема того не стоит, чтобы ты подробно объяснял, то не стоит и того, чтобы я подробно угадывал. --------------- Продолжаем раскопки.... 1. Предварительно *очень* похоже на то, что и IBO так же вызывает эти функции. Если так - то все Delphi-библиотеки в этом противоречат API Guide. Но! 2. Mark Rottleveel раскопал исходники Borland Intebase 6 - и в тех исходниках как раз и название dialect. Это, Денис, к твоему вопросу "как же можно было так перевести" - а запросто, с Си на Паскаль. https://github.com/FirebirdSQL/x-cvs-interbase/blob/d1cd7082a7a6faa5cc8f2ef7dbcaa95f09ae0091/jrd/why.c#L2217 И вот тут уже даже интересно, вспомнят сегодня JS и AH какого чёрта они тогда думали, в те сумбурные дни IB6 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 23:23 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Arioch, что ты хочешь от меня? Я только сказал что XSQLDA не рассчитана на длинные идентификаторы, которые появились в 4.0. С новым API работает, как длинные идентификаторы использовать в старом понятия не имею. Я пока так далеко не заглядывал. AriochПродолжаем раскопки.... а смысл? Влад в соседней теме всё разжевал. Ну назвал назвали лет 20 назад неаккуратно параметр диалектом, ну стали пихать туда не совсем то, и что работоспособность от этого не нарушилась ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 23:31 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Симонов ДенисВлад в соседней теме всё разжевал. я не знаю, что такое соседняя тема в данном случае но в API Guide судя по всему написана чушь, наполовину в Delphi-библиотеках вызывается чушь, полностью и да, пока что "работоспособность от этого не нарушилась" но это не значит, что сумбур вместо ясности - это хорошо, и что этот сумбур не сможет выстрелить когда-то потом ------------------ копия переписки Curiouser and curiouser! so, STATUS API_ROUTINE GDS_DSQL_EXECUTE2 ( uses "dialect" parameter THRICE and all three times it is passing it down the chain to the UTLD_parse_sqlda(....) However, so do but EVERYONE! DSQL_INSERT for example https://github.com/FirebirdSQL/x-cvs-interbase/blob/d1cd7082a7a6faa5cc8f2ef7dbcaa95f09ae0091/jrd/why.c#L3178 DSQL_EXECTE_IMMEDIATE2 https://github.com/FirebirdSQL/x-cvs-interbase/blob/d1cd7082a7a6faa5cc8f2ef7dbcaa95f09ae0091/jrd/why.c#L2496 So, whenever that parameter stands for SQL dialect or DA version - it is one and the same, source-wise. And so either one part of API Guide or another is blatantly wrong... Mark, you did found something!.. as expected, the said sources of dsql_execute_2 come from the very first github commit, so if there was something before it - it is lost in history. Now, down the rabbit hole... dsql/utld.c Код: 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.
dsql/sqlda.h Код: plaintext 1. 2. 3. 4.
jrd/ibase.h Код: plaintext 1. 2. 3.
SO! whenever that "dialect" is used in FBClient's DSQL API - it is the dialect (version) of data area - it is XSQLDA vs SQLDA, and it is never or next to never about the SQL dialect. Those concepts could have been related, when conseived, but as IB6 was fleshed out they became different (or maybe even before it, i can find IB4 or IB5 to see API Guide of those, but don't want to). I rest my case, Your Honor. Всё, я спать хочу. Рабочая гипотеза - ВЕЗДЕ в DSQL где в параметрах функций (непосредственно, а не через SPB/DPB флаги) указывается SQL Dialect - это ни разу не SQL диалект, а ВЕЗДЕ диалект SQL_DA. Но при этом диалект SQLDA и версия SQLDA - разные понятия. И указывать в параметрах DSQL_xxxxx ( .... dialect ....) можно просто 1, можно DIALECT_xsqlda А вот SQLDA_VERSION1 - семантически неверно. Другой enum-тип, так сказать. В общем, в "спецификациях" тут - undefined behaviour СЕЙЧАС диалект SQLDA делится на два класса - "<= 0" и ">=1". Но ничего не сказано про будущее. Никакого соответствия SQL Dialect и SQLDA Dialect не задано. Половина клиентских библиотек делает так, а половина - этак. В принципе в будущем это может выстрелить, если введут новый SQL Dialect, который с собой принесет новый SQL DA Dialect. Половина библиотек будет работать, а половина тут же сломается. Шансы может быть и невелики, хотя кажется Сибиряков хотел SQLDA расширять, но если явно это не проговорить - то и не нулевые. Собственно, FB 1.x тоже в SQL позволял много вольностей, которые в 2.5/3 специально отслеживают и запрещают, хотя могли бы и дальше выполнять. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 00:10 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
AriochВсё, я спать хочуНаконец-то ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 00:39 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 07:09 |
|
возможно ли запросить SQL-диалект подключения?
|
|||
---|---|---|---|
#18+
Симонов Дениссудя по всему этот параметр артефакт, говорит о том что надо использовать расширенный формат дескриптора. В >= 3.x он вообще игнорируетсяв смысле, всегда юзается XSQLDA, независимо от того, что передаётся в da_version ? кстати, в недрах IBX наблюдаю такое: Код: pascal 1. 2. 3. 4. 5.
но hvlad приводит другие значения 21754815 Код: pascal 1. 2. 3.
правда, у меня IBX не каноничный. если у кого есть "свежие" IBX, посмотрите как там, плс. (модуль IBHeader.pas) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 12:03 |
|
|
start [/forum/topic.php?fid=40&msg=39807784&tid=1560723]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 566ms |
0 / 0 |