Аннотация:
В этой статье рассматривается "долгожитель" – Open Data-Base Connectivity (ODBC), а именно некоторые аспекты ввода-вывода с использованием этого API.
Меня тоже при работе с MFC-обертками многое не устраивало. Я так и не нашел нормальной библиотеки для работы с ODBC из С++.
Приведенная в статье реализация видимо имеет следующие недостатки:
— работает только с ограниченными возможностями ODBC;
— не имеет хорошей обработки ошибок, что необходимо для серьезных приложений;
— неизвестно где и с каким успехом она применялась;
Здравствуйте, william_j, Вы писали:
_>Очень интересный подход.
_>Меня тоже при работе с MFC-обертками многое не устраивало. Я так и не нашел нормальной библиотеки для работы с ODBC из С++.
_>Приведенная в статье реализация видимо имеет следующие недостатки: _> — работает только с ограниченными возможностями ODBC; _> — не имеет хорошей обработки ошибок, что необходимо для серьезных приложений; _> — неизвестно где и с каким успехом она применялась;
С п.1 я согласен. Я предложил альтернативу чистому ODBC API и классам MFC.
По п.2 Обработка ошибок присутствует (необходимый минимум) для определения успешно сработал SQL-запрос или не успешно. К тому же никто Вам не запрещает добавить нужную обработку. Честно говоря, в статье приведён усечённый код. На практике у меня используются улучшенные версии этих функций. (статья вообще была год назад написана).
По п.3. Применяется в моей работе, успешно, особенно когда нужно делать много разных SQL-запросов, вызывать хранимые процедуры или вообще генерировать эти SQL-запросы динамически.
Ну, а принцип использования переменного числа аргументов очень стар и его редко используют, а зря . Мне было интересно узнать и ваши применения va_list/va_arg.
А вообще мне очень хотелось поделиться с коллегами своими идеями.
Re: ODBC: проблема эффективного ввода/вывода.
От:
Аноним
Дата:
16.09.03 09:06
Оценка:
Здравствуйте, К.М. Максимов, Вы писали:
КММ>Статья: КММ>ODBC: проблема эффективного ввода/вывода.
КММ>Авторы: КММ> К.М. Максимов
КММ>Аннотация: КММ>В этой статье рассматривается "долгожитель" – Open Data-Base Connectivity (ODBC), а именно некоторые аспекты ввода-вывода с использованием этого API.
если Вы приводите исходники так проверяйте чтобы они хотя бы компилировались. вот например функция db_printf с ошибками компилируется
Читал я эту статью. Она меня не заинтересовала по причине слабй функциональности предложенного метода. Я согласен с необходимостью переметризации — поэтому хочу поделиться тем, что сам нарыл решая данную проблему. См. классы CODBCRecordset(www.codeproject.com/database/odbcrecordset.asp) и (другой автор добавил функионала) CMyRecordset + CMyDatabase (www.codeproject.com/database/myrecordset.asp). Там тоже есть чего улучшить — но эти классы ДЕЙСТВИТЕЛЬНО удобное решение параметризации. Минус — необходимость использовать MFC
ДЕЙСТВИТЕЛЬНО удобное решение параметризации. Минус — необходимость использовать MFC http://home.worldonline.dk/viksoe/dbwrappers.htm
спасет отца русской демократии
CString использовать из WTL
Правда куча багов
Но с "нуля" вряд ли кто решится написать такую штуку. Работать надо
А тут на тебе — баги правь и вперед
Короче советую, если кто еще не видел
Главный плюс, что есть возможность переключаться на OLEDB например без
переписывания кода.(пример то же ест на сайте)
Вы, наверное, неправильно меня поняли... Я имел в виду именно ПАРАМЕТРИЗАЦИЮ а не универсальную обвяку 2-х API. Чтобы убедить меня в обратном покажите, плиз, как я могу получить количество, и типы параметров хранимой процедуры а также получить значения OUTPUT параметров после выполнения ? Элементарную параметризацию столбцов select запроса выполняет и "слабенький" CODBCRecorset...
Здравствуйте, screw_cms, Вы писали:
_>Здравствуйте, AlekseyFromUral, Вы писали:
AFU>>ДЕЙСТВИТЕЛЬНО удобное решение параметризации. Минус — необходимость использовать MFC AFU>>http://home.worldonline.dk/viksoe/dbwrappers.htm AFU>>Удачи
_>Вы, наверное, неправильно меня поняли... Я имел в виду именно ПАРАМЕТРИЗАЦИЮ а не универсальную обвяку 2-х API. Чтобы убедить меня в обратном покажите, плиз, как я могу получить количество, и типы параметров хранимой процедуры а также получить значения OUTPUT параметров после выполнения ? Элементарную параметризацию столбцов select запроса выполняет и "слабенький" CODBCRecorset...
_>Всего хорошего
Сорри
в своей статье — КММ>Статья: вы вставили таблицу 1. и сослались на то, что ее можно найти в MSDN. Вообще возникает такой вопрос:"К какой категории относится последняя строка в таблице?"
Далее, цитирую:"ODBC – это стандартный интерфейс, который существует во многих операционных системах, а в Windows 95 и последующие версии Windows он встроен."
Так как статья достаточно свежая, то эта фраза, по поводу встроенности ODBC во все ОС Windows, как минимум, настораживает!