powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / ODBC или ADO? Что лучше? Как вы думаете?
48 сообщений из 48, показаны все 2 страниц
ODBC или ADO? Что лучше? Как вы думаете?
    #34244287
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Как Вы считаете, что лучше использовать (с точки зрения производительности) ODBC (а именно классы MFC для работы с ним) или же ADO.
Какие плюсы и минусы у обеих технологий? Каково Ваше мнение.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34244333
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ODBC конечно. Очень просто, легко, быстро и вообще сплошное удобство, но только в том случае если посылаешь лесом все оберточные ОО библиотеки.
Если хочешь писать с классами на С++ - бери ADO или OLE DB. ADO чуть лучше потому что ADO есть и под другие языки, а OLE DB - только С++, но OLE DB для C++ роднее :)

MFC обертка для ODBC - ни в коем случае.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34245150
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl MFC обертка для ODBC - ни в коем случае.
Почему?
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34246634
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikname White Owl MFC обертка для ODBC - ни в коем случае.
Почему?Слишком много глюков, слишком мало документации.
Намного лучше и проще сделать свою собственную обертку.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34246699
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlСлишком много глюков, слишком мало документации.
Намного лучше и проще сделать свою собственную обертку.
Как-то неподробно, откровенно говоря. Я пока на глюки не нарвался. Интересно было бы что-то узнать.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34246866
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глюки есть. Вот например глюк с получением данных из поля MEMO с помощью функции GetFieldValue, если там содержаться UNICODE данные. Вылазят сполшные кракозябры.

Также еще есть проблема описанная в следующем топике
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34246874
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял ODBC работает быстрее ADO?
Я к сожалению сейчас не могу позволить себе писать обвертку - не хватает знаний, а времени и совсем нет.
И все же, что будет работать быстрее ADO или MFC обвертка для ODBC?
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34246909
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что вы понимаете под быстрее ??
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34246978
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HomosumЯ так понял ODBC работает быстрее ADO?Если вспомнить про то, что ADO это всего-лишь уже скомпилированая обертка над ODBC или OLE DB драйверами (по выбору программиста) то ответ становится очевидным :)

HomosumИ все же, что будет работать быстрее ADO или MFC обвертка для ODBC?Ну "быстрее" в этом случае не очень имеет значение. Основное время будет тратиться на обработку запроса сервером, а потом выкачивание по сети результата запроса. Складировние результата в память по сравнению с этим уже ничего не значит.
Но то что ADO намного более умное, удобное и вылизаное это факт.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34247133
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ODBC нерекомендованная компанией Микрософт и поддерживается только из-за совместимости.

ADO - родная
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34247173
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LepsikODBC нерекомендованная компанией Микрософт и поддерживается только из-за совместимости.

ADO - роднаяА покажь где оно не рекомендовано?
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34247300
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ODBC Provider (MSDASQL)
The Microsoft Open Database Connectivity (ODBC) Provider is deprecated in Windows Vista, and you are strongly encouraged to use one of the native OLE DB Providers instead. Native OLE DB Providers provide better application stability and performance. Moreover, native OLE DB Providers will be supported in the future, whereas MSDASQL will not have any new features added to it, will not be available on 64-bit, and will not be accessible from the OLE DB NET Data Provider.

там много чего деприкатед.


http://msdn2.microsoft.com/en-us/library/ms692882.aspx
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34247302
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlADO это всего-лишь уже скомпилированая обертка над ODBC

вас кто-то серьезно обманул - посмотрите дерево провайдеров на сайте microsoft.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34248786
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikname White Owl MFC обертка для ODBC - ни в коем случае.
Почему?

потому, что обращение к БД в ЭМФЭЦЭ реализовано не плохо, а очень плохо. Для приложений типа хэллоу мир - покатит. А если что нить серьёзное, под серьёзный движок с длиной запроса в сикволе пару десятков тыщ байт и несколько десятков таблиц (и всё это в лёт на рантайме генериться) - не прокатит...

