powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ODBC Pattern Value Argument и системные таблицы Firebird
5 сообщений из 5, страница 1 из 1
ODBC Pattern Value Argument и системные таблицы Firebird
    #39977553
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У примерно каталожных функций в ODBC 3.* аргумент, определяющий имя таблицы, по умолчанию
является маской поиска. К счастью, правила этой маски в основном совпадают с LIKE, но есть
одна маленькая проблема: тип CHAR() в системных таблицах и вытекающие из него ведущие пробелы.

Текущий ODBC драйвер обходит это, добавляя в конец маски знак процента, но в общем случае
это нехорошо, поскольку тот захватывает не только пробелы и находятся таблицы, которые не
должны бы находиться. В некоторых случаях он его не добавляет и это опять нехорошо,
поскольку не находятся таблицы, которые должны.

Замена LIKE на SIMILAR TO в принципе может помочь, но при этом отваливаются индексы:
"rdb$relation_name similar to 'AAAA *' escape '\'" выдаёт "PLAN (RDB$RELATIONS NATURAL)".

Собственно, вопрос: хотя бы в пятой версии Firebird нельзя ли перековать поля системных
таблиц на VARCHAR?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ODBC Pattern Value Argument и системные таблицы Firebird
    #39977565
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
У примерно каталожных функций в ODBC 3.* аргумент, определяющий имя таблицы, по умолчанию
является маской поиска.
Что значит "примерно" ? Приведи пример

Dimitry Sibiryakov
тип CHAR() в системных таблицах и вытекающие из него ведущие пробелы.
Ведущие ???
...
Рейтинг: 0 / 0
ODBC Pattern Value Argument и системные таблицы Firebird
    #39977569
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у тебя проблема таки с конечными пробелами и тем, что LIKE их учитывает при сравнении, т.е.

маска для имени таблицы "%X" превращается в
а) RDB$RELATION_NAME LIKE "%X" и не ловит имена с пробелами в имени после последней X, или
б) RDB$RELATION_NAME LIKE "%X%" и ловит лишние имена с не пробельными символами после X

то что мешает писать запрос как-то так

RDB$RELATION_NAME LIKE "%X%" AND TRIM(RDB$RELATION_NAME) LIKE "%X"

?
...
Рейтинг: 0 / 0
ODBC Pattern Value Argument и системные таблицы Firebird
    #39977570
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЧто значит "примерно" ? Приведи пример

Следует читать как "у примерно половины каталожных функций".
https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/arguments-in-catalog-functions

hvladВедущие ???
"Хвостовые" опять же.

PS: Походу, мне не стоит даже пытаться думать о двух вещах сразу...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ODBC Pattern Value Argument и системные таблицы Firebird
    #39977575
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladчто мешает писать запрос как-то так

Очевидно, кончившиеся таблетки от тупости. Спасибо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ODBC Pattern Value Argument и системные таблицы Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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