powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подмена запроса на стороне сервера Firebird
80 сообщений из 80, показаны все 4 страниц
Подмена запроса на стороне сервера Firebird
    #40086521
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток, и такой вопрос, возможно ли на стороне сервера перевернуть имя столбца таблицы в нижний регистр? Например софтина(астериск) шлёт запрос вида select * from sippeers where name='xxxx'; и если в базе создавать столбцы с именем в верхнем регистре астериск их не видит, а если с нижним то при таком запросе получает отлуп от сервера бд, с ошибкой что такого столбца нет. Поэтому мне и нужно чтобы когда на сервер приходит запрос колонки в верхнем регистре, он переворачивал его в нижний. Использую Firebird 3.0 ос Debian 10, коннект asterisk с бд через odbc драйвер
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086522
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СУБД сохраняют регистр имён объектов (таблиц, представлений, колонок и т.п.), если при создании это имя было взято в кавычки.
Разумеется, такие имена надо и дальше кавычить.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086524
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat, используй 1-й диалект.
ему пофигу регистр в именах объектов.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086530
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. получается мне в настройках самой бд нужно поменять диалект? Сейчас вроде стоит 3й
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086531
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat
Т.е. получается мне в настройках самой бд нужно поменять диалект? Сейчас вроде стоит 3й
диалект задаётся при создании базы.
если его не указать, то будет 3-й (по умолчанию).
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086532
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
СУБД сохраняют регистр имён объектов (таблиц, представлений, колонок и т.п.), если при создании это имя было взято в кавычки.
Разумеется, такие имена надо и дальше кавычить.

К сожалению я даже предположить не могу где в исходниках астериска и что мне придётся править для этого)
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086534
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий
Andrey_RedCat
Т.е. получается мне в настройках самой бд нужно поменять диалект? Сейчас вроде стоит 3й
диалект задаётся при создании базы.
если его не указать, то будет 3-й (по умолчанию).

Значит нужно 6удет пересоздать бд
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086535
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийиспользуй 1-й диалект.

Не издевайся над чайником, он ведь реально пойдёт в этот обрыв...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086536
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Мимопроходящийиспользуй 1-й диалект.

Не издевайся над чайником, он ведь реально пойдёт в этот обрыв...

Чайник электрический?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086542
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat
Например софтина(астериск) шлёт запрос вида select * from sippeers where name='xxxx'; и если в базе создавать столбцы с именем в верхнем регистре астериск их не видит, а если с нижним то при таком запросе получает отлуп от сервера бд, с ошибкой что такого столбца нет.
Запрос таки select * from sippeers
или select * from "sippeers"
или select * from SIPPEERS
или select * from "SIPPEERS"?
А таблицу создаешь create table sippeers ...?
или ?

Где фактический ДДЛ и полный текст ошибки?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086579
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat,

Все очень просто. Не надо создавать объекты с именами в двойных кавычках, и всё.
http://www.ibase.ru/ibfaq#dtproblem
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086593
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky
Andrey_RedCat
Например софтина(астериск) шлёт запрос вида select * from sippeers where name='xxxx'; и если в базе создавать столбцы с именем в верхнем регистре астериск их не видит, а если с нижним то при таком запросе получает отлуп от сервера бд, с ошибкой что такого столбца нет.
Запрос таки select * from sippeers
или 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
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086594
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv
Andrey_RedCat,

Все очень просто. Не надо создавать объекты с именами в двойных кавычках, и всё.
http://www.ibase.ru/ibfaq#dtproblem

Это то понятно, но проблема в том что астериск отправляет сам запрос без кавычек и соответственно не находит названия таблицы созданной маленькими буквами в кавычках
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086602
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не проще ли пойти по проторенной дорожке и подружить его с бд, с которой он хорошо работает?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086615
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дегтярев Евгений
а не проще ли пойти по проторенной дорожке и подружить его с бд, с которой он хорошо работает?

Не смог победить зависимости драйвера ODBC MariaDB/MySQL, чет как-то на дебиане 10 не задалось с этим
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086619
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat
Это то понятно
Тогда посмотрите, наконец, внимательно на собственный скрипт и осознайте, таки, что вы сами, собственными руками и создали проблему.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086624
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
Andrey_RedCat
Это то понятно
Тогда посмотрите, наконец, внимательно на собственный скрипт и осознайте, таки, что вы сами, собственными руками и создали проблему.

Честно, я не могу никак понять в чем проблема, вернее проблема то ясна, но вот решения я найти не могу
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086628
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще должно работать и без кавычек.
Как костыль можно создать оба столбца - с кавычками и без.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086632
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня одного смущает NAME в названии поля?

Andrey_RedCat
Column unknown
NAME


Переименуй столбец и проверь как будет работать
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086633
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat
но вот решения я найти не могу
Зачем искать-то???
kdvВсе очень просто. Не надо создавать объекты с именами в двойных кавычках, и всё.Andrey_RedCatЗатем создал так:
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE sippeers (
"id" INTEGER generated by default as identity primary key,
"name" VARCHAR(40) NOT NULL,
"ipaddr" VARCHAR(45),
"port" INTEGER, ...

Или, если уж вам так неймётся кавычить идентификаторы, то:
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE sippeers (
"ID" INTEGER generated by default as identity primary key,
"NAME" VARCHAR(40) NOT NULL,
"IPADDR" VARCHAR(45),
"PORT" INTEGER, ...
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086658
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
Andrey_RedCat
но вот решения я найти не могу
Зачем искать-то???
kdvВсе очень просто. Не надо создавать объекты с именами в двойных кавычках, и всё.
Andrey_RedCatЗатем создал так:
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE sippeers (
"id" INTEGER generated by default as identity primary key,
"name" VARCHAR(40) NOT NULL,
"ipaddr" VARCHAR(45),
"port" INTEGER, ...

Или, если уж вам так неймётся кавычить идентификаторы, то:
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE sippeers (
"ID" INTEGER generated by default as identity primary key,
"NAME" VARCHAR(40) NOT NULL,
"IPADDR" VARCHAR(45),
"PORT" INTEGER, ...


Когда создаются объекты без кавычек астериск ругается
Код: sql
1.
2.
3.
4.
[Jul 28 08:32:19] WARNING[8771]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'name', but that column does not exist!
[Jul 28 08:32:19] WARNING[8771]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'ipaddr', but that column does not exist!
[Jul 28 08:32:19] WARNING[8771]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'port', but that column does not exist!
[Jul 28 08:32:19] WARNING[8771]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'regseconds', but that column does not exist!


Потому-что сервер бд возвращает имена в верхнем регистре
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086666
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 = ?]
а вот это кто пишет?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086672
Sergey A. Volkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrey_RedCat
Дегтярев Евгений
а не проще ли пойти по проторенной дорожке и подружить его с бд, с которой он хорошо работает?

Не смог победить зависимости драйвера ODBC MariaDB/MySQL, чет как-то на дебиане 10 не задалось с этим

Есть пакет asterisk-mysql с модулями app_mysql, cdr_mysql, res_config_mysql они слинкованы с клиентом mariadb и можно работать на прямую без ODBC.

Выше упоминали использование dialect 1, но не сказали, что его можно настроить в подключении (odbc.ini).
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086682
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче, я кажется понял.
- Софтина запрашивает мету по таблице
- Ничего не знает про регистры возвращаемых имен полей
- Проверяет for field in fields if field <> requiredfield then Error
- Генерит запросы в нижнем регистре

В таких ситуациях, наверно, и двойное поле не поможет. Потому что и '"name"', и 'NAME' <> 'name'.

Но вообще это косяк софтины (астериска), может, им направить реквест?
Можно, конечно, пропатчить клиентскую либу ФБ или вообще сам сервер. Но правильней все-таки устранить косяк в астериске

P.S. Хотя закавыченное поле проходит проверку меты... может, и выгорит вариант с двумя полями
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086684
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat
Дегтярев Евгений
а не проще ли пойти по проторенной дорожке и подружить его с бд, с которой он хорошо работает?

Не смог победить зависимости драйвера ODBC MariaDB/MySQL, чет как-то на дебиане 10 не задалось с этим

и поэтому решили большего гемора поиметь...
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086689
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat
Когда создаются объекты без кавычек астериск ругается
Код: plaintext
1.
[Jul 28 08:32:19] WARNING[8771]: res_config_odbc.c:1224 require_odbc:
 Realtime table sippeers@Firebird requires column 'name', but that column does not exist!
Потому-что сервер бд возвращает имена в верхнем регистре
Предупреждение это не всегда ошибка. Часто это "вообще не проблема".
То, что разработчики Астериска не умеют(?) проверять метаданные ещё не означат, что софтина не будет работать .
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086690
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalНо вообще это косяк софтины (астериска), может, им направить реквест?

Он же работает у туевой хучи людей. Логичнее таки предположить, что косяк у аффтара.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086693
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat,

короче, надо пересоздать базу, или объекты в ней, не используя двойные кавычки в именах. И всё.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086701
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Fr0sT-BrutalНо вообще это косяк софтины (астериска), может, им направить реквест?

Он же работает у туевой хучи людей. Логичнее таки предположить, что косяк у аффтара.

Абсолютно этого не отрицаю, поэтому и пришел на форум к профессионалам, т.к. сам очень далек от работы с бд, максимум создать базу с 2мя-3мя таблицами и выполнять простейшие запросы из своего софта, не более того.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086702
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
Andrey_RedCat
Когда создаются объекты без кавычек астериск ругается
Код: plaintext
1.
[Jul 28 08:32:19] WARNING[8771]: res_config_odbc.c:1224 require_odbc:
 Realtime table sippeers@Firebird requires column 'name', but that column does not exist!
Потому-что сервер бд возвращает имена в верхнем регистре
Предупреждение это не всегда ошибка. Часто это "вообще не проблема".
То, что разработчики Астериска не умеют(?) проверять метаданные ещё не означат, что софтина не будет работать .

Кстати да, почему-то сип транки завелись, т.е. получают из таблицы данные, IAX пока не хочет, но буду посмотреть еще, возможно косяк где-то в настройке астера
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086800
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но все равно кривовато работает как-то, как-будто не все параметры вычитывает из базы, а как в базе с диалектом 1 назначить имена столбцов например session-timers(ругается на дефис) и двойные кавычки не спасают(вернее ставишь двойные кавычки ругается ibexpert, говорит Invalid token). Я все-таки хочу попробовать создать новую базу с диалектом 1 и посмотреть
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086804
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в 1-м диалекте можно использовать только a..z, 0..9, $, _.
пользуй вместо дефиса подчёркивание.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086806
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Он же работает у туевой хучи людей. Логичнее таки предположить, что косяк у аффтара.

Может, в связке с ФБ никто не юзает
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086814
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий

в 1-м диалекте можно использовать только a..z, 0..9, $, _.
пользуй вместо дефиса подчёркивание.

Значит мне не подойдет 1й диалект, т.к. название столбцов я менять не могу, значит пока остается открытым вопрос, или можно даже сказать по другому, возможно-ли создать триггер который будет переворачивать результаты выполнения запроса в нижний регистр? Например при запросе списка столбцов чтоб результат был не ID,NAME,IPADDR,PORT... а id,name,ipaddr,port... Впринципе мне кажется теоритически это возможно, только я не нашел как ставить тригеры на SELECT, есть на INSERT,UPDATE,DELETE
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086819
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
28.07.2021 16:18, Andrey_RedCat пишет:
> только я не нашел как ставить тригеры на SELECT

никак
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086820
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы как-то лихо спрыгнули с проблемы "идентификатор с запрещёнными символами" на проблему регистра.
Которая - вообще не проблема.

P.S.
А что - есть "базы" в которых вот прямо можно воткнуть дефис в идентификатор и никто ничего не станет вычитать, ругаясь на ошибки?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086822
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий

28.07.2021 16:18, Andrey_RedCat пишет:
> только я не нашел как ставить тригеры на SELECT

никак

т.е получается на стороне сервера я ничего не могу сделать?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086826
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat

т.е получается на стороне сервера я ничего не могу сделать?


Вы и на стороне клиента ничего даже не пытаетесь.

так какая разница?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086828
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
Вы как-то лихо спрыгнули с проблемы "идентификатор с запрещёнными символами" на проблему регистра.
Которая - вообще не проблема.

P.S.
А что - есть "базы" в которых вот прямо можно воткнуть дефис в идентификатор и никто ничего не станет вычитать, ругаясь на ошибки?

Все-таки с регистрами проблема, на текущий момент для меня не решаемая. Думал поменять диалект, но и тут меня ждала засада в виде запрещенных символов. Пока сижу думаю, ищу информацию по триггерам, пытаюсь решить проблему с регистром
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086829
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pastor
Andrey_RedCat

т.е получается на стороне сервера я ничего не могу сделать?


Вы и на стороне клиента ничего даже не пытаетесь.

так какая разница?

А что я могу на стороне клиента, не ковыряясь в его исходниках и не пересобирая весь астериск? На сколько я знаю у астериска нельзя редактировать запросы без копания в исходном коде.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086830
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вопрос к ТС - базу и таблицы где создавали, в IBExpert?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086831
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCatПока сижу думаю, ищу информацию по триггерам, пытаюсь решить проблему с регистром

Не ищи информацию по триггерам, это бесполезно. Читай FAQ по ссылке выше. Проверь
настройки своего ODBC DSN, там должен быть указан третий диалект. Как только у тебя начнут
сыпаться ошибки со стороны Firebird - ты на правильном пути.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086834
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gallemar
У меня вопрос к ТС - базу и таблицы где создавали, в IBExpert?

Базу создавал в isql-fb, а таблицы, да в IBEXPERT
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086836
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Andrey_RedCatПока сижу думаю, ищу информацию по триггерам, пытаюсь решить проблему с регистром

Не ищи информацию по триггерам, это бесполезно. Читай FAQ по ссылке выше. Проверь
настройки своего ODBC DSN, там должен быть указан третий диалект. Как только у тебя начнут
сыпаться ошибки со стороны Firebird - ты на правильном пути.

А можно чуть подробнее?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086837
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat
Gallemar
У меня вопрос к ТС - базу и таблицы где создавали, в IBExpert?

Базу создавал в isql-fb, а таблицы, да в IBEXPERT


Таблицы также создайте в isql. Названия таблиц и прочих атрибутов в них вводите в нижнем регистре без кавычек. База в какой диалекте создана?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086838
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 = ?]
а вот это кто пишет?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086844
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat
Все-таки с регистрами проблема
Каким боком попытка использования идентификатора "session-timers" является проблемой регистра???
Не поленился заглянуть в доку 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Да, разработчики Астериска могут извратиться любым образом, но "меня опять терзают смутные сомнения", что дефис в идентификаторах им не требуется.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086845
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCatА что я могу на стороне клиента, не ковыряясь в его исходниках и не пересобирая весь астериск?

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

Andrey_RedCatА можно чуть подробнее?

Какое слово из "настройки ODBC DSN" тебе непонятно?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086850
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gallemar
Andrey_RedCat
пропущено...

Базу создавал в isql-fb, а таблицы, да в IBEXPERT


Таблицы также создайте в isql. Названия таблиц и прочих атрибутов в них вводите в нижнем регистре без кавычек. База в какой диалекте создана?

В третьем
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086852
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat,

ок. Тогда ваши действия такие:
1. Создаем таблицы в бд с диалектом 3 в нижнем регистре и без кавычек.
2. Проверяем как работает Астериск.
Пишем сюда о результатах, ошибки - в студию.
В случает ошибок создает бд в первом диалекте и таблицы в нижнем регистре и без кавычек.
Также проверяем. В настройках ODBC не забываем указывать диалект.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086853
bum_bum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно поможет создание View с такими названиями полей, которые захочется... С помощью View можно решать огромное количество самых разнообразных проблем, думаю, что и эта проблема из их числа.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086855
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Andrey_RedCatА что я могу на стороне клиента, не ковыряясь в его исходниках и не пересобирая весь астериск?

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

Andrey_RedCatА можно чуть подробнее?

Какое слово из "настройки ODBC DSN" тебе непонятно?

Что именно там дописать, Вы предлагаете подредактировать файл odbc.ini, я правильно понял? Если да то что именно дописать? пока файлик выглядит так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
[asterisk]
Description     = Firebird
Driver          = Firebird
Dbname          = 192.168.8.107:/etc/asterisk/asterisk.fdb
User            = SYSDBA
Password        = masterkey
Role            =
CharacterSet    =
ReadOnly        = No
DIALECT         = 3


Файл odbcinst.ini выглядит так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
[Firebird]
Description     = InterBase/Firebird ODBC Driver
Driver          = /usr/lib/libOdbcFb.so
Setup           = /usr/lib/libOdbcFb.so
Threading       = 1
FileUsage       = 1
CPTimeout       =
CPReuse         =
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086857
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
28.07.2021 17:02, bum_bum пишет:
> Возможно поможет создание View с такими названиями полей, которые захочется...

вьюха в этом отношении ничем не отличается от таблицы
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086858
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
в 1-м диалекте можно использовать только a..z, 0..9, $, _.
пользуй вместо дефиса подчёркивание.

Вот это не учел. Значит создавай таблицы в нижнем регистре без кавычек в бд с третьим диалектом
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086859
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bum_bum
поможет создание View с такими названиями полей, которые захочется...

Создашь view c "-" в названиях в первом диалекте?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086860
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCatЧто именно там дописать, Вы предлагаете подредактировать файл odbc.ini, я правильно понял?

Я предлагаю включить мозг и вместо вываливания конфига на чтение МНЕ, прочитать его
самостоятельно, убедившись, что там "указан третий диалект".

Далее уже можно начать разбираться с конкретными ошибками и предупреждениями
последовательно, не кидаясь в случайные места и "например запросы". Своими лихорадочными
экспериментами ты вводишь в заблуждение и себя и нас, поскольку приведённые тобой ошибки с
разных поз этого танца дождя противоречат друг другу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086862
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 названия объектов не создать с символами "-", то вопрос с настройкой диалекта отпадает.
Делайте что я писал выше и проверяйте. Не надо метаться из стороны в сторону, Дмитрий правильно говорит.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086863
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gallemar
Andrey_RedCat,

ок. Тогда ваши действия такие:
1. Создаем таблицы в бд с диалектом 3 в нижнем регистре и без кавычек.
2. Проверяем как работает Астериск.
Пишем сюда о результатах, ошибки - в студию.
В случает ошибок создает бд в первом диалекте и таблицы в нижнем регистре и без кавычек.
Также проверяем. В настройках ODBC не забываем указывать диалект.

Не хочет создавать таблицу ошибка:
Код: sql
1.
2.
3.
4.
5.
Statement failed, SQLSTATE = 27000
unsuccessful metadata update
-CREATE TABLE SIPPEERS failed
-action cancelled by trigger (3) to preserve data integrity
-Attempt to define a second PRIMARY KEY for the same table


Создаю так:
Код: 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.
CREATE TABLE sippeers (
    id INTEGER generated by default as identity primary key,
    name VARCHAR(40) NOT NULL, 
    ipaddr VARCHAR(45), 
    port INTEGER, 
    regseconds INTEGER, 
    defaultuser VARCHAR(40), 
    fullcontact VARCHAR(80), 
    regserver VARCHAR(20), 
    useragent VARCHAR(20), 
    lastms INTEGER, 
    host VARCHAR(40), 
    type PEERTYPEENUM,
    context VARCHAR(40), 
    permit VARCHAR(95), 
    deny VARCHAR(95), 
    secret VARCHAR(40), 
    md5secret VARCHAR(40), 
    remotesecret VARCHAR(40), 
    transport TRANSPORTENUM,
    dtmfmode DTMFENUM ,
    directmedia DRCTMDENUM,
    nat VARCHAR(29), 
    callgroup VARCHAR(40), 
    pickupgroup VARCHAR(40), 
    language VARCHAR(40), 
    disallow VARCHAR(200), 
    allow VARCHAR(200), 
    insecure VARCHAR(40), 
    trustrpid YESNOENUM,
    progressinband PRGBNDENUM,
    promiscredir YESNOENUM,
    useclientcode YESNOENUM,
    accountcode VARCHAR(40), 
    setvar VARCHAR(200), 
    callerid VARCHAR(40), 
    amaflags VARCHAR(40), 
    callcounter YESNOENUM,
    busylevel INTEGER, 
    allowoverlap YESNOENUM,
    allowsubscribe YESNOENUM,
    videosupport YESNOENUM,
    maxcallbitrate INTEGER, 
    rfc2833compensate YESNOENUM,
    mailbox VARCHAR(40), 
    "session-timers" SESTIMENUM,
    "session-expires" INTEGER,
    "session-minse" INTEGER,
    "session-refresher" SESREFRENUM,
    t38pt_usertpsource VARCHAR(40), 
    regexten VARCHAR(40), 
    fromdomain VARCHAR(40), 
    fromuser VARCHAR(40), 
    qualify VARCHAR(40), 
    defaultip VARCHAR(45), 
    rtptimeout INTEGER, 
    rtpholdtimeout INTEGER, 
    sendrpid YESNOENUM,
    outboundproxy VARCHAR(40), 
    callbackextension VARCHAR(40), 
    timert1 INTEGER, 
    timerb INTEGER, 
    qualifyfreq INTEGER, 
    constantssrc YESNOENUM,
    contactpermit VARCHAR(95), 
    contactdeny VARCHAR(95), 
    usereqphone YESNOENUM,
    textsupport YESNOENUM,
    faxdetect YESNOENUM,
    buggymwi YESNOENUM,
    auth VARCHAR(40), 
    fullname VARCHAR(40), 
    trunkname VARCHAR(40), 
    cid_number VARCHAR(40), 
    callingpres CALLGPRESENUM,
    mohinterpret VARCHAR(40), 
    mohsuggest VARCHAR(40), 
    parkinglot VARCHAR(40), 
    hasvoicemail YESNOENUM,
    subscribemwi YESNOENUM,
    vmexten VARCHAR(40), 
    autoframing YESNOENUM,
    rtpkeepalive INTEGER, 
    "call-limit" INTEGER,
    g726nonstandard YESNOENUM,
    ignoresdpversion YESNOENUM,
    allowtransfer YESNOENUM,
    dynamic YESNOENUM,
    path VARCHAR(256), 
    supportpath YESNOENUM,
    PRIMARY KEY (id), 
    UNIQUE (name)
);



Хотя этим запросом в IBExpert все создавалось
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086866
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat, создайте новую базу и в ней создавайте таблицы, такое ощущение, что в бд какие-то остатки старых метаданных есть. Ошибка подсказывает, что пытаетесь дважды создать первичный ключ.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086867
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И я просил убрать кавычки.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086868
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
--
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086869
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCatХотя этим запросом в IBExpert все создавалось

Врёшь. Такое технически не может работать вне зависимости от клиентского приложения:
Код: sql
1.
2.
3.
id INTEGER generated by default as identity primary key,
.....
PRIMARY KEY (id)


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086871
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086872
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал без кавычек
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
[Jul 28 19:46:49] WARNING[1345]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'name', but that column does not exist!
[Jul 28 19:46:49] WARNING[1345]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'ipaddr', but that column does not exist!
[Jul 28 19:46:49] WARNING[1345]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'port', but that column does not exist!
[Jul 28 19:46:49] WARNING[1345]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'regseconds', but that column does not exist!
[Jul 28 19:46:49] WARNING[1345]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'defaultuser', but that column does not exist!
[Jul 28 19:46:49] WARNING[1345]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'fullcontact', but that column does not exist!
[Jul 28 19:46:49] WARNING[1345]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'regserver', but that column does not exist!
[Jul 28 19:46:49] WARNING[1345]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'useragent', but that column does not exist!
[Jul 28 19:46:49] WARNING[1345]: res_config_odbc.c:1224 require_odbc: Realtime table sippeers@Firebird requires column 'lastms', but that column does not exist!
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086875
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat,
подключись через isql, выполни
show table sippeers;
и покажи вывод сюда. В IBExpert как трассировку запускать знаешь?
Нужно проверить какой запрос идет к бд.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086876
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCatres_config_odbc.c:1224

Вот теперь можешь лезть в исходники, читать указанную строчку и смотреть почему поле не
находится. Может, в конфиге астерикса его надо указать в верхнем регистре, может он
неправильно обрабатывает атрибут SQL_IDENTIFIER_CASE или вообще его игнорирует или ещё
100500 причин.

Это чисто астериксовское предупреждение, к Firebird отношения не имеющее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086877
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat
Код: plaintext
[Jul 28 19:46:49]  WARNING 
Память девичья или перевести подчёркнутое на русский?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086902
bum_bum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gallemar, если база данных создана с "-" в названиях полей, то почему View не может быть создана с теми же дефисами? Но написание букв во View можно изменить на те, которые нужны.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086913
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
[Jul 28 19:46:49]  WARNING 
Память девичья или перевести подчёркнутое на русский?

Я знаю что варнинг это предупреждение, но это же Не значит что их нужно всегда игнорировать, тем более астериск не много неадекватно работает.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086919
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
SQL> show table sippeers
CON> ;
ID                              INTEGER Not Null Identity (by default)
NAME                            VARCHAR(40) Not Null
IPADDR                          VARCHAR(45) Nullable
PORT                            INTEGER Nullable
REGSECONDS                      INTEGER Nullable
DEFAULTUSER                     VARCHAR(40) Nullable
FULLCONTACT                     VARCHAR(80) Nullable
REGSERVER                       VARCHAR(20) Nullable
USERAGENT                       VARCHAR(20) Nullable
LASTMS                          INTEGER Nullable
HOST                            VARCHAR(40) Nullable
TYPE                            (PEERTYPEENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('friend','user','peer'))
CONTEXT                         VARCHAR(40) Nullable
PERMIT                          VARCHAR(95) Nullable
DENY                            VARCHAR(95) Nullable
SECRET                          VARCHAR(40) Nullable
MD5SECRET                       VARCHAR(40) Nullable
REMOTESECRET                    VARCHAR(40) Nullable
TRANSPORT                       (TRANSPORTENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('udp','tcp','tls','ws','wss','udp,tcp','tcp,udp'))
DTMFMODE                        (DTMFENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('rfc2833','info','shortinfo','inband','auto'))
DIRECTMEDIA                     (DRCTMDENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no','nonat','update'))
NAT                             VARCHAR(29) Nullable
CALLGROUP                       VARCHAR(40) Nullable
PICKUPGROUP                     VARCHAR(40) Nullable
LANGUAGE                        VARCHAR(40) Nullable
DISALLOW                        VARCHAR(200) Nullable
ALLOW                           VARCHAR(200) Nullable
INSECURE                        VARCHAR(40) Nullable
TRUSTRPID                       (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
PROGRESSINBAND                  (PRGBNDENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no','never'))
PROMISCREDIR                    (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
USECLIENTCODE                   (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
ACCOUNTCODE                     VARCHAR(40) Nullable
SETVAR                          VARCHAR(200) Nullable
CALLERID                        VARCHAR(40) Nullable
AMAFLAGS                        VARCHAR(40) Nullable
CALLCOUNTER                     (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
BUSYLEVEL                       INTEGER Nullable
ALLOWOVERLAP                    (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
ALLOWSUBSCRIBE                  (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
VIDEOSUPPORT                    (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
MAXCALLBITRATE                  INTEGER Nullable
RFC2833COMPENSATE               (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
MAILBOX                         VARCHAR(40) Nullable
T38PT_USERTPSOURCE              VARCHAR(40) Nullable
REGEXTEN                        VARCHAR(40) Nullable
FROMDOMAIN                      VARCHAR(40) Nullable
FROMUSER                        VARCHAR(40) Nullable
QUALIFY                         VARCHAR(40) Nullable
DEFAULTIP                       VARCHAR(45) Nullable
RTPTIMEOUT                      INTEGER Nullable
RTPHOLDTIMEOUT                  INTEGER Nullable
SENDRPID                        (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
OUTBOUNDPROXY                   VARCHAR(40) Nullable
CALLBACKEXTENSION               VARCHAR(40) Nullable
TIMERT1                         INTEGER Nullable
TIMERB                          INTEGER Nullable
QUALIFYFREQ                     INTEGER Nullable
CONSTANTSSRC                    (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
CONTACTPERMIT                   VARCHAR(95) Nullable
CONTACTDENY                     VARCHAR(95) Nullable
USEREQPHONE                     (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
TEXTSUPPORT                     (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
FAXDETECT                       (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
BUGGYMWI                        (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
AUTH                            VARCHAR(40) Nullable
FULLNAME                        VARCHAR(40) Nullable
TRUNKNAME                       VARCHAR(40) Nullable
CID_NUMBER                      VARCHAR(40) Nullable
CALLINGPRES                     (CALLGPRESENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('allowed_not_screened','allowed_passed_screen','allowed_failed_screen','allowed','prohib_not_screened','prohib_passed_screen','prohib_failed_screen','prohib'))
MOHINTERPRET                    VARCHAR(40) Nullable
MOHSUGGEST                      VARCHAR(40) Nullable
PARKINGLOT                      VARCHAR(40) Nullable
HASVOICEMAIL                    (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
SUBSCRIBEMWI                    (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
VMEXTEN                         VARCHAR(40) Nullable
AUTOFRAMING                     (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
RTPKEEPALIVE                    INTEGER Nullable
G726NONSTANDARD                 (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
IGNORESDPVERSION                (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
ALLOWTRANSFER                   (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
DYNAMIC                         (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
PATH                            VARCHAR(256) Nullable
SUPPORTPATH                     (YESNOENUM) VARCHAR(20) Nullable
                                CHECK (value IS NULL or VALUE IN ('yes','no'))
CONSTRAINT INTEG_20:
  Primary key (ID)
CONSTRAINT INTEG_22:
  Unique key (NAME)
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086931
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, это isql всё в верхний регистр перевел или пациент забил и всё в верхнем регистре создал?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086940
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar
Коллеги, это isql всё в верхний регистр перевел или пациент забил и всё в верхнем регистре создал?

Это имена созданные без кавычек, которым без разницы регистр.
ISQL выводит их в каком-нибудь виде, в качестве "какого-нибудь" очевидно, берется верхний регистр.

У меня вот так выглядит:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
C:\Users\fraks>isql -user SYSDBA -password 12345 d:\DB25\KANCI_N.FDB
Database:  d:\DB25\KANCI_N.FDB, User: SYSDBA
SQL> show table spod;
ID                              INTEGER Not Null
IDGR                            INTEGER Not Null
NAME                            VARCHAR(100) Not Null DEFAULT ''
NM                              INTEGER Nullable
CONSTRAINT SPOD_FK_IDGR:
  Foreign key (IDGR)    References SGR (ID)
CONSTRAINT SPOD_PK:
  Primary key (ID)

Triggers on Table SPOD:
SPOD_BI_NM, Sequence: 0, Type: BEFORE INSERT, Active
SPOD_NM_NEW2, Sequence: 0, Type: BEFORE UPDATE, Active
SPOD_AD_SA, Sequence: 0, Type: AFTER DELETE, Active
SPOD_AIU_SA, Sequence: 0, Type: AFTER INSERT OR UPDATE, Active
SPOD_AIUD_LOGS, Sequence: 0, Type: AFTER INSERT OR UPDATE OR DELETE, Active
SQL>
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086941
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar
Меня одного смущает NAME в названии поля?
Andrey_RedCat
Column unknown
NAME


Нет проблем с таким именем поля.
У меня в половине таблиц такое поле есть. (FB-2.5.8 диалект 3)
И во всех предыдущих БД, начиная от Interbase-4.2.1 проблем с этим именем не было.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086942
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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 2.5.8 dialect 3
-- Все имена без кавычек

CREATE TABLE SGR (
    ID    INTEGER NOT NULL,
    NAME  VARCHAR(100) DEFAULT '' NOT NULL,
    NM    INTEGER
);

-- И обращаться к таблице можно в любом регистре, но только если тоже без кавычек.
-- Ниже - все варианты рабочие

select sgr.name from sgr
select sgr.NAME from SGR
select SGR.name from SGR
select SGr.nAMe from SGR

-- Однако, если мы хотим написать запрос с использованием кавычек, то писАть нужно только вот так
select SGR."NAME" from SGR

-- остальные варианты работать не будут

select SGR."name" from SGR
/*
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
SGR.name.
At line 1, column 8.
*/

-- и кавычки должны быть только двойные. С одинарными - сервер вообще не поймет что речь про поле.
-- У Firebrid в двойных кавычках - имена объектов, в одинарных - строковые константы
select SGR.'NAME' from SGR
/*
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 12.
'NAME'.
*/



Соответственно, для работы с БД приложение (астериск) должен писАть запросы определенным образом - либо вообще без кавычек, либо в двойных кавычках, при этом имена полей в запросе нужно приводить к верхнему регистру для полей созданных без кавычек или сохранять исходное написание поля если поле создано в кавычках. Если приложение расчитывает на какое-то иное поведение - то упс...

И я вообще не понял, в чем смысл пихать Firebird в систему, на него не расчитанную? Для линуха же есть дефолт - mysql и его форки. Проще почитать доки на него, ибо точно известно что с mysql энтот астериск работать умеет. А вот умеет ли он работать с firebird - это большой вопрос, и я не вижу причины для чего нужно в этот вопрос погружаться, тем более что никаких знаний именно по firebird у автора топика нету.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086951
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks
никаких знаний именно по firebird у автора топика нету

mysql он тоже завести не может
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086984
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gallemar
fraks
никаких знаний именно по firebird у автора топика нету

mysql он тоже завести не может

Mysql заводится отлично, не заводится его odbc
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086987
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Я всё решил, только ответ не получается"

P.S.
Firebird тоже заводится с полпинка, ничем особенным в этом плане не отличаясь.
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40086993
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
29.07.2021 03:57, fraks пишет:
> Это имена созданные без кавычек, которым без разницы регистр.
> ISQL выводит их в каком-нибудь виде, в качестве "какого-нибудь" очевидно, берется верхний регистр.

ISQL ничего никуда не приводит и регистр не меняет.
как записано в RDB$RELATION_FIELDS, так он и выводит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40087005
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_RedCat
Mysql заводится отлично, не заводится его odbc

может стоит тогда допинать его odbc, раз такие проблемы с FB?
...
Рейтинг: 0 / 0
Подмена запроса на стороне сервера Firebird
    #40087496
Andrey_RedCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отказался я все-таки от этой идеи, по стоку несовместимы астериск походу и firebird, буду смотреть в сторону поддерживаемых астериском из коробки баз. Всем спасибо большое за помощь
...
Рейтинг: 0 / 0
80 сообщений из 80, показаны все 4 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подмена запроса на стороне сервера Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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