мультипоток в Доступе MS, асинхронная обработка [дубликат]

5
задан Icode4food 24 May 2010 в 17:35
поделиться

3 ответа

Я бы поработал над сутью проблемы - настройте запросы на обновление данных, чтобы они выполнялись быстрее.

При этом MS Access не поддерживает многопоточность.

Итак, когда вы выполняете блокирующий вызов процедуры, MS Access замораживает экран до тех пор, пока вызов не вернется.

править

DAO на самом деле не ваш лучший друг, если вы обновляете большую таблицу через медленное сетевое соединение. Возможно, вы захотите рассмотреть возможность перехода на использование соединения ODBC и выполнения оптимизированного оператора обновления .

edit 2

когда вы используете ODBC, вы должны написать код стиля ADO, чтобы это работало. Обратите внимание, что в этом примере это код OTTOMH.

dim myConn as ADODB.Connection
dim myCmd as ADODB.Command

set myConn = new ADODB.Connection
myConn.ConnectionString = "Provider=SQLOLEDB;Server=MyServerName;Initial Catalog=MyCatalogName;UID='XXX';PWD='YYY'"
myConn.Open

set myCmd =  new ADODB.Command (myConn)
myCmd.SQL = "Update MyTable Set MyColumn = '" & MyDataVariable & "' Where MyPK = '" & MyPKVariable & "'"
myCmd.Execute

myCmd.close
myConn.close
3
ответ дан 15 December 2019 в 00:52
поделиться

Использование docmd.hourglass true перед оператором обновления и docmd.hourglass false после, чтобы вернуть куратора. Также не забудьте указать docmd.hourglass false в своей программе обработки ошибок.

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

-1
ответ дан 15 December 2019 в 00:52
поделиться

Требуется ли клиенту подтверждение обновления информации? В противном случае вы можете открыть процедуру оболочки, которая обрабатывает обновление за вас. т.е.

Shell ("'C: \ Reports \ SomeOtherAccessDB.MDB' / x 'SomeMacro'", 1)

По умолчанию это асинхронно, поэтому пользователь увидит только второй .mdb на панели задач. в течение нескольких секунд, необходимых для запуска.

РЕДАКТИРОВАТЬ

О, и Престижность за то, что вы действительно заботитесь о времени вашего пользователя!

2
ответ дан 15 December 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: