Страница: 1 |
В одной моей VB-программе в листбокс выводится список всех tablespaces, существующих в пределах определённой Oracle Service. Для этого я выполняю следующий код (предполагает раннее связывание с MS ADO): Dim myConn As ADODB.Connection Set myConn = New ADODB.Connection ' OLE DB Provider for Oracle (from Oracle): stConn = "Provider=OraOLEDB.Oracle;Data Source=" + HostName + _ ";User Id=" + Login + ";Password=" + Pwd + ";" myConn.Open stConn или stConn = "Provider=msdaora;Data Source=" + HostName + ";" + _ "User Id=" + Login + ";Password=" + Pwd + ";" - если "OLE DB Provider for Oracle (from Microsoft)", ... и так далее (код с Recordset-ом, SQL-строкой и проч. опускаю). Всё работает прекрасно, никаких вопросов или сложностей нет. Однако, когда знакомый, пишущий на Visual C, узнал, что для рабоспособности моей программы мне приходится распространять с ней MDAC (наверное, можно и только MS ADO, - но неважно), он поднял меня на смех. По его словам, активно работая с оракловыми базами из своих VC-программ, он "напрямую работает с библиотеками виндового клиента Oracle", и никакие MS ADO или MDAC в глаза не видел. Выяснить, как это технически у него реализовано, мне не удалось. Вопрос: он "гонит" или это я чего-то "не догоняю"?!
Я понимаю так, что установка Windows клиента Оракл на машину, где будет исполняться программа, кроме всего прочего устанавливает свой собственный ODBC или OLE DB драйвер. Твой друг скорее всего не использует технологию ADO для доступа к данным (а если и использует, то ему просто везло, что у клиентов на машинах уже стояла эта бибилиотека), соответственно он не нуждается в MDAC (MDAC по своей сути устанавливает на машину Microsoft'овские OLE DB и ODBC драйвера, а так же бибилиотеку ADO). Таким образом из всей установки MDAC, тебе нужно только ADO. Совершенно верно, оракловый клиент ставит и ODBC, и OLEDB. Если друг не использует ADO, работает на Си, и при этом как-то "запросто" (с его слов) подключается к оракловым источникам данных, то как он это делает?! Какие есть ещё технологии (не MS)? Я так понял, что он из кода Си-программы просто обращается к нужным DLL-кам от Oracle, и использует какие-то входящие в их состав функции. И ещё: таскать с дистрибутивом не весь MDAC, а лишь файлы MS ADO - это здорово; по-моему, в MS KnowledgeBase есть статья на эту тему. Но всё-таки это увесистый кусок получается. А что если таскать с собой DAO? Да, объективно говоря, DAO - это старьё, но для моих скромных целей (один коннект с одной выборкой за всю программу) - этого хватит за глаза. Поэтому ещё один вопрос: может, файлы DAO - менее увесистый "кусок" (по сравнению с ADO)? или ещё чем-то более скромным можно отделаться? Просто последние года три я "не вылезаю" из ADO, и про всё остальное порядком подзабыл уже... для работы с Ораклем (да и со многими СУБД), достаточно одной dll (по моему называется oraoci.dll, точно не помню название, давно было) и TCP/IP, при наличии соответствующих хедеров и либов разработка на VC++ происходит на ура, и переносимость простая (просто копированием), единственное что мне не нравится (но это субьективная точка зрения), удобство работы с АДО на порядок больше чем с голым апи, но всегда можно написать удобную обертку для него. Страница: 1 |
Вопрос: Доступ к БД Oracle из VB
Добавлено: 10.07.03 18:38
Автор вопроса: Comanche
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
DimaS
Вопросов: 2
Ответов: 85
Профиль | | #1
Добавлено: 11.07.03 07:36
Номер ответа: 2
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #2
Добавлено: 11.07.03 10:00
Номер ответа: 3
Автор ответа:
Alliancce
Вопросов: 4
Ответов: 10
Профиль | | #3
Добавлено: 17.07.03 10:34