Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

запрос из контекста в БД firebird

0

Собственно с mysql вопросов нет делаю все вот так: exten => s,1,MYSQL(Connect connid 192.168.1.33 root test test) ;подключаемся к базе exten => s,n,MYSQL(Query resultid ${connid} SELECT color FROM car WHERE numcar=456) ; сам запрос exten => s,n,MYSQL(Fetch fetchid ${resultid} RESULT) exten => s,n,MYSQL(Clear ${resultid}) exten => s,n,MYSQL(Disconnect ${connid})

тут все понятно, в моем триксбоксе есть команда isql значит драйвер для firebird присутствует,

Теперь сам вопрос как мне совершить запрос в БД firebird? непосредственно из контекста, нигде информацию не могу найти по этому.

удалить закрыть спам изменить тег редактировать

спросил 2011-01-25 17:28:59 +0400

romariosar Gravatar romariosar flag of Russian Federation
578 88 8 38
http://www.webunix.ru/

3 Ответа

1

рекомендуемый способ такой(причем для мускл тоже) isql dsnname -должно конектиться. если не конектиться - ищите тчо не так. дальше. наличие isql не гарантирует коннекта. должны так же быть драйвера и настроен /etc/odbc.ini /etc/odbcinst.ini тут я вам не помогу, но это есть в документации к базе данных.

в астериске должна быть вкомпилена поддержка odbc. обычно надо unixodbc-devel для этого. v res_odbc.conf вписываете ваш дсн(БЕЗ ПАРОЛЯ)

дальше в extconf.conf вставляете

 
car=> odbc,ur_dsn,car

ну и добавляете все нужные таблицы. после этого у вас в диалплане будет работаь реалтайм. для одного поля все примитивно(синтакс для 1.6 может отличаться для других версий, смотрите встроеный хелп asterisk -rx "core show functions like REALT")

exten => s,n,Set(color=${REALTIME_FIELD(car,numcar,456,color)})

для более чем одного поля, смотрите в функцию REALTIME, но она возвраащет все поля, после чего надо парсить например функцией CUT.

если более одного условия, можно заюзать недокументированный баг..

exten => s,n,Set(color=${REALTIME_FIELD(car,car_class='A' and numcar,456,color)})

еквиввалентно

 select color from car where car_class='A' and numcar=456

а самое главное в этом то, что за конектом и пулами конектов следит сам астриск.и память тоже он освобождает.

ссылка удалить спам редактировать

ответил 2011-01-26 08:01:39 +0400

пост отмечен как вики сообщества

Этот пост - вики. Любой с кармой >300 может улучшить его.

обновил 2011-01-26 08:01:39 +0400

meral Gravatar meral flag of Ukraine
21228 23 18 169
http://pro-sip.net/

Comments

К чему такие сложности с реалтаймом? Можно просто func_odbc использовать, если на то пошло. (Я прошляпил, что топикстартер с frebird работает) switch ( 2011-01-26 08:18:56 +0400 )редактировать
где же там сложности?) лучше 5 команд или одна?) реалтайм лучше тем, что он сам следит за окннектами. отчего не бывает ситуации "о блин, 100 коннектов к базе!" meral ( 2011-01-30 21:31:39 +0400 )редактировать
я про MYSQL() не спорю, я про func_odbc говорю switch ( 2011-01-30 22:13:19 +0400 )редактировать
0

короче я так и не разобрался, просто сказал разработчикам чтобы они переходили на mysql а то с этим firebird уж очень много косяков, да и сама БД какаято не правильная:)

ссылка удалить спам редактировать

ответил 2011-01-28 14:53:26 +0400

romariosar Gravatar romariosar flag of Russian Federation
578 88 8 38
http://www.webunix.ru/

Comments

ну и слава Богу (Будде, Аллаху, Кришне и тп.) switch ( 2011-01-28 17:22:06 +0400 )редактировать
-1
ссылка удалить убрать флаг спам (1) редактировать

ответил 2011-01-25 20:04:59 +0400

switch Gravatar switch
8334 11 7 91
http://lynks.ru/

Comments

там вообще про firebird нет ничего. romariosar ( 2011-03-11 10:47:35 +0400 )редактировать
хм... как это я прошляпил... switch ( 2011-03-13 19:30:39 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-01-25 17:28:59 +0400

Просмотрен: 674 раз

Обновлен: Jan 28 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.