более того, грамотно написанные свои класики (там всего то 2-3 штучки) удобнее юзать...
например...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
		string strIn = "Select бла-бла-бла";
		m_pRec->ExecDirect(strIn, _FLT_);
		bool bFind = false;
		if(m_pRec->Fetch())
		{
			bool bDeleted = false;
			if((int)m_pRec->GetField( 1 ) == eSysId)
			{
				bFind = true;
				string strRet = m_pRec->GetField( 2 );
				int r = strRet.compare(rstrCat);
				if(r !=  0 )
				{
					bDeleted = true;
				}
				strRet = m_pRec->GetField( 3 );

и т.д...

с уважением
(круглый)
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34249633
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы меня простите, круглый, но я с вами категорически несогласный. Используя библиотеку от Rogue Wave - Objective Grid и просто работая с БД достаточно активно, я ни разу не нарвался на глюки от MS и от ODBC. Все ошибки были мои.


Я согласный с тем, что MS - must die и что там халявщики, я согласный, что все, кроме меня - идиоты, но долгий опыт разработки приучил меня к тому, что только 1% или меньше ошибок - не мои.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34249875
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор не указал, с какой конкретно СУБД он собирается работать. Для каждой БД существующие драйвера имеют очень разную степень глючности, так что универсального рецепта нет. Если исходить из того, что ОДБЦ дравер не глючен и отлажен, то мой выбор конкретно за ОО обертку поверх ОДБЦ.
Какое-то время назад я переходил с Борланд билдера на VC2003 и так-же как и автор искал для себя удобный способ работы с БД, такой-же удобный с точки зрения классов и удобства использования как и VCL. Основной каприз - ничего не хочу знать о хендлах, буферах и еще чего-то там низкоуровневом..
Чистый ОДБЦ - отпал, т.к чистый Си и надо писать свою С++ надстройку. Так-же как и автора топика у меня небыло ни времени ни желания заниматься этим самому. Хороших С++ ОО библиотеки мне тогда найти не удалось (правда позже оказалось, что существует очень проработанная C++ ОО библиотека).
Пробовал АДО. Купился - что это типа объетная либа и возможно ее будет удобно использовать.. На самом деле это АктивХ, который студия своими средствами (#import) импортирует в проект как библиотеку. Так-же в МСДН большинство хелпов по АДО - на бейсике и портировать красоты использования АктивХ с бейсика на С++ не так тривиально. Во вторых - объем кода, или вернее кол-во умных буковок которых нужно написать для открытие БД, вызова хранимой процедуры и обработки полученного набора данных превышал пределы желаемого намного. Т.е почти то-же что и ОДБЦ, но с другой стороны - АктивХ. Если хотите - могу заслать простейший проект, который вызывает одну ХП и выводит результаты ее работы - удовольствия от кода очень мало..
Так я пришел к QT. В общем это и есть объектная прослойка над ОДБЦ или родными библиотеками работы с БД. По правде говоря в реализации классов для работы с нативными библиотеками доступа к БД есть засады. Например при работе с firebird поддредживаются БД в юникод кодировке, т.е конвертить резльтаты юникод-строка БД надо самому.. Обертка над ОДБЦ меня вполне устраивает. Код работы с БД прост, понятен и очень внешне напоминает VCL.
Упрощенно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName(db_name);
db.setUserName(db_user_name);
db.setPassword(db_user_pass);
db.open();
QSqlQuery my_query(db);
my_query.prepare("execute procedure MYPROC(:param1");
my_query.bindValue(":param1", "ssss");
bool res=my_query.exec();
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34249883
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niknameВы меня простите, круглый, но я с вами категорически несогласный. Используя библиотеку от Rogue Wave - Objective Grid и просто работая с БД достаточно активно, я ни разу не нарвался на глюки от MS и от ODBC. Все ошибки были мои.


Я согласный с тем, что MS - must die и что там халявщики, я согласный, что все, кроме меня - идиоты, но долгий опыт разработки приучил меня к тому, что только 1% или меньше ошибок - не мои.

честно говоря я про глюки и не глаголил дух противоречия ? Не говорил я про них - не потому, что не нарывался, а на вскидку щаз и не вспомню... я сказал про большой обмен с бд, большие сиквол запросы, большие по инвариантности ответы...в принцепе это чиссо моё мнение, основано на опыте. и личное наблюдение на этом форуме укрепляет данную кочку зрения. Посему Ваше заявление уважаю, как Ваш взгляд на весчи...Но не более...

по поводу мастдая - простите, это не мой лексикон... и если это щаз так принято хаять милкософт - то это не ко мне.. То, что плюсы - лично готов говорить о плюсах..Если есть минусы - готов лично говорить о минусах...Так, что не по адрессу..

удачи Вам
(круглый)
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34249977
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, я думал, что большие запросы - ответственность программиста, а не ODBC. Равно как и большой трафик. Про трафик - вообще не понятно, вы хотите сказать, что при использовании ODBC трафик больше, чем при использовании ADO или что-то ещё?
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34250115
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LepsikODBC Provider (MSDASQL)
The Microsoft Open Database Connectivity (ODBC) Provider is deprecated in Windows Vista, and you are strongly encouraged to use one of the native OLE DB Providers instead. Native OLE DB Providers provide better application stability and performance. Moreover, native OLE DB Providers will be supported in the future, whereas MSDASQL will not have any new features added to it, will not be available on 64-bit, and will not be accessible from the OLE DB NET Data Provider.

там много чего деприкатед.
http://msdn2.microsoft.com/en-us/library/ms692882.aspxТак там написано что MSDASQL признан устаревшим. Не ODBC, а MSDASQL! Не технология в целом, а один единственный драйвер поддерживающий эту технологию и реализующий прозрачный доступ к различным фактическим драйверам.
Сейчас реализуя коннект на ADO достаточно написать:
ADOConnect->ConnectionString = "DSN=something;UID=user;PWD=password"
И все. Уже можно коннектится, ADO по умолчанию попытается работать запустить драйвер коннекта к бд реализованый по ODBC технологии. Опять же, по умолчанию ADOConnect будет работать через MSDASQL. MSDASQL, получит строку с DSN, прочитает этот DSN, вытащит оттуда имя физического драйвера (который поставляется производителем базы данных) и передаст все управление ему. После этого MSDASQL выключается.
Если в Vista этот драйвер убирают, то теперь при коннекте через ADO надо будет обязательно использовать ключевое слово Provider в котором указывать какого типа драйвер надо использовать для фактического коннекта.


Lepsik White OwlADO это всего-лишь уже скомпилированая обертка над ODBC
вас кто-то серьезно обманул - посмотрите дерево провайдеров на сайте microsoft.
Дерево провайдеров это дерево провайдеров. А в данном вопросе надо сначала смотреть на список драйверов, потом уже на дерево провайдеров.
Какая физическая dll содержит в себе функции которые открывают TCP/IP сокеты и отсылает SQL запрос на сервер? По какой технологии сделана эта dll? Я имею на руках такие dll сделаные по технологиям ODBC (процедурный интерфейс для общения с БД) и OLE DB (объектно-сиплюсплюсный интерфейс для общения с БД). Для ADO я такой dll ни разу не видел. Все ADO коннекты делают вызовы к физическим драйверам сделаным по ODBC или OLE DB принципам.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34250120
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niknameИзвините, я думал, что большие запросы - ответственность программиста, а не ODBC. Равно как и большой трафик. Про трафик - вообще не понятно, вы хотите сказать, что при использовании ODBC трафик больше, чем при использовании ADO или что-то ещё?Колобок говорил про MFC обертку для ODBC. А не про чистые интерфейсы.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34250162
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну и МФС обёртку хорошо бы сравнить с чьей-то. Иначе как-то абстрактно очень. Ясно, что можно сравнить, скажем, со специализированным классом, нацеленным на одну специфическую таблицу. Но ведь это будет неаккуратнеько.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34250188
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niknameНу и МФС обёртку хорошо бы сравнить с чьей-то. Иначе как-то абстрактно очень. Ясно, что можно сравнить, скажем, со специализированным классом, нацеленным на одну специфическую таблицу. Но ведь это будет неаккуратнеько.Читай что писал Ggg_old...

Мой личный выбор из всего многообразия оберток как не трудно догадаться - все в топку! :) Лично я предпочитаю работать с чистым ODBC, на языках в которых до ODBC напрямую достучаться сложно (в том же VB например) использую ADO. А на C или C++ чистый ODBC без оборачивания его в классы вообще.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34250349
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я собираюсь писать приложения для работы с нейронными сетями (научная работа), а там очень много итераций и много обращений к базе данных. Поэтому и встал вопрос о выборе технологии. Важны даже миллисекунды. Насчет базы данных еще точно не решил. Наверно для начала буду использовать MS Access и если получу результаты, то надо будет переходить на что либо более серьезное. Поэтому и важно, чтобы технология одинаково хорошо работала с любой базой данных или хотя бы с самыми распространенными. И разумеется вопрос поддержки данной технологии в дальнейшем тоже очень интересует.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34250375
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Homosumтам очень много итераций и много обращений к базе данных. Поэтому и встал вопрос о выборе технологии. Важны даже миллисекунды.эээээ.... эта.... как бы сказать чтоб не обидеть... читай внимательнее:
"Основное время будет тратиться на обработку запроса сервером, а потом выкачивание по сети результата запроса. Складирование результата в память по сравнению с этим уже ничего не значит."
Ты никогда не получишь ответа от БД через миллисекунду. Неважно какой интерфейс доступа к БД будет. Интерфейс - ничто. У тебя есть два больших тормоза - сама база данных и сеть. Не важно что ты выберешь в качестве интерфейса. Важно что ты выберешь в качестве сервера для базы данных и какой мощности компьютер отдашь под базу данных. И какой у этого компьютера будет дисковый массив.
Какая разница какую долю секунды твоя программа тратит чтобы положить циферку в память если эта самая цифрека прийдет к тебе из БД через час после запроса?
Сделай сначала скоростную базу данных, потом уже будешь об интерфейсе задумываться.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34250923
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Homosumтам очень много итераций и много обращений к базе данных. Поэтому и встал вопрос о выборе технологии. Важны даже миллисекунды.эээээ.... эта.... как бы сказать чтоб не обидеть... читай внимательнее:
"Основное время будет тратиться на обработку запроса сервером, а потом выкачивание по сети результата запроса. Складирование результата в память по сравнению с этим уже ничего не значит."
Ты никогда не получишь ответа от БД через миллисекунду. Неважно какой интерфейс доступа к БД будет. Интерфейс - ничто. У тебя есть два больших тормоза - сама база данных и сеть. Не важно что ты выберешь в качестве интерфейса. Важно что ты выберешь в качестве сервера для базы данных и какой мощности компьютер отдашь под базу данных. И какой у этого компьютера будет дисковый массив.
Какая разница какую долю секунды твоя программа тратит чтобы положить циферку в память если эта самая цифрека прийдет к тебе из БД через час после запроса?
Сделай сначала скоростную базу данных, потом уже будешь об интерфейсе задумываться.

Я с вами полностью согласен, но в моей научной работе есть важный момент - очень обширная нейронная сеть со сложной топологией. Просто невозможно будет загрузить всю информацию в память. Причем сразу не известно какой кусок нейронной сети (какое ядро) может понадобиться в тот или иной момент. Поэтому обращение к базе данных будет очень интенсивным.

А теперь еще один вопрос. Может поможете советом, какую базу данных лучше выбрать в качестве сервера?
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34251088
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, под такие задачи более подходят сервера ентерпрайз-уровня, но на мой взгляд, производительность больше от хардваре зависит, нежели от софта.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34252427
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если структура БД не сложна, то имеет смысл попробовать Berkley DB.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34253065
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niknameЕсли структура БД не сложна, то имеет смысл попробовать Berkley DB.
Впервые о такой слышу. Можно чуточку поподробнее. Почему Вы советуете именно ее? И почему в случае, если только структура не сложна.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34253119
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Homosum niknameЕсли структура БД не сложна, то имеет смысл попробовать Berkley DB.
Впервые о такой слышу. Можно чуточку поподробнее. Почему Вы советуете именно ее? И почему в случае, если только структура не сложна.
http://en.wikipedia.org/wiki/Berkeley_DB
В общем, это один большой индекс. Никаких тебе таблиц, никаких SQL, никаких сетевых клиентов просто индексированые блоки данных.
Очень просто работать, очень быстрый доступ к данным, но разбирать данные надо самостоятельно.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34310830
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlТак там написано что MSDASQL признан устаревшим. Не ODBC, а MSDASQL! Не технология в целом, а один единственный драйвер

А других у микрософт нет.

White Owl Для ADO я такой dll ни разу не видел.

боюсь вас разочаровать. ADO [msado15.dll]- обертка над OLEDB [oledb32.dll]. Вы же не будете отрицать что это чисто Си-подобный интерфес, а следовательно устаревший идеалогически. Причем для x64 его даже не стали делать. Хотя скорее всего по завякам телезрителей заимплементят, не майкрософт, a другие.

White Owl Все ADO коннекты делают вызовы к физическим драйверам сделаным по ODBC или OLE DB принципам.

Слово принципы врядли тут уместны. интересно что вы под этим подразумеваете ?

ODBC процедурный доступ, а ADO ООП.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34311368
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Homosum пишет:

> Как Вы считаете, что лучше использовать (с точки зрения
> производительности) ODBC

ODBC

(а именно классы MFC для работы с ним)

Ни в коем случае не эти классы. Либо использовать ODBC API
напрямую, либо искать какие=то альтернативные библиотеки, либо
самому такую написать.

В MFC эти классы (для работы с БД) были видимо написаны
по разнарядке, чтобы типа в MFC была бы формально поддержка
работы с БД. Для реальной работы с БД они предназначены
плохо.

> Какие плюсы и минусы у обеих технологий?

ADO очень высокоуровневое. Там большая накладуха. Впрочем я не большой знаток
ADO, могу и ошибаться. Но зато программировать на нем наверное проще.
ODBC сложен в понимании и программировании. Но если ты его знаешь, то
особых проблем нет.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34311396
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl пишет:

> MFC обертка для ODBC - ни в коем случае.
> Почему?
> Слишком много глюков, слишком мало документации.

Да нет, все там документировано, и глюков там нет,
если работает оно с родной СУБД (MSSQLServer), для
которой оно было написано. Дело в другом - эти классы
в принципе не предназначены, чтобы на них работать
с БД. Они были предназначены для того, чтобы на их
основе слепить визард для создания MFC-приложений
для работы с БД. И потом отчитаться, что в MFC есть
поддержка работы с БД. Если пытаться сделать что-то
другое - MFC-шные классы становяться неудобными, неповоротливыми,
и ненужными. Т.е. легче на ODBC API написать, чем на них.

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

> Намного лучше и проще сделать свою собственную обертку.

С этим согласен. И даже делал неоднократно так сам.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34311406
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl пишет:

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

Ну, не сказал бы, что не значит. Иногда очень даже значит. Например при
выкачивании данных огромных размеров. Специфичная конечно задача, но
я думаю это именно тот случай, когда ADO будет неприемлимо.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34311408
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik пишет:

> ODBC нерекомендованная компанией Микрософт и поддерживается только из-за
> совместимости.

Кто сказал такое ?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34311417
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0 пишет:

> Для приложений типа хэллоу мир - покатит. А если что нить серьёзное, под
> серьёзный движок с длиной запроса в сикволе пару десятков тыщ байт и
> несколько десятков таблиц (и всё это в лёт на рантайме генериться) - не
> прокатит...

Длина запроса не имеет никакого значения.
Имееют значение фичи библиотеки.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34311433
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old пишет:
> заниматься этим самому. Хороших С++ ОО библиотеки мне тогда найти не
> удалось (правда позже оказалось, что существует очень проработанная C++
> ОО библиотека).

Какая ?

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34311448
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Homosum пишет:
> Я собираюсь писать приложения для работы с нейронными сетями (научная
> работа), а там очень много итераций и много обращений к базе данных.
> Поэтому и встал вопрос о выборе технологии. Важны даже миллисекунды.

Посмотрите на GNU ODBC++
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34312053
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если уж и выбирать, то не между ADO и ODBC, а между OLEDB и ODBC.
ADO- высокоуровневая обёртка над OLEDB, предназначенная для скриптовых языков.в ADO биндинга с переменными нет и в помине.(SQLBindCol или IAccessor::CreateAccessor)

ODBC , на мой взгляд, требует меньше писанины, чем OLEDB, да и документация покороче :)

P.S. Слухи о смерти ODBC сильно преувеличены, но это тема для отдельного обсуждения.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34314258
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторюсь, если кто не заметил:
ADO - это не родной С++ ООП, это ActiveX, и использовать его из C++ приятного мало. Откройте хелпы по АДО в мсдн - и 95% там будет код на VB. Из VB использовать ActiveX - приятно.
Насчет OLEDB. Почитайте тот-же мсдн про оледб. Почитайте раз, два, три - и начнет болеть голова, а ответа как вызвать запрос в БД и обработать результат не прийдет. Для себя сделал вывод (заранее допускаю что он поверхностный) - это мощная либа, при работе с которой уже не важно что у вас является источником данных - БД, текстовый файл или OLAP КУБ. Кстати, вот для OLAP и нужен OLEDB. Но OLEDB - опять таки не чистый С++ ООП, а кажется (поправьте если не прав, ибо запямятовал) СОМ, и работаь с ней на порядок сложнее чем даже с ADO.
В результате остается ODBC, и С++ обертки над ним.

2MasterZiv:
Я имел ввиду http://otl.sourceforge.net/
Я эту либу не использовал, но первый взгляд выглядит очень привлекательной, простой в использовании, не перегруженной всякими абстракциями. Работа с БД в стиле stl.
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34383202
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Lepsik пишет:

> ODBC нерекомендованная компанией Микрософт и поддерживается только из-за
> совместимости.

Кто сказал такое ?
Posted via ActualForum NNTP Server 1.3


Explanation from M$ .
ActiveX Data Objects (ADO) is a high-level, easy-to-use interface to OLE DB.
OLE DB is a low-level, high-performance interface to a variety of data
stores.
ODBC is another low-level, high-performance (maybe not-so high-performance,
I think) interface that is designed specifically for relational data stores

A Note on Providers from M$ :
You are strongly encouraged to use one of the native OLE DB Providers
instead of the Microsoft Open Database Connectivity (ODBC) Provider . Native
OLE DB Providers provide better application stability and performance .


http://www.arcknowledge.com/gmane.comp.db.mysql.odbc/2003-12/msg00066.html
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34384590
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik пишет:

> *instead of the Microsoft Open Database Connectivity (ODBC) Provider*.
> Native
> OLE DB Providers provide *better application stability and performance*.

Это чушь собачья. Это может быть MS очень хочет заменить ODBC OLEDB-ёй.
Ну это их девичьи мячты, думаю нифига у них не выйдет. ODBC будет еще жить
долго.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34384994
Amdei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0более того, грамотно написанные свои класики (там всего то 2-3 штучки) удобнее юзать... например...
Код: plaintext
1.
2.
		string strIn = "Select бла-бла-бла";
                ...............
с уважением (круглый)
А сколько времени заняло у вас написать эти 2-3 классика? Какие типы данных извлекать из БД можно? Null'ы? Транзакции поддерживаются? А Prepared Statements?
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34385002
Amdei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old
Чистый ОДБЦ - отпал, т.к чистый Си и надо писать свою С++ надстройку.

Хороших С++ ОО библиотеки мне тогда найти не удалось (правда позже оказалось, что существует очень проработанная C++ ОО библиотека).

А поделитесь названием этой замечательной библиотеки! :)
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34385031
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amdei пишет:

