Откат транзакции

Программирование на Visual Basic for Applications
veroman
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 26.06.2004 (Сб) 10:57

Откат транзакции

Сообщение veroman » 24.08.2004 (Вт) 6:51

Как организовать откат транзакции?(добавление данных в таблицу)
Вроде ве делаю по справке, а транзакции не хотят окатываться.[/code]

Leon_
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 333
Зарегистрирован: 19.05.2004 (Ср) 16:31
Откуда: Moscow

Сообщение Leon_ » 24.08.2004 (Вт) 7:50

Что за таблицы? Надеюсь, это таблицы БД? Тогда тебе с этим вопросом сюда http://bbs.vbstreets.ru/viewforum.php?f=5.
И побольше информации -- код, среда разработки, ... :?:

veroman
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 26.06.2004 (Сб) 10:57

Сообщение veroman » 24.08.2004 (Вт) 8:28

На Акцессе пишу. Таблица соотвественно акцесовская.
Делаю DoCmd.RunSql Querry, где Querry запрос на пополнение данными таблицы. Так вот надо до запроса начать тарнзакцию, а после запроса спросить у пользователя подтверждения, и в зависимости от ответа откатить или применить транзакцию. Теоретически знаю как, а реализовать не могу.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.09.2004 (Ср) 10:27

Ну если используется DAO, то транзакции определяются в DBEngine (DBEngine.BeginTrans - начать, DBEngine.CommitTrans - принять, DBEngine.Rollback - отменить). В ADO транзакции применяются для коннекций (методы называются также). Т.е. перед запросом делаешь .BeginTrans, после запроса делаешь .ComminTrans или .Rollback.

Только это в случае простого запроса. При сложных запросах (когда транзакции получаются вложенными) надо правильно задавать запросы и уровни изоляции, чтобы получить ожидаемый результат.
Lasciate ogni speranza, voi ch'entrate.

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 24.12.2007 (Пн) 17:36

Доброго времени суток!
Пишу на vb+dbo+access
Столкнулся с такой проблемой: пытаюсь сделать транзакцию в которойвыполняются различные команды: delete, insert, select.
и как раз таки селект не работает начала транзакции.
Например:

Код: Выделить всё
DBEngine.BeginTrans
db.Execute "delete * from tracks where track_id= " & track_id
Set rs = db.OpenRecordset("Select routes.dist, route_id from routes where routes.name = '" & txtname & "'" )
route_id = rs.Fields(1)


и при попытке прочитать rs.fields(1) выоезает ошибка, что элемент не обнаружен в данном семействе. Фактически селект не отработал.
Как быть?
Спасибо!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 113

    TopList