Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
Добрый день!
Ситуация такая. Поддерживаю штаны старым программам, написанных на Delpphi в прошлом десятилетии. Сервер FireBird 1.5.
Программы работают через BDE и тянут их еще с win2000. Для того, чтобы они работали на win7 был скачен установщик BDE посвежее и свежая (на то время) gds32.dll. С новой dll заработали программы, которые не использовали в структуре ключевые слова, введенные в более поздних версиях FireBird (насколько я понял в диалекте 3). Те программы, которые использовали в названиях полей "type", "year" и т.п. c новой dll работали, но ругались на ключевые слова. Для них вместо новой gds32.dll скормили старую(не исключено, что еще от InterBase 5) - положили в место, откуда запускалась программа. И все работало корректно.
Сейчас надо перетаскивать эти же программы на win10.
Программы, с базами не использующие ключевые слова 3его диалекта заработали нормально. Но вот программы с базами, использующие ключевые слова отказались работать со старой gds32.dll(от InterBase) - нет соединяется с базой, но работают с новой dll с ошибками(ругается на эти поля).
Подскажите, пожалуйста, есть ли бескровное решение этой проблемы?
Спасибо!
7 авг 19, 08:06    [21943427]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 25779
Михаил П
Подскажите, пожалуйста, есть ли бескровное решение этой проблемы?

Я-бы первым делом попробовал посвежее fbclient.dll, которую можно переименовать в gds32.dll.
7 авг 19, 08:36    [21943434]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
автор
Я-бы первым делом попробовал посвежее fbclient.dll, которую можно переименовать в gds32.dll.

Скачал последнюю версию для FB 1.5.3. и переименовал.
Все также. Программа работает с ним до тех пор, пока не начинаются запросы с зарезервированными именами. Скорее всего база создавалась в 1 диалекте, когда разрешалось называть поля type, year и т.п. В 3ем диалекте их зарезервировали.
До win10 можно было использовать старый gds32.dll. В Win10 он отказывается работать. Новые работают, но такая неприятность.
Как бы заставить работать под win10 старую dll или найти новую, поддерживающую первый диалект.
7 авг 19, 10:31    [21943529]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 25779
Михаил П
Скачал последнюю версию для FB 1.5.3. и переименовал.

Есть куда более свежее.
7 авг 19, 10:59    [21943547]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

что-то не о том сия песня звучала...
КЛИЕНТ не парсит запросы.

Posted via ActualForum NNTP Server 1.5

7 авг 19, 11:16    [21943566]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
BlackEric
Member

Откуда:
Сообщений: 747
Проще программы доработать. Костыли могут отвалиться с любым апдейтом 10ки.
7 авг 19, 11:17    [21943567]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 783
BlackEric
Проще программы доработать.


Совсем крайний случай. Кто так делает? Обычно - если десяток лет ничего не делал, то и следующий десяток нужно прожить с костылями.
7 авг 19, 12:08    [21943640]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3969
Михаил П
Подскажите, пожалуйста, есть ли бескровное решение этой проблемы?
В ярлыке программы в 10-ке можно установить совместимость вплоть до win-95, и из этого работает реально многое.

Но, как уже сказали выше, клиент не парсит запросы. А значит, проблема либо в сервере, либо в интерпретации программой "ответов" клиента.
7 авг 19, 12:40    [21943702]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3969
KreatorXXI
BlackEric
Проще программы доработать.


Совсем крайний случай. Кто так делает? Обычно - если десяток лет ничего не делал, то и следующий десяток нужно прожить с костылями.
+
желательно два десятка
7 авг 19, 12:41    [21943703]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
автор
Но, как уже сказали выше, клиент не парсит запросы. А значит, проблема либо в сервере, либо в интерпретации программой "ответов" клиента.

Но еще на win7 программа работала с обоими клиентами. Со старым корректно, а с новым сервер ругался на поля. Можно предположить, что старый клиент считает, что база 1 диалекта, а новый - 3(что неверно). Ошибку присылает сервер, который отказывается понимать запрос с зарезервированными словами в качестве полей.
Пока не встречаются эти поля - все ОК.
7 авг 19, 13:25    [21943754]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

07.08.2019 13:25, Михаил П пишет:
> Со старым корректно, а с новым сервер ругался на поля.

без воспроизводимого примера веры этому нет.

Posted via ActualForum NNTP Server 1.5

7 авг 19, 13:30    [21943761]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
Мимопроходящий
без воспроизводимого примера веры этому нет.

Это настолько необычно звучит? :) Зачем мне обманывать? Разница между полноценной работы программы на win7 и вылетанием такой ошибки всего лишь разные версии gds32.dll. С клиентом IntrBase 5 работает, а с относительно свежим клиентом FireBird не очень. При чем, если не лезть на формы с неправильными запросами, то остальная часть работает.

К сообщению приложен файл. Размер - 16Kb
7 авг 19, 13:46    [21943775]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

07.08.2019 13:46, Михаил П пишет:
> С клиентом IntrBase 5 работает

ну вот, уже появился InterBase...
и есть подозрение, что не клиентом единым...

Posted via ActualForum NNTP Server 1.5

7 авг 19, 13:54    [21943780]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
Мимопроходящий
ну вот, уже появился InterBase...

Он был в самом вопросе :)
Просто факт, то такие же стары программы, работающие через BDE, но не имеющие таблиц с "запрещенными" словами, работают нормально с новыми клиентами и на win10. Проблема что кто-то где-то путает 1 и 3 диалект и вводит в заблуждение сервер. Ну и старый клиент отказался работать на win10 :) Разве такая мелочь может заставить переводить базу с 1 диалекта на 3ый?
7 авг 19, 14:06    [21943795]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

07.08.2019 14:06, Михаил П пишет:
> Проблема что кто-то где-то путает 1 и 3 диалект и вводит в заблуждение сервер.

проблема скорее всего в том, что чьи-то шаловливые ручки перевели базу с InterBase на Firebird,
да ещё и со сменой диалекта.

клиент от IB5.X ничего не знает о диалектах, а потому ему плевать на это.
но в варианте с клиентом FB, это не канает.

давай сюда вывод gstat -h <твоябаза>

Posted via ActualForum NNTP Server 1.5

7 авг 19, 14:13    [21943803]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
Database header page information:
Flags 0
Checksum 12345
Generation 1348435
Page size 1024
ODS version 10.1
Oldest transaction 1341650
Oldest active 1347200
Oldest snapshot 1346895
Next transaction 1348422
Bumped transaction 1
Sequence number 0
Next attachment ID 0
Implementation ID 16
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 1
Creation date Jul 25, 2017 18:49:59
Attributes force write

Variable header data:
Sweep interval: 20000
*END*
7 авг 19, 14:28    [21943821]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Насколько я понял и помню, gds32 от ib5 понятия не имеет про диалекты и сервер скорее назначает таким коннектам 1-ый диатект.
Опять же, насколько я помню, у BDE в св-вая алиаса (или драйвера ?) можно было указать какой диалект использовать.
Похоже, что BDE настроен на 3-ий диалект и более новые клиенты (чем от ib5) это послушно передают серверу.
7 авг 19, 14:29    [21943823]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

07.08.2019 14:29, hvlad пишет:
> Опять же, насколько я помню, у BDE в св-вая алиаса (или драйвера ?) можно было указать какой диалект использовать.

это видимо что-то уж совсем новое.
у BDE 5.01 (от Delphi 7) ничего этого нет.
там можно "пролезть" через доп.параметры драйвера, но не думаю, что это случай ТС.

Posted via ActualForum NNTP Server 1.5

7 авг 19, 14:38    [21943833]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
В BDE 3-ий диалект не работает почти никак. Там его через одно место поставить можно, но полной работоспобности это не даст.

