Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с FindFirst при доступе к Oracle 10g через DAO 3.6 / 3 сообщений из 3, страница 1 из 1
16.07.2007, 16:49
    #34661935
Non-Grata
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с FindFirst при доступе к Oracle 10g через DAO 3.6
Доброе время суток.
Подключаюсь из Excel VBA к базе Oracle10g через родной, Oracle-овский ODBC драйвер:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  Dim wrkODBC As DAO.Workspace
  Dim Test As DAO.Connection
  Dim RecSet As DAO.Recordset
  Set wrkODBC = CreateWorkspace("SKODBCWorkspace", "admin", "", dbUseODBC)
  Set Test = wrkODBC.OpenConnection("Test1", , True, "ODBC;DSN=sk;UID=skuser;DBQ=SERV;PWD=xxx;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=0;;TABLE=SKUSER.OM")
  Set RecSet = Test.OpenRecordset("SELECT ID,NAME FROM OM WHERE ID=100 OR ID=110", dbOpenSnapshot)
  RecSet.MoveFirst
  RecSet.FindFirst ("ID=110")
  Application.ActiveSheet.Cells( 1 ,  1 ) = RecSet.Fields( 1 ).Value
На строке
Код: plaintext
RecSet.FindFirst ("ID=110")
выскакивает ошибка "Операция не поддерживается для объектов этого типа". Если убрать эту строчку, то всё работает. Раньше через DAO подключался к базам Access, правда, использовал Jet: никаких проблем не возникало. В чём может быть проблема? Заранее спасибо.
...
Рейтинг: 0 / 0
16.07.2007, 17:14
    #34662057
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с FindFirst при доступе к Oracle 10g через DAO 3.6
Во первых, зачем вам DAO, когда есть ADO ???
Во-вторых, в ADO findfirst работает с клиентским курсором
Ну и вот что в DAO SDK написано про findfirst
MSDNIn an ODBCDirect workspace, the Find and Seek methods are not available on any type of Recordset object, because executing a Find or Seek through an ODBC connection is not very efficient over the network. Instead, you should design the query (that is, using the source argument to the OpenRecordset method) with an appropriate WHERE clause that restricts the returned records to only those that meet the criteria you would otherwise use in a Find or Seek method.
...
Рейтинг: 0 / 0
16.07.2007, 17:34
    #34662136
Non-Grata
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с FindFirst при доступе к Oracle 10g через DAO 3.6
Спасибо. RTFM, как говорится :-)
Просто как-то заметил, что при установке ссылки на объектную библиотеку в Excel VBA (на то же DAO, например) у некоторых пользователей, работающих затем с этим Excel-файлом, ссылка не появлялась и, соответственно, выдавалась ошибка типа "Object not found..." Помнится, пришлось побегать и "ручками" каждому отмечать "галочку". Времени разбираться, почему так, не было, а потом как-то и забыл. Теперь вот снова столкнулся, а бегать как-то лень, поэтому решил воспользоваться уже "устаканенным" DAO :-)
Ладно, воспользуемся ADO, побегаем.... :-)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с FindFirst при доступе к Oracle 10g через DAO 3.6 / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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