|
ODBC Pattern Value Argument и системные таблицы Firebird
|
|||
---|---|---|---|
#18+
У примерно каталожных функций в 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2020, 18:17 |
|
ODBC Pattern Value Argument и системные таблицы Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov У примерно каталожных функций в ODBC 3.* аргумент, определяющий имя таблицы, по умолчанию является маской поиска. Dimitry Sibiryakov тип CHAR() в системных таблицах и вытекающие из него ведущие пробелы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2020, 18:49 |
|
ODBC Pattern Value Argument и системные таблицы Firebird
|
|||
---|---|---|---|
#18+
Если у тебя проблема таки с конечными пробелами и тем, что 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" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2020, 19:06 |
|
ODBC Pattern Value Argument и системные таблицы Firebird
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2020, 19:08 |
|
|
start [/forum/topic.php?fid=40&msg=39977569&tid=1560299]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
158ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 248ms |
0 / 0 |