вроде в HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\Drivers\Intrbase\Db Open\SQLDIALECT
7 авг 19, 15:03    [21943853]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
Должен же быть механизм сообщить клиенту, что обращаемся к базе с диалектом 1? Тот же самый IBExpert прекрасно общается через клиент FireBird с базой на диалекте 1. Правда делает он это безо всяких BDE. Выходит дело в BDE?
автор
у BDE 5.01 (от Delphi 7) ничего этого нет.
там можно "пролезть" через доп.параметры драйвера, но не думаю, что это случай ТС.

вот тут стало интересно :)
7 авг 19, 15:04    [21943854]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Мимопроходящий,

https://www.sql.ru/forum/79257/bde-i-dialect-3
7 авг 19, 15:05    [21943858]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

07.08.2019 15:05, hvlad пишет:
> Мимопроходящий,
> https://www.sql.ru/forum/79257/bde-i-dialect-3

ну так а я шо сказал?
per aspera ad anum
именно этот рецепт.

Posted via ActualForum NNTP Server 1.5

7 авг 19, 15:12    [21943872]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
При установленном DBE 5.01 этого параметра в реестре не нашел.
А этим точно BDE должен заниматься? Ведь на компьютере могут стоять разные программы, которые обращаются к базам с разным диалектом.
7 авг 19, 15:26    [21943882]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Дело не в BDE.
Дело в версии клиента, точнее в версии сетевого протокола, который он использует.
Не думаю, что клиенты старше IB5 используют 9-ю версию сетевого протокола.
Клиент FB1 уже использует 10-ю версию.
7 авг 19, 15:28    [21943886]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

07.08.2019 15:26, Михаил П пишет:
> А этим точно BDE должен заниматься? Ведь на компьютере могут стоять разные программы, которые обращаются к базам с разным диалектом.

не отвлекайся.

и так, вы, ничтоже сумняшеся, перевели базу из-под InterBase на FB1.5
при этом, работать с клиентом от 1.5 вы (по вашим словам) не можете.

вопрос: Ы?

Posted via ActualForum NNTP Server 1.5

7 авг 19, 15:32    [21943895]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
hvlad
Дело не в BDE.
Дело в версии клиента, точнее в версии сетевого протокола, который он использует.
Не думаю, что клиенты старше IB5 используют 9-ю версию сетевого протокола.
Клиент FB1 уже использует 10-ю версию.

Тогда не совсем понятно почему нет проблем у IBExerta, который легко работает через этого же клиента с базой 1 диалекта.
И вопрос,который меня не покидает, можно ли заставить работать клиент IB5 под win10, или можно оставить эту затею?
7 авг 19, 15:33    [21943897]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
автор
Мимопроходящий,
и так, вы, ничтоже сумняшеся, перевели базу из-под InterBase на FB1.5
при этом, работать с клиентом от 1.5 вы (по вашим словам) не можете.

вопрос: Ы?

Переведена она была 10 лет назад.
1. Работать-то могу, но плохо. Сервер цепляется к зарезервированным словам, считая, что я работаю с базой 3 диалекта(но она 1ого). Как сделать, чтобы они все поняли, что диалект первый и отстали. Ведь с клиентом от IB такого не возникает. (как и не возникает проблем с программами не использующие зарезервированные слова диалекта 3 и клиент FB)
2. Как заставить работать клиент IB под win10 и забить на клиент FB? :)
7 авг 19, 15:43    [21943913]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

07.08.2019 15:43, Михаил П пишет:
> Переведена она была 10 лет назад.

зачем?

Posted via ActualForum NNTP Server 1.5

7 авг 19, 15:45    [21943914]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Михаил П
hvlad
Дело не в BDE.
Дело в версии клиента, точнее в версии сетевого протокола, который он использует.
Не думаю, что клиенты старше IB5 используют 9-ю версию сетевого протокола.
Клиент FB1 уже использует 10-ю версию.

Тогда не совсем понятно почему нет проблем у IBExerta, который легко работает через этого же клиента с базой 1 диалекта.
Ещё раз - диалект тут не при чём.
Через какого клиента работает IBE - отсюда не видно.

Михаил П
И вопрос,который меня не покидает, можно ли заставить работать клиент IB5 под win10, или можно оставить эту затею?
Это вопрос к производителю.
Ответ, думаю, очевиден.
7 авг 19, 15:46    [21943915]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Михаил П,

за 10 лет можно было бы найти:

http://www.ibase.ru/ibfaq/#bde

или то же самое в оригинале:

To use the new InterBase 6.5 Dialect 3 features in BDE,
add an entry to your Windows registry under

HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine
\Settings\Drivers\Intrbase\Db Open\SQLDIALECT

and set the String Value to "3".
When an InterBase alias is created, the new entry will
be available in the .CFG file.

To use InterBase 5.6, SQLDIALECT can be set to "1"
(existing IB aliases which do not have the SQLDIALECT
entry default to SQLDIALECT=1 or to the registry
setting when the SQLDIALECT entry is added to the
registry).

до кучи
http://dn.embarcadero.com/article/23218

Почему "новый клиент" ругается, а 5.6 - нет - в клиенте ИБ 5.6 и ниже диалект вообще не предусмотрен, там всегда передается константа. В функциях клиента ИБ 6 и выше - передается либо 1, либо 3. Если в приложении не предусмотрена установка диалекта у компонент, то хрен знает, что туда передается, и "нового клиента" использовать нельзя.
Якобы в отношении BDE написано, что он всегда по умолчанию передает диалект 1, но я бы на это не ставил, и читал текст выше.
7 авг 19, 18:18    [21944061]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

kdv
в отношении BDE написано, что он всегда по умолчанию передает диалект 1

Хуже. Он по умолчанию предаёт 0. И в старых версиях сервера вокруг этого был заборчик из
костылей.

Posted via ActualForum NNTP Server 1.5

7 авг 19, 18:22    [21944066]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

вообще-то у базы creation date: Jul 25, 2017(!)
так что, про 10 лет кто-то нам поёт...

Posted via ActualForum NNTP Server 1.5

7 авг 19, 18:25    [21944072]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Список зарезервированных слов никак не связан с диалектом.
Он зависит от версии парсера.
Какую версию парсера использовать - определяет сетевой сервер по версии протокола в установленном соединении.

Забудьте про диалекты.
7 авг 19, 18:38    [21944093]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

07.08.2019 18:38, hvlad пишет:
> Список зарезервированных слов никак не связан с диалектом.
> Он зависит от версии парсера.
> Какую версию парсера использовать - определяет сетевой сервер по версии протокола в установленном соединении.

АХРЕНЕТЬ...
ей бо!

Posted via ActualForum NNTP Server 1.5

7 авг 19, 18:40    [21944095]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Мимопроходящий,

пиши письма в Инпрайз :)
7 авг 19, 18:44    [21944097]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Vlad F
Member

Откуда:
Сообщений: 873
hvlad,

Т.е. "сервер FireBird 1.5" это тоже они? Отжешь сцуки!))
7 авг 19, 21:02    [21944161]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Vlad F,

чё сказать-то хотел ?
8 авг 19, 00:09    [21944240]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Vlad F
Member

Откуда:
Сообщений: 873
hvlad,

Чё с 0.9 до 1.5 описываемое безобразие (другого слова не нахожу) вполне можно было бы и поправить, а не кивать на ископаемых.
А сам чё?
8 авг 19, 00:23    [21944247]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Vlad F,

что исправить ? как исправить ? Зачем ?
Сам понял, что сказал-то ?
8 авг 19, 01:48    [21944262]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1462
Мимопроходящий
вообще-то у базы creation date: Jul 25, 2017(!)
так что, про 10 лет кто-то нам поёт...


