Тема: В чем разница при подключении к базам данных

Здравствуйте.
Можно по разному подключаться к базам данных.
Например

Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
Set db = wrkJet.OpenDatabase(pathTables)

или так:

Set con = New ADODB.Connection
With con
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Open "D:\InOut\Etal.mdb"
End With

Как лучше, как правильнее, подскажите пожалуйста.

Re: В чем разница при подключении к базам данных

> Airiz
Моё личное предпочтение -  второй вариант,
как показывает мой ограниченный опыт, намного
больше возможностей, т.е. не будет неких ограничений
работать вне созданного рабочего пространства
как в первом варианте
Хотя с точки зрения безопасности (если эта задача главнее) -
первый вариант надежней
~'J'~

Re: В чем разница при подключении к базам данных

> Airiz
Упустил, главное:
в первом случае провайдер DAO (нужно подключать библиотеку
Microsoft DAO Object Library X.XXX,
а во втором ADO (Microsoft ActiveX Data Object X.X Library)
Никаких особых предпочтений по скорости я не заметил
Единственное, что выгоднее на DAO это создавать таблицы
и определять существующие элементы в DataBase
(это мое личное мнение - намного проще), зато в ADO/ADOX больше других
возможностей, а в перспективе я видел что DAO будет исключен
из дальнейших версий (хотя может брешут)
~'J'~

Re: В чем разница при подключении к базам данных

> Fatty
Вместо DAO можно использовать ADOX (примерно для тех же целей).

(изменено: stas_org, 2 апреля 2009г. 10:41:35)

Re: В чем разница при подключении к базам данных

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = "Database.mdb"
cn.Open

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Source = "SELECT * from LindabProducts"
Set rs.ActiveConnection = cn
rs.Open

Database.mdb находится в папке с макросом, что здесь не так? Почему rs.Fields-<неудается найти объект>?

Re: В чем разница при подключении к базам данных

Понял :idea:  Database.mdb должен находиться в папке с файлом dwg.

Re: В чем разница при подключении к базам данных

Цитата из книжки по ADO:
В ситуациях, когда необходимо исполнять многократные, разнообразные действия с подключением, нужно резервировать явное создание объектов Connection. Однако, если вы нуждаетесь только в единственном объекте Recordset ..., более эффективным будет непосредственное создание объекта Recordset, что неявным образом создает объект  Connection

Как видите автор поддерживает позицию fixo.