Сторно

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сторно

Сообщение lord0n » 04.08.2005 (Чт) 10:59

Вот еще вопрос:
Как откатить транзакцию начаную db.BeginTrans, только через sql-запрос rollback?
При открытии транзакции её присваивается какой то номер?
Если да то как его узнать?

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 04.08.2005 (Чт) 11:34

И ещё :)
я открыл одну транзакцию, сделал изменения, закрыл
открыл вторую, сделал изменения, закрыл

можно ли откатить первую или только последнии изменения?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 04.08.2005 (Чт) 11:43

Если не изменяет память, то после закрытия транзакций откат не возможен...
А я все практикую лечение травами...

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 04.08.2005 (Чт) 11:50

Twister писал(а):Если не изменяет память, то после закрытия транзакций откат не возможен...


тогда интересно а на кой эта транзакция нужна?
по моему достаточно бесполезная вещь :)

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 04.08.2005 (Чт) 11:55

тогда интересно а на кой эта транзакция нужна?
по моему достаточно бесполезная вещь

А если изменения в базу вносятся не одним запросом, а кучей разных действий, при этом изменения глобальные? Транцакции обеспечивают сохранность целостности данных...
А я все практикую лечение травами...

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

Сообщение alibek » 04.08.2005 (Чт) 12:24

lord0n писал(а):тогда интересно а на кой эта транзакция нужна?
по моему достаточно бесполезная вещь :)

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

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 04.08.2005 (Чт) 13:39

lord0n писал(а):тогда интересно а на кой эта транзакция нужна?
по моему достаточно бесполезная вещь :)


Не делал ты софт для многопользовательского использования... Тогда бы знал ;) В общем транзакция в грубом приближении - это последовательность запросов к базе данных от одного пользователя. Внутри транзакции могут происходить изменения как данных, так и структуры БД. Если в момент выполнения какого-либо запроса возникает ошибка (например в следствии действий другого пользователя), то все изменения, который выполнял пользователь во время одной транзакции можно откатить с помощью rollback. Например, на Gupta SQL Server это вообще очень четко сделано: начало транзакции в момент выполнения команды Connect, завершение - в момент Commit и откат - RollBack. Также, при обрыве связи. Если бы не было транзакций, что по твоему было бы с твоей БД? Если обрывается связь во время выполнения последовательности глобальных запросов? А так связь оборвалась, сработал TimeOut и транзакция автоматом откатилась. Вот так вот. И вообще, всегда нужно помнить о том, что если что-то сделано, но сделано это не просто так "от балды", а действительно было нужно ;)
То, что для одних константа, для других только переменная...

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 04.08.2005 (Чт) 14:01

Не делал ты софт для многопользовательского использования... Тогда бы знал


Как думаешь складская система на 5000 паллетомест не многопользовательская система?

В системе которая используется щас "откат" это откат любого изменения сделанного в данный момент или 2 года назад.

Вот я и подумал что с помощью этой фишки мона сделать тоже самое

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 04.08.2005 (Чт) 14:07

транзакция на 2 года

гыгыгыгы
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 04.08.2005 (Чт) 14:08

В системе которая используется щас "откат" это откат любого изменения сделанного в данный момент или 2 года назад

Ты путаешь свой "откат" с реальным rollback-ом.
Твой откат скорее всего есть восстановление данных в базу из резерва...
А я все практикую лечение травами...

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 04.08.2005 (Чт) 14:14

нет
как я щас выяснил у этой системы есть база с записью изменений которые делал пользователь

просто когда делаещь проводку чего-либо система пишет "№ транзакции такой то"

посему я и подумал что откат транзакции это тоже самое

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 04.08.2005 (Чт) 14:17

кстати Odrick спасибо что обьяснил что таке транзакция и как её использовать
а то ещё долго бы думал что это сохранение всех изменений :lol:

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 04.08.2005 (Чт) 14:22

Ну вот и разобрались. Как всегда проблема в терминологи ;)
То, что для одних константа, для других только переменная...

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 04.08.2005 (Чт) 15:04

Да, и еще одно. Во время "жизни" транзакции все изменения, произведенные пользователем, физически в базу данных не попадают, а хранятся в каком-либо виде (log-файлах, таблицах и т.д. в зависимости от сервера) отдельно. А переносятся они как раз в момент завершения транзакции. А rollback по сути просто удаляет вот эти самые изменения. Ну это так, справка ;)
То, что для одних константа, для других только переменная...

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 04.08.2005 (Чт) 15:11

еще раз большое спасибо за информацию
а то я уже замучился искать по форуму и инету


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот и гости: 31

    TopList