Различие между DBEngine. BeginTrans и DBEngine. Рабочие области (0).BeginTrans

Не то, чтобы это было много смысла суммировать по одному элементу, вот код, который выполняется без ошибок:

test = function(func,data="file3",column_name,x=1){
  func(get(data)[[column_name]][x])
}

file3 <- iris
test(func = sum, column_name = "Sepal.Length")
[1] 5.1
6
задан Shane Miskin 7 January 2009 в 21:52
поделиться

4 ответа

Мой собственный ответ:

Это появляется это DBEngine. BeginTrans и DBEngine. Рабочие области (0).BeginTrans делают то же самое, потому что этот код работает (см. ниже). "Рабочие области" являются членом по умолчанию DBEngine.

Dim db As Database
Set db = CurrentDb

DBEngine.BeginTrans
db.Execute "Update Table1 SET CITY='Newark'"
DBEngine.Workspaces(0).Rollback
2
ответ дан 10 December 2019 в 02:55
поделиться

Взгляните здесь: Рабочая область ДАО
И затем здесь: Рабочая область ДАО: Открытие Отдельного Пространства Транзакции

(Ссылки для MFC, но они применимы к тому, в чем Вы кодируете.)

DBEngine.Workspaces(0) рабочая область по умолчанию. Другие рабочие области могут быть созданы, которые позволяют Вам работать с отдельными сессиями; идея - это BeginTrans и EndTrans обратитесь к целой рабочей области, но если необходимо сделать материал вне той транзакции, можно создать другую рабочую область и использовать ее независимо от транзакций в первой рабочей области.

Лично, у меня никогда не было случая для использования больше чем одной рабочей области при выполнении ДАО в VBA. * пожмите плечами *

7
ответ дан 10 December 2019 в 02:55
поделиться

В интерфейсе приложения Access у Вас может только быть один контейнер базы данных, открытый за один раз. В коде VBA можно открыть несколько экземпляров базы данных в Рабочей области. См. документацию справочного файла для Рабочей области. Метод OpenDatabase (или http://msdn.microsoft.com/en-us/library/bb243164.aspx) для примера, где больше чем одна База данных открыта в одной Рабочей области.

Можно было бы вывести, что, когда транзакции поддерживаются всеми базовыми Базами данных, которые открыты в Рабочей области, метод BeginTrans Рабочей области применялся бы через все базы данных. Я подозреваю там быть драконами там, но я уверен, что это работало бы с двумя MDBs в одной Рабочей области. Когда существует только одна база данных, открытая в Рабочей области, Рабочей области. BeginTrans и База данных. BeginTrans являются действительно тем же.

0
ответ дан 10 December 2019 в 02:55
поделиться

Как однажды сказал Спок, разница, которая не имеет значения, не имеет значения ...

0
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

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