creation date: заполняется и при ресторе базы.
8 авг 19, 04:46    [21944269]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

08.08.2019 4:46, fraks пишет:

> creation date: заполняется и при ресторе базы.

а мне вот интересно, КАК он её ресторит с "инвалидными" полями таблиц?..

Posted via ActualForum NNTP Server 1.5

8 авг 19, 11:13    [21944469]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Мимопроходящий
а мне вот интересно, КАК он её ресторит с "инвалидными" полями таблиц?..
Рестор не использует SQL парсер
8 авг 19, 11:43    [21944514]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

08.08.2019 11:43, hvlad пишет:
> Рестор не использует SQL парсер

ага, и процедуры с триггерами не "поднимает"

Posted via ActualForum NNTP Server 1.5

8 авг 19, 11:46    [21944518]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Мимопроходящий,

так он их не из исходных текстов конструирует. Иначе не было бы фичи с удалением исходников
8 авг 19, 11:53    [21944527]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Мимопроходящий,

Тексты не рассматриваются, если ты про это. Их просто пишут из бекапа в БД.
8 авг 19, 11:54    [21944528]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

08.08.2019 11:54, hvlad пишет:
> Тексты не рассматриваются, если ты про это. Их просто пишут из бекапа в БД.

откуда же тогда вылезает хрень про "план такой-то не может быть использован в процедуре такой-то" при ресторе?

Posted via ActualForum NNTP Server 1.5

8 авг 19, 11:58    [21944532]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
автор
hvlad,
Список зарезервированных слов никак не связан с диалектом.
Он зависит от версии парсера.
Какую версию парсера использовать - определяет сетевой сервер по версии протокола в установленном соединении.

Забудьте про диалекты.


Похоже на правду. Я таки слегка приврал, что IBExpert нормально работает с обоими клиентами. Так вот (на win7) с клиентом от IB(ему можно указать dll) онIBExpert соединяется с базой и не ругается на неправильные названия полей в запросах. А с клиентом от FB базу открывает, но запросы выполнять отказывается (хоть и подписывает что у базы диалект 1). И, естественно, он это делает не используя BDE.
На win10 IBExpert c клиентом IB коннектиться к базе тоже отказывается :(
8 авг 19, 13:11    [21944631]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Мимопроходящий,

BLR хранимых объектов полностью разбирается, проверяется и из него строятся зависимости,
которые сохраняются в RDB$DEPENDENCIES. Заодно строится дерево (план) выполнения запроса.
8 авг 19, 13:12    [21944633]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Михаил П
hvlad
Забудьте про диалекты.

Похоже на правду.
Только похоже ? ;)

