|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Всем доброго времени суток, и такой вопрос, возможно ли на стороне сервера перевернуть имя столбца таблицы в нижний регистр? Например софтина(астериск) шлёт запрос вида select * from sippeers where name='xxxx'; и если в базе создавать столбцы с именем в верхнем регистре астериск их не видит, а если с нижним то при таком запросе получает отлуп от сервера бд, с ошибкой что такого столбца нет. Поэтому мне и нужно чтобы когда на сервер приходит запрос колонки в верхнем регистре, он переворачивал его в нижний. Использую Firebird 3.0 ос Debian 10, коннект asterisk с бд через odbc драйвер ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 17:54 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
СУБД сохраняют регистр имён объектов (таблиц, представлений, колонок и т.п.), если при создании это имя было взято в кавычки. Разумеется, такие имена надо и дальше кавычить. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 17:58 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat, используй 1-й диалект. ему пофигу регистр в именах объектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 18:00 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Т.е. получается мне в настройках самой бд нужно поменять диалект? Сейчас вроде стоит 3й ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 18:10 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Т.е. получается мне в настройках самой бд нужно поменять диалект? Сейчас вроде стоит 3й если его не указать, то будет 3-й (по умолчанию). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 18:12 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Basil A. Sidorov СУБД сохраняют регистр имён объектов (таблиц, представлений, колонок и т.п.), если при создании это имя было взято в кавычки. Разумеется, такие имена надо и дальше кавычить. К сожалению я даже предположить не могу где в исходниках астериска и что мне придётся править для этого) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 18:15 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Мимопроходящий Andrey_RedCat Т.е. получается мне в настройках самой бд нужно поменять диалект? Сейчас вроде стоит 3й если его не указать, то будет 3-й (по умолчанию). Значит нужно 6удет пересоздать бд ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 18:17 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Мимопроходящийиспользуй 1-й диалект. Не издевайся над чайником, он ведь реально пойдёт в этот обрыв... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 18:20 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Мимопроходящийиспользуй 1-й диалект. Не издевайся над чайником, он ведь реально пойдёт в этот обрыв... Чайник электрический? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 18:26 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Например софтина(астериск) шлёт запрос вида select * from sippeers where name='xxxx'; и если в базе создавать столбцы с именем в верхнем регистре астериск их не видит, а если с нижним то при таком запросе получает отлуп от сервера бд, с ошибкой что такого столбца нет. или select * from "sippeers" или select * from SIPPEERS или select * from "SIPPEERS"? А таблицу создаешь create table sippeers ...? или ? Где фактический ДДЛ и полный текст ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 19:09 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat, Все очень просто. Не надо создавать объекты с именами в двойных кавычках, и всё. http://www.ibase.ru/ibfaq#dtproblem ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 00:00 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky Andrey_RedCat Например софтина(астериск) шлёт запрос вида select * from sippeers where name='xxxx'; и если в базе создавать столбцы с именем в верхнем регистре астериск их не видит, а если с нижним то при таком запросе получает отлуп от сервера бд, с ошибкой что такого столбца нет. или select * from "sippeers" или select * from SIPPEERS или select * from "SIPPEERS"? А таблицу создаешь create table sippeers ...? или ? Где фактический ДДЛ и полный текст ошибки? Создавал сначала без кавычек получал ошибку вида res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'name', but that column does not exist! Затем создал так: CREATE TABLE sippeers ( "id" INTEGER generated by default as identity primary key, "name" VARCHAR(40) NOT NULL, "ipaddr" VARCHAR(45), "port" INTEGER, ... И получил ошибку вида [Jul 28 08:10:11] WARNING[8805]: res_config_odbc.c:122 custom_prepare: SQL Prepare failed! [SELECT * FROM sippeers WHERE name = ? AND host = ?] [Jul 28 08:10:11] WARNING[8805]: res_odbc.c:538 ast_odbc_print_errors: SQL Prepare returned an error: HY000: [ODBC Firebird Driver][Firebird]Dynamic SQL Error SQL error code = -206 Column unknown NAME At line 1, column 32 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 06:11 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
kdv Andrey_RedCat, Все очень просто. Не надо создавать объекты с именами в двойных кавычках, и всё. http://www.ibase.ru/ibfaq#dtproblem Это то понятно, но проблема в том что астериск отправляет сам запрос без кавычек и соответственно не находит названия таблицы созданной маленькими буквами в кавычках ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 06:12 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
а не проще ли пойти по проторенной дорожке и подружить его с бд, с которой он хорошо работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 07:04 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Дегтярев Евгений а не проще ли пойти по проторенной дорожке и подружить его с бд, с которой он хорошо работает? Не смог победить зависимости драйвера ODBC MariaDB/MySQL, чет как-то на дебиане 10 не задалось с этим ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 08:08 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Это то понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 08:40 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Andrey_RedCat Это то понятно Честно, я не могу никак понять в чем проблема, вернее проблема то ясна, но вот решения я найти не могу ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 09:31 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Вообще должно работать и без кавычек. Как костыль можно создать оба столбца - с кавычками и без. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 09:51 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Меня одного смущает NAME в названии поля? Andrey_RedCat Column unknown NAME Переименуй столбец и проверь как будет работать ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 10:06 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat но вот решения я найти не могу kdvВсе очень просто. Не надо создавать объекты с именами в двойных кавычках, и всё.Andrey_RedCatЗатем создал так: Код: sql 1. 2. 3. 4. 5.
Или, если уж вам так неймётся кавычить идентификаторы, то: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 10:07 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Andrey_RedCat но вот решения я найти не могу kdvВсе очень просто. Не надо создавать объекты с именами в двойных кавычках, и всё. Код: sql 1. 2. 3. 4. 5.
Или, если уж вам так неймётся кавычить идентификаторы, то: Код: sql 1. 2. 3. 4. 5.
Когда создаются объекты без кавычек астериск ругается Код: sql 1. 2. 3. 4.
Потому-что сервер бд возвращает имена в верхнем регистре ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 10:57 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat [Jul 28 08:10:11] WARNING[8805]: res_config_odbc.c:122 custom_prepare: SQL Prepare failed! [SELECT * FROM sippeers WHERE name = ? AND host = ?] а вот это кто пишет? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 11:06 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Дегтярев Евгений а не проще ли пойти по проторенной дорожке и подружить его с бд, с которой он хорошо работает? Не смог победить зависимости драйвера ODBC MariaDB/MySQL, чет как-то на дебиане 10 не задалось с этим Есть пакет asterisk-mysql с модулями app_mysql, cdr_mysql, res_config_mysql они слинкованы с клиентом mariadb и можно работать на прямую без ODBC. Выше упоминали использование dialect 1, но не сказали, что его можно настроить в подключении (odbc.ini). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 11:22 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Короче, я кажется понял. - Софтина запрашивает мету по таблице - Ничего не знает про регистры возвращаемых имен полей - Проверяет for field in fields if field <> requiredfield then Error - Генерит запросы в нижнем регистре В таких ситуациях, наверно, и двойное поле не поможет. Потому что и '"name"', и 'NAME' <> 'name'. Но вообще это косяк софтины (астериска), может, им направить реквест? Можно, конечно, пропатчить клиентскую либу ФБ или вообще сам сервер. Но правильней все-таки устранить косяк в астериске P.S. Хотя закавыченное поле проходит проверку меты... может, и выгорит вариант с двумя полями ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 11:36 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Дегтярев Евгений а не проще ли пойти по проторенной дорожке и подружить его с бд, с которой он хорошо работает? Не смог победить зависимости драйвера ODBC MariaDB/MySQL, чет как-то на дебиане 10 не задалось с этим и поэтому решили большего гемора поиметь... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 11:45 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Когда создаются объекты без кавычек астериск ругается Код: plaintext 1.
То, что разработчики Астериска не умеют(?) проверять метаданные ещё не означат, что софтина не будет работать . ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 11:54 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalНо вообще это косяк софтины (астериска), может, им направить реквест? Он же работает у туевой хучи людей. Логичнее таки предположить, что косяк у аффтара. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 11:57 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat, короче, надо пересоздать базу, или объекты в ней, не используя двойные кавычки в именах. И всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 12:02 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Fr0sT-BrutalНо вообще это косяк софтины (астериска), может, им направить реквест? Он же работает у туевой хучи людей. Логичнее таки предположить, что косяк у аффтара. Абсолютно этого не отрицаю, поэтому и пришел на форум к профессионалам, т.к. сам очень далек от работы с бд, максимум создать базу с 2мя-3мя таблицами и выполнять простейшие запросы из своего софта, не более того. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 12:35 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Andrey_RedCat Когда создаются объекты без кавычек астериск ругается Код: plaintext 1.
То, что разработчики Астериска не умеют(?) проверять метаданные ещё не означат, что софтина не будет работать . Кстати да, почему-то сип транки завелись, т.е. получают из таблицы данные, IAX пока не хочет, но буду посмотреть еще, возможно косяк где-то в настройке астера ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 12:36 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Но все равно кривовато работает как-то, как-будто не все параметры вычитывает из базы, а как в базе с диалектом 1 назначить имена столбцов например session-timers(ругается на дефис) и двойные кавычки не спасают(вернее ставишь двойные кавычки ругается ibexpert, говорит Invalid token). Я все-таки хочу попробовать создать новую базу с диалектом 1 и посмотреть ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 15:55 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
в 1-м диалекте можно использовать только a..z, 0..9, $, _. пользуй вместо дефиса подчёркивание. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:00 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Он же работает у туевой хучи людей. Логичнее таки предположить, что косяк у аффтара. Может, в связке с ФБ никто не юзает ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:02 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Мимопроходящий в 1-м диалекте можно использовать только a..z, 0..9, $, _. пользуй вместо дефиса подчёркивание. Значит мне не подойдет 1й диалект, т.к. название столбцов я менять не могу, значит пока остается открытым вопрос, или можно даже сказать по другому, возможно-ли создать триггер который будет переворачивать результаты выполнения запроса в нижний регистр? Например при запросе списка столбцов чтоб результат был не ID,NAME,IPADDR,PORT... а id,name,ipaddr,port... Впринципе мне кажется теоритически это возможно, только я не нашел как ставить тригеры на SELECT, есть на INSERT,UPDATE,DELETE ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:18 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
28.07.2021 16:18, Andrey_RedCat пишет: > только я не нашел как ставить тригеры на SELECT никак Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:24 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Вы как-то лихо спрыгнули с проблемы "идентификатор с запрещёнными символами" на проблему регистра. Которая - вообще не проблема. P.S. А что - есть "базы" в которых вот прямо можно воткнуть дефис в идентификатор и никто ничего не станет вычитать, ругаясь на ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:25 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Мимопроходящий 28.07.2021 16:18, Andrey_RedCat пишет: > только я не нашел как ставить тригеры на SELECT никак т.е получается на стороне сервера я ничего не могу сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:26 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat т.е получается на стороне сервера я ничего не могу сделать? Вы и на стороне клиента ничего даже не пытаетесь. так какая разница? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:31 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Вы как-то лихо спрыгнули с проблемы "идентификатор с запрещёнными символами" на проблему регистра. Которая - вообще не проблема. P.S. А что - есть "базы" в которых вот прямо можно воткнуть дефис в идентификатор и никто ничего не станет вычитать, ругаясь на ошибки? Все-таки с регистрами проблема, на текущий момент для меня не решаемая. Думал поменять диалект, но и тут меня ждала засада в виде запрещенных символов. Пока сижу думаю, ищу информацию по триггерам, пытаюсь решить проблему с регистром ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:34 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
pastor Andrey_RedCat т.е получается на стороне сервера я ничего не могу сделать? Вы и на стороне клиента ничего даже не пытаетесь. так какая разница? А что я могу на стороне клиента, не ковыряясь в его исходниках и не пересобирая весь астериск? На сколько я знаю у астериска нельзя редактировать запросы без копания в исходном коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:37 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
У меня вопрос к ТС - базу и таблицы где создавали, в IBExpert? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:38 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCatПока сижу думаю, ищу информацию по триггерам, пытаюсь решить проблему с регистром Не ищи информацию по триггерам, это бесполезно. Читай FAQ по ссылке выше. Проверь настройки своего ODBC DSN, там должен быть указан третий диалект. Как только у тебя начнут сыпаться ошибки со стороны Firebird - ты на правильном пути. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:39 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Gallemar У меня вопрос к ТС - базу и таблицы где создавали, в IBExpert? Базу создавал в isql-fb, а таблицы, да в IBEXPERT ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:41 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Andrey_RedCatПока сижу думаю, ищу информацию по триггерам, пытаюсь решить проблему с регистром Не ищи информацию по триггерам, это бесполезно. Читай FAQ по ссылке выше. Проверь настройки своего ODBC DSN, там должен быть указан третий диалект. Как только у тебя начнут сыпаться ошибки со стороны Firebird - ты на правильном пути. А можно чуть подробнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:43 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Gallemar У меня вопрос к ТС - базу и таблицы где создавали, в IBExpert? Базу создавал в isql-fb, а таблицы, да в IBEXPERT Таблицы также создайте в isql. Названия таблиц и прочих атрибутов в них вводите в нижнем регистре без кавычек. База в какой диалекте создана? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:44 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat pastor пропущено... Вы и на стороне клиента ничего даже не пытаетесь. так какая разница? А что я могу на стороне клиента, не ковыряясь в его исходниках и не пересобирая весь астериск? На сколько я знаю у астериска нельзя редактировать запросы без копания в исходном коде. ответить на вопрос: [Jul 28 08:10:11] WARNING[8805]: res_config_odbc.c:122 custom_prepare: SQL Prepare failed! [SELECT * FROM sippeers WHERE name = ? AND host = ?] а вот это кто пишет? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:44 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Все-таки с регистрами проблема Не поленился заглянуть в доку MySQL, с которой Астериск, вроде как, обязан работать:Permitted characters in unquoted identifiers: ASCII: [0-9,a-z,A-Z$_] (basic Latin letters, digits 0-9, dollar, underscore) Extended: U+0080 .. U+FFFFДа, разработчики Астериска могут извратиться любым образом, но "меня опять терзают смутные сомнения", что дефис в идентификаторах им не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:50 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCatА что я могу на стороне клиента, не ковыряясь в его исходниках и не пересобирая весь астериск? А почему, собственно, "не ковыряясь в его исходниках"? Это самый надёжный способ определить как им запросы формируются. Пересборка не требуется, достаточно понять почему сыплются предупреждения и как формируются запросы, вызывающие ошибки. Andrey_RedCatА можно чуть подробнее? Какое слово из "настройки ODBC DSN" тебе непонятно? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:50 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Gallemar Andrey_RedCat пропущено... Базу создавал в isql-fb, а таблицы, да в IBEXPERT Таблицы также создайте в isql. Названия таблиц и прочих атрибутов в них вводите в нижнем регистре без кавычек. База в какой диалекте создана? В третьем ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 16:58 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat, ок. Тогда ваши действия такие: 1. Создаем таблицы в бд с диалектом 3 в нижнем регистре и без кавычек. 2. Проверяем как работает Астериск. Пишем сюда о результатах, ошибки - в студию. В случает ошибок создает бд в первом диалекте и таблицы в нижнем регистре и без кавычек. Также проверяем. В настройках ODBC не забываем указывать диалект. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:02 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Возможно поможет создание View с такими названиями полей, которые захочется... С помощью View можно решать огромное количество самых разнообразных проблем, думаю, что и эта проблема из их числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:02 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Andrey_RedCatА что я могу на стороне клиента, не ковыряясь в его исходниках и не пересобирая весь астериск? А почему, собственно, "не ковыряясь в его исходниках"? Это самый надёжный способ определить как им запросы формируются. Пересборка не требуется, достаточно понять почему сыплются предупреждения и как формируются запросы, вызывающие ошибки. Andrey_RedCatА можно чуть подробнее? Какое слово из "настройки ODBC DSN" тебе непонятно? Что именно там дописать, Вы предлагаете подредактировать файл odbc.ini, я правильно понял? Если да то что именно дописать? пока файлик выглядит так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Файл odbcinst.ini выглядит так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:04 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
28.07.2021 17:02, bum_bum пишет: > Возможно поможет создание View с такими названиями полей, которые захочется... вьюха в этом отношении ничем не отличается от таблицы Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:06 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Мимопроходящий в 1-м диалекте можно использовать только a..z, 0..9, $, _. пользуй вместо дефиса подчёркивание. Вот это не учел. Значит создавай таблицы в нижнем регистре без кавычек в бд с третьим диалектом ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:08 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
bum_bum поможет создание View с такими названиями полей, которые захочется... Создашь view c "-" в названиях в первом диалекте? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:09 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCatЧто именно там дописать, Вы предлагаете подредактировать файл odbc.ini, я правильно понял? Я предлагаю включить мозг и вместо вываливания конфига на чтение МНЕ, прочитать его самостоятельно, убедившись, что там "указан третий диалект". Далее уже можно начать разбираться с конкретными ошибками и предупреждениями последовательно, не кидаясь в случайные места и "например запросы". Своими лихорадочными экспериментами ты вводишь в заблуждение и себя и нас, поскольку приведённые тобой ошибки с разных поз этого танца дождя противоречат друг другу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:18 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Вы предлагаете подредактировать файл odbc.ini, я правильно понял? [asterisk] Description = Firebird Driver = Firebird Dbname = 192.168.8.107:/etc/asterisk/asterisk.fdb User = SYSDBA Password = masterkey Role = CharacterSet = ReadOnly = No DIALECT = 3 Да, вы правильно поняли. Диалект подсветил красным. Т.к. в диалекте 1 названия объектов не создать с символами "-", то вопрос с настройкой диалекта отпадает. Делайте что я писал выше и проверяйте. Не надо метаться из стороны в сторону, Дмитрий правильно говорит. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:22 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Gallemar Andrey_RedCat, ок. Тогда ваши действия такие: 1. Создаем таблицы в бд с диалектом 3 в нижнем регистре и без кавычек. 2. Проверяем как работает Астериск. Пишем сюда о результатах, ошибки - в студию. В случает ошибок создает бд в первом диалекте и таблицы в нижнем регистре и без кавычек. Также проверяем. В настройках ODBC не забываем указывать диалект. Не хочет создавать таблицу ошибка: Код: sql 1. 2. 3. 4. 5.
Создаю так: Код: sql 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93.
Хотя этим запросом в IBExpert все создавалось ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:23 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat, создайте новую базу и в ней создавайте таблицы, такое ощущение, что в бд какие-то остатки старых метаданных есть. Ошибка подсказывает, что пытаетесь дважды создать первичный ключ. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:29 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
И я просил убрать кавычки. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:30 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Gallemar И я просил убрать кавычки. Таблица новая, ошибка была изза PRIMARY KEY (id), т.к. в начале я делаю id превичным ключем id INTEGER generated by default as identity primary key без кавычек не получается создать столбцы с именем session-timers и им подобные, т.к. в названии присутствует дефис и вылетает ошибка: Statement failed, SQLSTATE = 42000 Dynamic SQL Error -SQL error code = -104 -Token unknown - line 46, column 12 -- ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:37 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCatХотя этим запросом в IBExpert все создавалось Врёшь. Такое технически не может работать вне зависимости от клиентского приложения: Код: sql 1. 2. 3.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:38 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCatбез кавычек не получается создать столбцы с именем session-timers и им подобные Так не создавай их. Зачем они тебе? http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/I_section12_tt1465.html#Database_id243940 Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:43 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Создал без кавычек Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:47 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat, подключись через isql, выполни show table sippeers; и покажи вывод сюда. В IBExpert как трассировку запускать знаешь? Нужно проверить какой запрос идет к бд. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:55 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCatres_config_odbc.c:1224 Вот теперь можешь лезть в исходники, читать указанную строчку и смотреть почему поле не находится. Может, в конфиге астерикса его надо указать в верхнем регистре, может он неправильно обрабатывает атрибут SQL_IDENTIFIER_CASE или вообще его игнорирует или ещё 100500 причин. Это чисто астериксовское предупреждение, к Firebird отношения не имеющее. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 17:59 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 18:00 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Gallemar, если база данных создана с "-" в названиях полей, то почему View не может быть создана с теми же дефисами? Но написание букв во View можно изменить на те, которые нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 19:28 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Gallemar Andrey_RedCat, подключись через isql, выполни show table sippeers; и покажи вывод сюда. В IBExpert как трассировку запускать знаешь? Нужно проверить какой запрос идет к бд. Сейчас попробую подключиться, только до дому добрался. Как трассировать не знаю, буду очень благодарен если подскажите, трассировка это всегда гуд. Dimitry Sibiryakov Andrey_RedCatres_config_odbc.c:1224 Вот теперь можешь лезть в исходники, читать указанную строчку и смотреть почему поле не находится. Может, в конфиге астерикса его надо указать в верхнем регистре, может он неправильно обрабатывает атрибут SQL_IDENTIFIER_CASE или вообще его игнорирует или ещё 100500 причин. Это чисто астериксовское предупреждение, к Firebird отношения не имеющее. Да как бы не хотелось, но скорее всего придется ( Basil A. Sidorov Andrey_RedCat Код: plaintext
Я знаю что варнинг это предупреждение, но это же Не значит что их нужно всегда игнорировать, тем более астериск не много неадекватно работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 20:59 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Gallemar Andrey_RedCat, подключись через isql, выполни show table sippeers; и покажи вывод сюда. В IBExpert как трассировку запускать знаешь? Нужно проверить какой запрос идет к бд. Код: sql 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 21:32 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Коллеги, это isql всё в верхний регистр перевел или пациент забил и всё в верхнем регистре создал? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 23:57 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Gallemar Коллеги, это isql всё в верхний регистр перевел или пациент забил и всё в верхнем регистре создал? Это имена созданные без кавычек, которым без разницы регистр. ISQL выводит их в каком-нибудь виде, в качестве "какого-нибудь" очевидно, берется верхний регистр. У меня вот так выглядит: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 03:57 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Gallemar Меня одного смущает NAME в названии поля? Andrey_RedCat Column unknown NAME Нет проблем с таким именем поля. У меня в половине таблиц такое поле есть. (FB-2.5.8 диалект 3) И во всех предыдущих БД, начиная от Interbase-4.2.1 проблем с этим именем не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 04:09 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Код: plsql 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
Соответственно, для работы с БД приложение (астериск) должен писАть запросы определенным образом - либо вообще без кавычек, либо в двойных кавычках, при этом имена полей в запросе нужно приводить к верхнему регистру для полей созданных без кавычек или сохранять исходное написание поля если поле создано в кавычках. Если приложение расчитывает на какое-то иное поведение - то упс... И я вообще не понял, в чем смысл пихать Firebird в систему, на него не расчитанную? Для линуха же есть дефолт - mysql и его форки. Проще почитать доки на него, ибо точно известно что с mysql энтот астериск работать умеет. А вот умеет ли он работать с firebird - это большой вопрос, и я не вижу причины для чего нужно в этот вопрос погружаться, тем более что никаких знаний именно по firebird у автора топика нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 04:27 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
fraks никаких знаний именно по firebird у автора топика нету mysql он тоже завести не может ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 09:00 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Gallemar fraks никаких знаний именно по firebird у автора топика нету mysql он тоже завести не может Mysql заводится отлично, не заводится его odbc ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 11:11 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
"Я всё решил, только ответ не получается" P.S. Firebird тоже заводится с полпинка, ничем особенным в этом плане не отличаясь. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 11:14 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
29.07.2021 03:57, fraks пишет: > Это имена созданные без кавычек, которым без разницы регистр. > ISQL выводит их в каком-нибудь виде, в качестве "какого-нибудь" очевидно, берется верхний регистр. ISQL ничего никуда не приводит и регистр не меняет. как записано в RDB$RELATION_FIELDS, так он и выводит. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 11:29 |
|
Подмена запроса на стороне сервера Firebird
|
|||
---|---|---|---|
#18+
Andrey_RedCat Mysql заводится отлично, не заводится его odbc может стоит тогда допинать его odbc, раз такие проблемы с FB? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 12:08 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1559978]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
152ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
94ms |
get tp. blocked users: |
2ms |
others: | 259ms |
total: | 555ms |
0 / 0 |