<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=43194&amp;view=findpost&amp;p=282864</guid>
        <pubDate>Sat, 17 Jan 2004 16:27:31 +0000</pubDate>
        <title>[на редактирование] ODBC, Простые вопросы</title>
        <link>https://forum.sources.ru/index.php?showtopic=43194&amp;view=findpost&amp;p=282864</link>
        <description><![CDATA[Vit: <em class='tag-i'>Привет народ.<br>
Я очень долго не решался задать все эти вопросы вам и надеюсь мне кто-нибудь ответит.<br>
Конечно я понимаю что на все эти вопросы нельзя ответь, но МНЕ ОЧЕНЬ НАДО ЗНАТЬ.<br>
Хоть коротко объясните(если сами знаете).<br>
Я уже замонался С ПНИМАНИЕМ ТОГО, ЧТО ИЗ СЕБЯ ПРЕДСТОВЛЯЕТ ТЕХНОЛОГИЯ ДОСТУПА К БАЗЕ.<br>
Я не могу понять что предстовляет из себя ODBC. Это технология доступа к базам данных? <br>
Да, Пишут везде. Но что это конкретно? Это набор финкций для доступа к базе. Тогда получается что это библиотека?Не понимаю. <br>
Почему ODBC называют драйвером? И почему этих драйверов очень много и все ODBC ? Не понимаю. <br>
Что значит драйвер с набором финкций ? Как все это происходит воще ? И почему если я хочу установить связь с базой на СУБД(например SQL Server)<br>
то говорят что она(СУДБ) тоже должна поддерживать этот драйвер ? Что вообще происходит ?<br>
И почему при подключении через ADO меня просят выброть драйвер ? Какой драйвер, я не могу понять прои универсальном доступе к данным. И если я подключаюсь через ADO .то почему поставщик должен быть OLE BD. И что значит поставщик OLE DB? </em><br>
<br>
<strong class='tag-b'>Есть базы данных - разные, все они по разному организованы, имеют разные особенности и разные способы ображщения с окружающими. А у нас программа, мы хотим чтобы соединение с базами данных было во первых простое, во вторых по возможности универсальное. Значит получаем простую цепочку:<br>
<br>
БД ---A---- Драйвер ----B--- программа<br>
<br>
Рассмотрим звенья:<br>
1) БД есть здесь нечто двоякое, или это просто набор файлов (DBase, Paradox, MS Access) или отдельная программа которая которая внутри себя хранит данные (MS SQL Server, Oracle и т.д.) и их обрабатывает<br>
2) Драйвер - это библиотека функций которые обеспечивают 2 интерфейса: во первых (---A----) это коннект с конкретной базой данных, т.е. КАЖДАЯ база данных имеет свой драйвер, который ЗНАЕТ как говорить с этой базой данных, во вторых - интерфейс (----B---) - некий протокол, соглашение, набор функций - с помощью которых программа пользователя может говорить с драйвером - вот этот интерфейс желательно иметь одинаковый для всех баз данных, чтобы в программе для работы с разными базами данных не надо было много менять. Набор драйверов для разных баз данных, которые имеют одинаковый интерфейс (----B---), одинаковую логику построения, одинаковую архитектуру, общие файлы конфигурации и утилиты для обслуживания и называются &quot;технологией доступа к базам данных&quot; - ODBC, ADO, DAO, BDE, DBExpress и т.д.</strong><br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Гость hilolo</strong>, 6.12.03, 21:15<br>
Это набор финкций для доступа к базе</div></div><br>
<br>
Нет, то набор драйверов, для каждой базы данных, причём каждый драйвер имеет одинаковые функции для программиста, но умеет применять эти функции на разных база данных.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Гость hilolo</strong>, 6.12.03, 21:15<br>
Тогда получается что это библиотека?</div></div><br>
<br>
Нет. Драйвер базы данныз - это библиотека.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Гость hilolo</strong>, 6.12.03, 21:15<br>
Почему ODBC называют драйвером? </div></div><br>
<br>
Неправильно называют. Это набор драйверов. Обычно имеется ввиду &quot;драйвер ODBC&quot; - т.е. драйвер для доступа к базе данных, который сделан по технологии и с архитектурой ODBC, т.е. поддерживает некий стандартный набор функций, который обязан обеспечивать любой драйвер ODBC<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Гость hilolo</strong>, 6.12.03, 21:15<br>
И почему этих драйверов очень много и все ODBC ? </div></div><br>
<br>
Количество драйверов: в принципе каждая база данных имеет свой драйвер, но ситуация несколько осложняется тем, что иногда один драйвер может работать с несколькими типами баз данных - например DBase III и DBase IV, а драйвера для некоторых баз данных производятся разными производителями, поэтому может быть и несколько разных драйверов к одной и той же базе данных от разных компаний.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Гость hilolo</strong>, 6.12.03, 21:15<br>
Что значит драйвер с набором финкций ? </div></div><br>
<br>
Библиотека функций, DLL<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Гость hilolo</strong>, 6.12.03, 21:15<br>
И почему если я хочу установить связь с базой на СУБД(например SQL Server)<br>
то говорят что она(СУДБ) тоже должна поддерживать этот драйвер ? </div></div><br>
<br>
Наоборот, у Вас должен быть драйвер умеющий работать с данной СУБД<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Гость hilolo</strong>, 6.12.03, 21:15<br>
И почему при подключении через ADO меня просят выброть драйвер ? </div></div><br>
<br>
Потому что Ваша программа должна знать какой драйвер использовать. Программе по фиг какой драйвер использовать - они все имеют один и тот же набор функций, но вм не всё равно - если назначить неправильный драйвер, то программа он не сможет ничего получить из базы данных<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Гость hilolo</strong>, 6.12.03, 21:15<br>
Какой драйвер, я не могу понять прои универсальном доступе к данны</div></div><br>
<br>
Универсальный для программы, универсальность и обеспечивает выбор нужного драйвера.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Гость hilolo</strong>, 6.12.03, 21:15<br>
И если я подключаюсь через ADO .то почему поставщик должен быть OLE BD</div></div><br>
<br>
поставщик может быть и ODBC. Вообще на начальных этапах можно не пудрить себе мозги терминологией и читать:<br>
<br>
поставщик=драйвер<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Гость hilolo</strong>, 6.12.03, 21:15<br>
И что значит поставщик OLE DB? </div></div><br>
<br>
поставщик=драйвер<br>
<br>
<em class='tag-i'>Но вот один момент: поповоду постовщик= драйвер, если это так то почему при подключении к базе мне предлогают например OLE DB provider for ODBC driver. Т.е я буду подключаться с ODBC драйвером, но к чему, к другому драйвеуру.Или имеется ввиду что база поддерживает OLE DB драйвер ? И что тогда значит база поддерживает драйвер ? Как я понял например при подключении  через ODBC драйвер к простой базе *.mdb база ничего не поддерживает. Т.е<br>
(База)---(А)---Драйвер---(Б) и со стороны базы никокого драйвера нет.</em><br>
<br>
Просто ADO имеет возможности использовать ODBC драйвера, сама оставаясь над ними высокоуровневой настройкой, т.е. в нашей схеме:<br>
<br>
БД ---A---- Драйвер ODBC ----B--- ADO ---- программа<br>
<br>
Это плохой путь программирования - не эффективный и очень медленный. Он нужен только для совместимости - для использования ADO для доступа к античным базам данных. Для доступа к MS Access используйте ADO провайдер &quot;Jet&quot;, так как со всеми другими вас ждут большие и малые проблемы в большом количестве...]]></description>
        <author>Vit</author>
        <category>Базы данных FAQ</category>
      </item>
	
      </channel>
      </rss>
	