> Чистый ОДБЦ - отпал, т.к чистый Си и надо писать свою С++ надстройку.

> Хороших С++ ОО библиотеки мне тогда найти не удалось (правда позже
> оказалось, что существует очень проработанная C++ ОО библиотека).

> А поделитесь названием этой замечательной библиотеки! :)

Есть коммерческая RogueWave DBTools, она достаточно хороша и
"может" со многими СУБД и не только через ODBC.
Есть еще GNU ODBC++, но она не очень хорошая, на мой взгляд.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34385047
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amdei пишет:

> А сколько времени заняло у вас написать эти 2-3 классика?

У меня это заняло что-то типа месяца четыре, с изучением с нуля
ODBC. Я тогда был еще молод ...

Какие типы
> данных извлекать из БД можно?

Любые, но на клиенте они все биндились в строковые буфера.

Null'ы?
Не проблема вообще.

Транзакции поддерживаются? А

А транзакции поддерживает не клиент, а СУБД.
Там ничего не надо делать с транзакциями.

> Prepared Statements?

Ну да.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34385535
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Amdei:
Я уже укзал ее название (см. мой пост от 7 февраля). Библтотека OTL
http://otl.sourceforge.net/
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34387857
Amdei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv> Null'ы?
Не проблема вообще.

> Prepared Statements?
Ну да.
Гм. А хедер можно посмотреть? И примерчик маленький. Чисто из академического интереса.
*Действительно интересно, особенно PS*.

MasterZiv> Транзакции поддерживаются?

А транзакции поддерживает не клиент, а СУБД.
Там ничего не надо делать с транзакциями.В ODBC? Клиенту делать ничего не надо? А, ну да...
...
Рейтинг: 0 / 0
ODBC или ADO? Что лучше? Как вы думаете?
    #34389430
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amdei пишет:

> Гм. А хедер можно посмотреть? И примерчик маленький. Чисто из

Попробую нарыть в анналах ...

> А транзакции поддерживает не клиент, а СУБД.
> Там ничего не надо делать с транзакциями.
>
> В ODBC? Клиенту делать ничего не надо? А, ну да...

Я не понял, это была ирония или как?
Клиенту действительно ничего не надо делать.
Обеспечить только возможность вызвать SQLStartTran & SQLCommit
или как их там.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / ODBC или ADO? Что лучше? Как вы думаете?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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