Михаил П
На win10 IBExpert c клиентом IB коннектиться к базе тоже отказывается :(
Не хочу - так и говорит ?
Коннект не локальный, кстати ?
8 авг 19, 13:14    [21944635]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

08.08.2019 13:12, hvlad пишет:
> BLR хранимых объектов полностью разбирается, проверяется...

и игнорирует ограничения диалекта касаемо зарезервированных слов?
быть того не может.

Posted via ActualForum NNTP Server 1.5

8 авг 19, 13:17    [21944638]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Мимопроходящий,

зарезервированные слова проверяются на этапе парсинга SQL, в BLR на них уже по фигу, там своё
8 авг 19, 13:19    [21944644]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Мимопроходящий
08.08.2019 13:12, hvlad пишет:
> BLR хранимых объектов полностью разбирается, проверяется...

и игнорирует ограничения диалекта касаемо зарезервированных слов?
быть того не может.
Какой диалект ? Какие слова ? Какой SQL ?
Вкл мзг, плс
8 авг 19, 13:20    [21944645]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
автор
Не хочу - так и говорит ?
Коннект не локальный, кстати ?


Коннект сетевой

К сообщению приложен файл. Размер - 24Kb
8 авг 19, 13:38    [21944669]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
После проведения этих манипуляций
автор
If you receive the error: "Undefined Service gds_db/tcp"

1. Open Notepad as administrator.
2. File > Open > and set file type to All Files
3. C:\Windows\System32\drivers\etc\services
4. ctrl+F (search) for 3020
5. Add a new line below "cifs 3020/tcp"
6. Enter "gds_db 3050/tcp" (without quotes)
7. Save, exit, and reopen ManagementPlus

Получил другую ошибку

К сообщению приложен файл. Размер - 14Kb
8 авг 19, 13:58    [21944692]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Михаил П
Member

Откуда:
Сообщений: 14
Прошу прощения за потраченное вами время и мою тупость.
Проблема решилась установкой клиента IB из дистрибутива(он кроме dll создает еще папочки с файликами).
Всем спасибо за помощь и ликбез!
8 авг 19, 14:08    [21944706]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

08.08.2019 13:20, hvlad пишет:
> Какой диалект ? Какие слова ? Какой SQL ?

не кипишуй.
тебе всё ясно, а нам интересно.

создал на IB5.6

CREATE TABLE DEMO (
YEAR INTEGER NOT NULL,
MONTH INTEGER NOT NULL
);

восстановил на FB1.0, без проблем.
касаемо "не прицепиться", это конечно ТС малость нафантазировал.
цепляется нормально (по TCP) и тем, и тем клиентом.
но вот то, что сервер "прикидывается" 5-кой при коннекте соответствующим клиентом,
это конечно сурпрЫз...

оно понятно, что ноги растут из IB6.0, но всё одно, НЕОЖИДАННО

Posted via ActualForum NNTP Server 1.5

8 авг 19, 16:27    [21944955]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Михаил П,

undefined service gds_db/tcp - это, конечно, фэйл. Могли бы и руками сами в services прописать.
8 авг 19, 17:17    [21945001]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Мимопроходящий
тебе всё ясно, а нам интересно.
Ну так я же несколько раз повторил.
А вы мне не верите :'(
Ай-яй-яй

Мимопроходящий
но вот то, что сервер "прикидывается" 5-кой при коннекте соответствующим клиентом,
это конечно сурпрЫз...

оно понятно, что ноги растут из IB6.0, но всё одно, НЕОЖИДАННО
Ну возможно - неожиданно.
Ну - даже может быть Неожиданно
но не НЕОЖИДАННО жеж !
:)

ЗЫ а как ещё IB6 мог работать со старыми приложениями ? Обратная совместимость она такая, рождает иногда всякое...
8 авг 19, 19:42    [21945119]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 598
hvlad
Мимопроходящий,

BLR хранимых объектов полностью разбирается, проверяется и из него строятся зависимости,
которые сохраняются в RDB$DEPENDENCIES. Заодно строится дерево (план) выполнения запроса.


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

Кстати, о птичках процедурах-триггерах. Исключительно с целью повышения уровня абстрактной эрудиции, в практическом-то плане меня нынче интересует только в какой аптеке зелья дешевле. В каком порядке проверяются права на упомянутые у ея внутре объекты - сначала пользователя, имевшего неосторожность к ней обратиться, или сначала процедуры?
14 авг 19, 12:48    [21949116]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Старый плюшевый мишка
А я-то всю жизнь полагал, что планы запросов внутри процедур-триггеров тоже строятся на препаре


так оно и есть. Но если план указан для внутренних запросов явно, то будет попытка его применить
14 авг 19, 13:22    [21949167]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

14.08.2019 13:22, Симонов Денис пишет:
> так оно и есть. Но если план указан для внутренних запросов явно, то будет попытка его применить

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

Posted via ActualForum NNTP Server 1.5

14 авг 19, 13:25    [21949174]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Мимопроходящий,

попытка применить, если он корректный конечно. ИХМО всё таки явные план это зло, хотя бы потому что для более менее сложного запроса их фиг составишь.
Нужны нативные хинты
14 авг 19, 13:53    [21949227]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

