Метод безопастней ExecuteSQL() ? (ODBC)
От: UNKNOWN Россия  
Дата: 13.12.01 04:30
Оценка:
Привет всем.
Работа с базами даных в VC++ через ODBC мне показалась достаточно сложной, так как не могу нигде найти хорошего материала и к сожалению ограничен в использовании инета в данный момент. Поэтому и обращаюсь за помощью. Не мог бы кто-нибудь подсказать существует ли какой-нибудь метод безопастней ExecuteSQL() функции? Так как если что-то будет не так в SQL скрипте прога естественно вылетет с инфой о неизвестной ошибки, даже с использованием try catch блоком. При этом ExecuteSQL() функция не возвращает ни каких параметров, что очень-то и не безопастно. Работаю сейчас с MySQL и был бы рад работать на прямую без ODBC, но существует вероятность, что придётся переключиться на Oracle и поэтому использую ODBC дабы не нарваться на ситуацию делать всё заного . Да может быть это не к чему, но я работаю над консольным сёрвер приложением с подержкой MFS, тоесть ни каких кнопок, баз данных контролов, короче ни каких визуальных объектов в проге нет. Ах да совсем забыл, ExecuteSQL() я использую только для добавления, обновления и удаления записей, а это очень ответственный момент поэтому-то ExecuteSQL тут не очень то безопастна для использования.

Я буду очень благодарен за вашу помощь и обещаю рейтинговать ответы которые мне как-то помогли.

Спасибо
Re: Метод безопастней ExecuteSQL() ? (ODBC)
От: Аноним  
Дата: 13.12.01 06:33
Оценка:
Так обрабатываются ошибки
[vc]
CString strSQL;
int size_=0;
strSQL="SELECT Link_Pred,Name FROM Predpr WHERE (NAME LIKE 'ÆYO\%')";
TRY
{
recset.Open(CRecordset::forwardOnly,strSQL,CRecordset::readOnly);
while( !recset.IsEOF() )
{
recset.MoveNext();
size_++;
}
recset.Requery();
}
CATCH (CDBException, e)
{
AfxMessageBox("Database error: "+e->m_strError);
return 0;
}
END_CATCH;
[/vc]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.