Страница 1 из 2
ibase API
Добавлено: 19 июн 2008, 10:16
mhalion
Для взаимодействия с базой InterBase 7.5 использую ibase API:
isc_compile_request, isc_start_and_send. Т.е. процедуркой isc_compile_request компилирую BLR запрос и далее выполняю его isc_start_and_send'м.
Проблема в том что я не могу разобрать с синтаксисом BLR. Может существует какая-нибудь утилита для формирования BLR из SQL запроса? Я попробовал использовать BLR из procedure который храниться в RDB$PROCEDURES, но он не выполняет, т.е. выполняется, но ничего не происходит. У кого есть подскажите доки по BLR.
Добавлено: 19 июн 2008, 11:02
hvlad
Если не можешь понять BLR, то чего пользуешь низкоуровневое API ?
Нужен тебе ESQL и gpre.
Добавлено: 19 июн 2008, 11:07
mhalion
hvlad писал(а):Если не можешь понять BLR, то чего пользуешь низкоуровневое API ?
Нужен тебе ESQL и gpre.
Дело в том что я пишу не с нуля, а у меня уже есть определенная часть написанная как раз с помощью BLR. Так есть что-нибудь по BLR???
Добавлено: 19 июн 2008, 11:24
hvlad
mhalion писал(а):hvlad писал(а):ESQL и gpre.
Дело в том что я пишу не с нуля, а у меня уже есть определенная часть написанная как раз с помощью BLR. Так есть что-нибудь по BLR???
Чукча не читатель ?
Добавлено: 19 июн 2008, 11:33
mhalion
hvlad писал(а):Чукча не читатель ?

Спасибо за подсказку. Но не могли бы вы подсказать насчет дальнейших действий с Embedded SQL и gpre??? Как с их помощью получить необходимые BLR???
Добавлено: 19 июн 2008, 11:40
WildSery
mhalion писал(а):насчет дальнейших действий с Embedded SQL и gpre???
Я бы начал с чтения документации по ним.
На этом сайте, в разделе "документация".
Добавлено: 19 июн 2008, 11:45
mhalion
WildSery писал(а):Я бы начал с чтения документации по ним.
На этом сайте, в разделе "документация".
Дело не в том что я не знаю что это такое, а в том что я не понимаю как они мне помогут получить BLR. Может я и не собираюсь разбираться в тонкостях... Вот, например, причем тут Embedded SQL? Он вообще ненужен. Я не знаю как перевести обыкновенный SQL запрос в BLR. Вот и всё.
Добавлено: 19 июн 2008, 11:47
mhalion
mhalion писал(а):Дело не в том что я не знаю что это такое, а в том что я не понимаю как они мне помогут получить BLR. Может я и не собираюсь разбираться в тонкостях... Вот, например, причем тут Embedded SQL? Он вообще ненужен. Я не знаю как перевести обыкновенный SQL запрос в BLR. Вот и всё.
Изыните. Погоречился.
Добавлено: 19 июн 2008, 11:59
WildSery
mhalion писал(а):Я не знаю как перевести обыкновенный SQL запрос в BLR. Вот и всё.
Как раз с помощью GPRE

Добавлено: 19 июн 2008, 12:04
mhalion
Спасибо:)
Добавлено: 19 июн 2008, 12:37
mhalion
Подскажите по компилированию SQL запроса с помощью gpre.
Не нашел ниодного примера компилирования SQL запроса. gpre позволяет компилировать программы написанные на каком-то базовом языке со встроенными SQL инструкциями и я получаю просто exe.
Пусть у меня есть база c:\ib\sample.gdb
Есть запрос SELECT * FROM SAMPLE_TBL
Как будет выглядить файл sample.e и какой инструкцией его скомпилить?
Добавлено: 19 июн 2008, 12:58
kdv
замучил, ей-богу

gpre не производит exe. gpre это препроцессор из *.e в *.c. Поэтому "не нашел ни одного примера" - гон. Я тебе уже указал на папку examples.
Там даже есть ПОДПАПКА GPRE с этими файлами (например, чем тебе не понравился stat2.e ?).
на каком-то базовом языке
это и есть embedded sql.
Добавлено: 19 июн 2008, 13:14
mhalion
kdv писал(а):замучил, ей-богу

АХАХА!:) Ну а как ещё то? Я уже не могу с этими blr'ами, InterBase'ами и т.д. ДА нашел я эту папку. ПРосто не компилится:
stat2.e и employee.gdb копирую в одну папку. Выполняю gpre -database employee.gdb stat2.e и получаю unavailable database.
Добавлено: 19 июн 2008, 13:23
belov-evgenii
mhalion писал(а):Выполняю gpre -database employee.gdb stat2.e и получаю unavailable database.
И под какой учеткой оно подключается?
Добавлено: 19 июн 2008, 13:37
kdv
unavailable database
www.ibase.ru/ibfaq.htm#unavail
ты или брось это дело, или ...
Добавлено: 19 июн 2008, 13:58
mhalion
gpre -database localhost:D:\employee.gdb -user SYSDBA -password masterkey stat2.e и вылезает "Your user name and password are not defined. Ask your database administrator to
set up an InterBase login". Хотя если регить базу в IBConsole или в IBExpert, то всё нормально регится
Добавлено: 19 июн 2008, 14:16
hvlad
Всё это описано в соотв. доке.
У тебя легальный IB 7.5 ? Открой книжицу, и почитай.
Добавлено: 19 июн 2008, 14:17
kdv
какие мучения-то...

попробуй в консоли, где ГПРЕ запускаешь, перед запуском сделать
set ISC_USER=SYSDBA
set ISC_PASSWORD=masterkey
а из командной строки юзера и пароль убрать
Добавлено: 19 июн 2008, 14:23
mhalion
Гигантское спасибо за помощ! Я знал что вы хорошие и добрые:) Просто на самом деле долго бился уже над этим и поэтому тяжко. Ещё раз спасибо дальше я сам. уффф
Добавлено: 19 июн 2008, 14:33
kdv
гпре - это ж фактически атавизьм. Если не для исходников сервера, то для создания приложений - почти на 99%. Отсюда всякие странности.