14.08.2019 13:53, Симонов Денис пишет:
> попытка применить, если он корректный конечно.

ага, без статистики...

> ИХМО всё таки явные план это зло, хотя бы потому что для более менее сложного запроса их фиг составишь.
> Нужны нативные хинты

вот пока их нету...
кстати, в Оракеле, где хинтов всяких разных много,
не всегда они и помогают.

Posted via ActualForum NNTP Server 1.5

14 авг 19, 14:02    [21949240]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Мимопроходящий
имею исторический факт: рестор базы с данными проходит Ок,
а вот одних только метаданных - хрен.
"план не может быть использован".
Странное пишешь. И показать можешь ?
14 авг 19, 15:24    [21949357]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

14.08.2019 15:24, hvlad пишет:
> Странное пишешь. И показать можешь ?

бекап метаданных устроит?

Posted via ActualForum NNTP Server 1.5

14 авг 19, 15:51    [21949381]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Мимопроходящий
14.08.2019 15:24, hvlad пишет:
> Странное пишешь. И показать можешь ?

бекап метаданных устроит?
И как я с ним проверю, что с данными рестор проходит ?
14 авг 19, 16:07    [21949397]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 598
Симонов Денис
Мимопроходящий,
ИХМО всё таки явные план это зло, хотя бы потому что для более менее сложного запроса их фиг составишь.


Моя личная практика толкает к другой имхе :) Но. Это только в случае если этот сложный запрос единожды написан и высечен в камне. Если же на него в процессе использования может накладываться пара десятков условий-ограничений и десяток различных сортировок, то тут да. Того-этого. С мягким знаком.
14 авг 19, 17:07    [21949473]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 598
Мимопроходящий
14.08.2019 13:53, Симонов Денис пишет:
> попытка применить, если он корректный конечно.

ага, без статистики...


Насколько я понимаю, статистика может говорить о том, что план далёк от оптимальности, а вот насчёт может ли он быть применён - это собака где-то в другом месте порылась. Скажем, невозможно в соответствии с логикой текущей реализации оптимизатора организовать перебор таблиц в этом порядке. Не предусмотрена такая ветка в алгоритме. Как на это могут повлиять объёмы данных - для меня загадка. В дереве иф-зен-елсов под влиянием наличия данных ветвление на начальных шагах произошло так, что от корневых уровней пошло по другому поддереву, в котором эта ветка предусмотрена?
14 авг 19, 17:17    [21949480]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 598
Мимопроходящий
14.08.2019 15:24, hvlad пишет:
> Странное пишешь. И показать можешь ?

бекап метаданных устроит?


С точки зрения конфиденциальности данных передать-то можно и с ними, если не написать об этом большими буквами на двери отдела, лет 15 назад я это уже делал. Но тогда объём был другой, пожалуй, на порядок меньше как минимум.
14 авг 19, 17:22    [21949487]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Старый плюшевый мишка,

ну во-первых я всё таки юзаю 3.0 сейчас. Там оптимизатор сильно другой по сравнению с 1.5,
а во-вторых +0 или ||'' куда лучше явно заданного плана, и не ломаются при апгреде версий ФБ
14 авг 19, 17:57    [21949523]     Ответить | Цитировать Сообщить модератору
 Re: на Win10 не хочет работать со старой gds32.dll  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 598
Симонов Денис
Старый плюшевый мишка,
+0 или ||'' куда лучше явно заданного плана, и не ломаются при апгреде версий ФБ


В моей практике была пара-тройка случаев когда, даже если заставить оптимизатор перебирать таблицы в определённом тобой порядке, он всё-таки исхитрялся задействовать такие индексы, которые делали запрос раз в 100 медленнее, чем при рукотворном плане. Но -

Симонов Денис
ну во-первых я всё таки юзаю 3.0 сейчас. Там оптимизатор сильно другой по сравнению с 1.5


Такшта...
14 авг 19, 18:24    [21949545]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Firebird, InterBase Ответить