Соединение AdoDB с сервером OracleInProc и RecordSet - PullRequest
0 голосов
/ 16 октября 2018

Мне было интересно, может ли кто-нибудь объяснить разницу между ADODB.Connection и созданием сеанса Oracle через "OracleInProcServer.XOraSession".В некоторых случаях одно лучше другого?

Из того, что я прочитал в ADODB cnn.Open "Pubs", "MyUserName", "MyPassword" и OraSession, вы вставили openDatabase(database_name, database_version, database_displayname, database_size).

Чем отличаются соединения?

Также с помощью соединения ADODB вы можете открыть набор записей и сохранить их с помощью rs.Open и rs.GetRows.Есть ли способ сохранить значения запроса для последующего отображения в Excel с подключением OraSession?

Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
verses
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.DbOpenDatabase("", "", 0&)

Спасибо!Мэгги

1 Ответ

0 голосов
/ 17 октября 2018

В целом оба являются инструментами для подключения баз данных к средам программирования.Согласно онлайн-документам , OracleInProcServer является объектом автоматизации OLE.Следовательно, после установки он становится доступным как ссылка VBA.ADODB (часть ADO) - это общий API базы данных, а другой - специфический API Oracle.Смотрите дальнейшие пункты ниже.Обратите внимание: я не знаком с OracleInProcServer, но ниже собирает из вышеупомянутого источника.

Объекты данных ActiveX (ADO)

  • GenerializableAPI: способен менять строки подключения и поддерживать одинаковую согласованную кодовую базу как для поставщиков OLEDB, так и для драйверов ODBC, таких как Oracle, MySQL, SQL Server, PostgresSQL и т. Д .;см. пример обмена MS Access и SQLite;
  • Полнофункциональный API базы данных для работы между прикладным уровнем и внутренней базой данных, включая вызов хранимых процедур, запросы действий, работу с наборами записей и т. д .;
  • COM или .DLL объект не ограничивается VBA, но любой язык, который может сделать COM-интерфейс (например, Java, PHP, Python, R), инициализированный с CreateObject("ADODB.Connection");
  • , так как онинтегрируется в язык программирования, может подключаться к библиотеке объектов Excel (т. е. к рабочим книгам, рабочим листам, диапазонам), даже к приложениям Access / Word / Outlook / PowerPoint;
  • Microsoft является поставщиком и сопровождающим;API доступен для , бесплатная загрузка .Однако, как правило, дополнительная установка не требуется, так как ADO поставляется с программным обеспечением MS Office или ОС Windows;
  • Широко известная в отрасли долговременная проблема и решения, доступные во многих учебных пособиях, книгах и онлайн-поисках.

OracleInProcServer

  • Специальный API: индивидуальное и специально разработанное решение специально для Oracle (проприетарного программного обеспечения) и никакой другой базы данных, поэтому возможностремится к специфическим для Oracle методам;
  • По-видимому, является способным API базы данных, работающим с объектами базы данных, dynaset и поля;
  • COM или .DLL объект не ограничивается VBA, но любым языком, которыйможет создать интерфейс COM, как видно при инициализации: CreateObject("OracleInProcServer.XOraSession");
  • Документы показать, что наборы данных dynasets могут работать с книгами Excel, проходя по записям и полям (очень похоже на ADO) дляотображать данные:

    'Display Data 
    For Rownum = 2 To myDynaset.RecordCount + 1 
      For Colnum = 0 To fldcount - 1 
        ActiveSheet.Cells(Rownum, Colnum + 1) = flds(Colnum).Value 
      Next 
      myDynaset.MoveNext 
    Next 
    
  • Oracle является поставщиком и сопровождающим, и требуется установка (возможно, платная);возможно это установлено с клиентом Oracle и другими компонентами;плюс пользователи могут позвонить кому-нибудь за помощью по данному продукту (см. соглашение / условия обслуживания);

  • Вероятно, небольшая база пользователей, у которой могут не быть решены сложные проблемы или решения широко известны или доступны.

Какой из них лучше?В конечном итоге это зависит от ваших предпочтений или потребностей проекта.Для простых задач, связанных с подключением к базе данных, вызовом запросов и выводом в Excel, все что подойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...