Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: открыл для себя OO4O
 
 автор: Силblч   (15.10.2011 в 15:24)   личное сообщение
 
 

http://download.oracle.com/docs/cd/B28359_01/win.111/b28378/basfeat.htm

Option Explicit

Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim OraDynaset As OraDynaset
Dim OraFields As OraFields

Sub test0040()
    ' Create the OraSession Object. The argument to CreateObject is the
    ' name by which the OraSession object is known to the OLE system.
    Set OraSession = CreateObject("OracleInProcServer.XOraSession")
    
    ' Create the OraDatabase Object by opening a connection to Oracle.
    Set OraDatabase = OraSession.OpenDatabase("вашабаза", логин/пароль", 0&)
    '--запускпроцедуры
    OraDatabase.ExecuteSQL ("begin " + usr + cnn7(77) + ";end;")
    ' Create the OraDynaset Object.
    Set OraDynaset = OraDatabase.CreateDynaset(cnn7(78), 0&)
    
    ' You can now display or manipulate the data in the dynaset. For example:
    Set OraFields = OraDynaset.fields
    OraDynaset.MoveFirst
    Do While Not OraDynaset.EOF
        Debug.Print OraFields("role").value
        OraDynaset.MoveNext
    Loop
    OraDatabase.Close
End Sub

Sub cancelling()
Dim OraDatabase As OraDatabase
Dim OraStmt As OraSqlStmt
Dim stat As Long
Dim OraSess As OraSession
Set OraSess = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSess.OpenDatabase("вашабаза", логин/пароль", 0)
 
'execute the select statement with NONBLOCKING mode on
Set OraStmt = OraDatabase.CreateSql("select count(*) from схема.большаятаблица", ORASQL_NONBLK)
 
'Check if the call has completed
stat = OraStmt.NonBlockingState
If stat = ORASQL_STILL_EXECUTING Then
    MsgBox "Cancelling the asynchronous operation that is underway"
    OraStmt.Cancel
End If
End Sub



пока что доволен
пойду разрабатывать
з.ы. OLEDB пока в стойло

  Ответить  
 
 автор: osmor   (17.10.2011 в 10:29)   личное сообщение
 
 

а "вашабаза" подразумевает и адрес сервера тоже?

  Ответить  
 
 автор: Силblч   (17.10.2011 в 16:01)   личное сообщение
 
 

tns name

слухай, а я вот недопонял чето, типа класс написал почти, который, в зависимости от параметра,
работает или через ADO или через OO4O.... запускаю тестовую процедуринку,
все запускается как надо, но во время выполнения грузится процессор на клиенте
поправь меня если я не прав - я в цикле while wend, это он грузит так?
ведь обычный вариант, который работал у меня до этого, работает через форму , которая по таймеру считывает состояние запроса, не грузит проц!

стало быть есть вероятность того, что когда я допишу класс до формы и таймера, то не будет грузить? или достаточно в цикле слип на секунду сделать(пока тестирую :))?

  Ответить  
 
 автор: osmor   (17.10.2011 в 16:38)   личное сообщение
 
 

а может стоит с WithEvents создавать экземпляр коннекшена? и рекордсета?
во всяком случае для ado
тогда можно будет использовать
_ConnectComplete
и
_FetchComplete
для контроля

  Ответить  
 
 автор: Силblч   (17.10.2011 в 17:19)   личное сообщение
 
 

помогло APIшное
Sleep 1

  Ответить  
 
 автор: Силblч   (17.10.2011 в 17:20)   личное сообщение
 
 

он и создан для адо :)

  Ответить  
 
 автор: Силblч   (17.10.2011 в 20:46)   личное сообщение
 
 

открыл и закрыл... ну не <цензоред>?

в асинхронном режиме ведь только нон-sql и pl/sql
остальное через динасет ейвойный, но отнюдь не асинхронно и без возможности прервать...

вижу пока что три способа(?):
1. написать процедуру, которая бы по sql запросу возвращала бы результат (ref cursor)
но чо-то я тихо подозреваю, что надо будет прописывать типы полей и все такое :/

2. использовать этот нонблокед асинхронный оо4о, предварительно насоздавав параметров, которые бы он мне потом в конструкции into возвернул... но что-то мне кажется это совсем не метод :) ыыыы

3. таки использовать ADODB и в отдельном потоке, но тут встает вопрос о передаче данных между потоками

короче все дерьмо :)

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList