powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с FindFirst при доступе к Oracle 10g через DAO 3.6
3 сообщений из 3, страница 1 из 1
Проблема с FindFirst при доступе к Oracle 10g через DAO 3.6
    #34661935
Non-Grata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток.
Подключаюсь из 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
Проблема с FindFirst при доступе к Oracle 10g через DAO 3.6
    #34662057
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, зачем вам 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
Проблема с FindFirst при доступе к Oracle 10g через DAO 3.6
    #34662136
Non-Grata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. RTFM, как говорится :-)
Просто как-то заметил, что при установке ссылки на объектную библиотеку в Excel VBA (на то же DAO, например) у некоторых пользователей, работающих затем с этим Excel-файлом, ссылка не появлялась и, соответственно, выдавалась ошибка типа "Object not found..." Помнится, пришлось побегать и "ручками" каждому отмечать "галочку". Времени разбираться, почему так, не было, а потом как-то и забыл. Теперь вот снова столкнулся, а бегать как-то лень, поэтому решил воспользоваться уже "устаканенным" DAO :-)
Ладно, воспользуемся ADO, побегаем.... :-)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с FindFirst при доступе к Oracle 10g через DAO 3.6
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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