powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Firebird API: не ругается на ошибку
6 сообщений из 6, страница 1 из 1
Firebird API: не ругается на ошибку
    #34356358
Voral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю консольную утилиту для работы с Firebird'ными базами. Она выполняет скрипты. Но тут натолкнулся на проблемму.
В базе зарегистрирована UDF функция. Однако в udf-файле этой функции нет (скажем, забыли оновить его, а базу скопировали с машины где он был).
Теперь я создаю хранимую процедуру в которой используется эта УДФ-функция.
Работаю с FB через API.

Запрос на создание процедуры. Благополучно пропускается. А АПИ не возвращает ошибки.
Помогите ее определить.

Сегодня много мучился, но не смог решить проблему. Вот последний вариант кода, который в остальных ситуациях нормально отрабатывает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
bool cFBBase::ExecuteQuery(CString Query){
	char *SQLQuery;
	SQLQuery=strdup(Query);
	ISC_STATUS Res=isc_dsql_execute_immediate(this->m_status, &this->m_db, &this->m_trans,  0 , SQLQuery, this->m_SQLDialect,NULL);
	free(SQLQuery);
	return (Res== 0 );
};


--==005 мой номер на крыле==--
...
Рейтинг: 0 / 0
Firebird API: не ругается на ошибку
    #34356535
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня напрягает вот это:
isc_dsql_execute_immediate(this->m_status, &this->m_db, &this->m_trans , 0, SQLQuery, this->m_SQLDialect,NULL);

Я бы сделал так:
isc_dsql_execute_immediate(this->m_status, &(this->m_db), &(this->m_trans) , 0, SQLQuery, this->m_SQLDialect,NULL);

Или вот так:
dbHandle = this->m_db;
trHandle = this->m_trans;
isc_dsql_execute_immediate(this->m_status, &dbHandle, &trHandle , 0, SQLQuery, this->m_SQLDialect,NULL);
...
Рейтинг: 0 / 0
Firebird API: не ругается на ошибку
    #34356576
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь про ошибки.
Их проверяют так


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
char msg[ 512 ];
ISC_STATUS *pvector; 

if(status_vector[ 0 ] ==  1  && status_vector[ 1 ])  
{
 pvector = status_vector; 
   isc_interprete(msg, &pvector); 
   // Копируешь куда-нибудь первую часть msg
     ...

      msg[ 0 ] = '\n';
     while(isc_interprete(msg +  1 , &pvector)); 
   // Копируешь куда-нибудь остальную часть msg
      ...
 
  // Получаешь код  
  sql_code = isc_sqlcode(&pvector);
}

Там же в API Guide даже примеры есть.
...
Рейтинг: 0 / 0
Firebird API: не ругается на ошибку
    #34356599
Voral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZmeisheТеперь про ошибки.
Их проверяют так
....

Там же в API Guide даже примеры есть.

Спасибо. Попробую. С Гуидом не пруха какаято вчера. Не смог скачать ни с одной ссылки через Яндекс вчера, то ссылка битая то еще чего нибудь.....

Но только Guide для IB6. Линка на FB API Guide нет ни у кого?
...
Рейтинг: 0 / 0
Firebird API: не ругается на ошибку
    #34356620
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо только Guide для IB6. Линка на FB API Guide нет ни у кого?
Я не думаю, что API ib/fb принципиально отличаются. У меня тоже нет. Я IB7.5 пользую.
...
Рейтинг: 0 / 0
Firebird API: не ругается на ошибку
    #34356626
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Firebird API: не ругается на ошибку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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