Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SQLTransaction Roolbak / 9 сообщений из 9, страница 1 из 1
29.07.2014, 09:02
    #38707771
tasha klemer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLTransaction Roolbak
Использую SQLTransaction для отката действий после закрытия формы и отказа от сохранения данных
обьявляю
Код: vbnet
1.
Dim TransctionTab12 As SqlTransaction



На кнопку сохранение

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
              TransctionTab11 = fLogin.connection.BeginTransaction("SampleTransaction")
                Command.Transaction = TransctionTab11
                If _dataCharBuildEditState = 0 Then 'обновление(старой)
                    adCharBuild.UpdateCommand = New SqlCommand("UPDATE [BuildInspector].[dbo].[TStructBild]" & _
            " SET [Storey] = @Storey " & _
              ",[Footer] = @Footer" & _
              ",[Garret]= @Garret" & _
             " ,[Area] = @Area" & _
              ",[AreaAp] = @AreaAp" & _
              ",[id_DWal] =@id_DWal" & _
             " ,[Other] = @Other " & _
            "WHERE [id_Obj]=@IdObj and [Id_StrBild]=@fIdCharBuild ", fLogin.connection)
                    
                    adCharBuild.UpdateCommand.Parameters.AddWithValue("fIdCharBuild", _fIdCharBuild)
                    adCharBuild.UpdateCommand.Parameters.AddWithValue("IdObj", fID)
                    adCharBuild.UpdateCommand.Parameters.AddWithValue("Storey", tbTabStroey.Text)
                    adCharBuild.UpdateCommand.Parameters.AddWithValue("Garret", tbTabGarret.Text)
                    adCharBuild.UpdateCommand.Parameters.AddWithValue("Footer", tbtabFooter.Text)
                    adCharBuild.UpdateCommand.Parameters.AddWithValue("Area", tbtabArea.Text)
                    adCharBuild.UpdateCommand.Parameters.AddWithValue("AreaAp", tbTabAreaApl.Text)
                    If cbTabWal.SelectedValue Is Nothing Then
                        adCharBuild.UpdateCommand.Parameters.AddWithValue("id_DWal", -1)
                    Else
                        adCharBuild.UpdateCommand.Parameters.AddWithValue("id_DWal", cbTabWal.SelectedValue)
                    End If
                    adCharBuild.UpdateCommand.Parameters.AddWithValue("Other", tbTabOtherBuild.Text)
                    adCharBuild.UpdateCommand.Transaction = TransctionTab11
                    adCharBuild.UpdateCommand.ExecuteNonQuery()

  TransctionTab11.Commit()



и в случае отказа от сохранения при закрытии
Код: vbnet
1.
TransctionTab11.Rollback()




Тестирую.... отката не вижу

делала на основании статьи http://msdn.microsoft.com/ru-ru/library/system.data.sqlclient.sqltransaction(v=vs.110).aspx
...
Рейтинг: 0 / 0
29.07.2014, 09:05
    #38707773
tasha klemer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLTransaction Roolbak
tasha klemerИспользую SQLTransaction для отката действий после закрытия формы и отказа от сохранения данных
обьявляю
Код: vbnet
1.
Dim TransctionTab12 As SqlTransaction





опечаталась...
Код: vbnet
1.
Dim TransctionTab11 As SqlTransaction

(испльзовать нужно несколько откатов)
...
Рейтинг: 0 / 0
29.07.2014, 11:16
    #38707908
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLTransaction Roolbak
tasha klemerТестирую.... отката не вижу
а какой откат ты хочешь увидеть в своём примере ?
как минимум нужно 2 команды, что бы увидеть что-то
...
Рейтинг: 0 / 0
29.07.2014, 11:22
    #38707915
Kolu4ka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLTransaction Roolbak
После
TransctionTab11.Commit()
никакие
TransctionTab11.Rollback()
не помогут, т.к. Commit зафиксировал изменения.
...
Рейтинг: 0 / 0
29.07.2014, 13:40
    #38708099
tasha klemer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLTransaction Roolbak
Скажите пожалуйста, каким образом мне тогда реализовать возможность в рамках работы сформой откатить изменения в БД после ее закрытия. Внутри формы все изменения фиксируются через update или insert.
В голову толькуо приходит на данный момент создаине лог таблиц по вставке изменению данных... но как правильно их тогда организовать.... возможно кто нибудь знает хорошие статьи , где можно набраться теории....
...
Рейтинг: 0 / 0
29.07.2014, 14:29
    #38708178
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLTransaction Roolbak
tasha klemer,

...пишите во временную таблицу, склонированную из основной при открытии формы, потом копируйте в основную или отказывайтесь ...
...
Рейтинг: 0 / 0
16.08.2014, 13:53
    #38721735
tasha klemer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLTransaction Roolbak
carrotik,

а в качестве источника данных для обьектов указывать временную таблицу???
...
Рейтинг: 0 / 0
18.08.2014, 16:51
    #38722702
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLTransaction Roolbak
tasha klemerСкажите пожалуйста, каким образом мне тогда реализовать возможность в рамках работы сформой откатить изменения в БД после ее закрытия. Внутри формы все изменения фиксируются через update или insert.
В голову толькуо приходит на данный момент создаине лог таблиц по вставке изменению данных... но как правильно их тогда организовать.... возможно кто нибудь знает хорошие статьи , где можно набраться теории....

-по кнопке окей делаешь изменения в базе (выполняешь команды адо.нет в транзакции), если произошла ошибка - откатываешь
-по кнопке кансел - ничего ни делаешь
...
Рейтинг: 0 / 0
05.09.2014, 09:34
    #38738181
tasha klemer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLTransaction Roolbak
Хотельось бы вернуться к вопросу по транзакция.... пытаюсь вновь осуществить откат внесенных данных в БД пользователем, при закрытие формы и отказе от сохранения данных.

на форме Login указываю строку подключения.
на основной строке использую типозированные dataset, в качестве строки подключения использую строку с формы Login
на открытие основной формы открываю транзакция
Код: vbnet
1.
TransctionTab11 = fLogin.connection.BeginTransaction("SampleTransaction")



на добавление, изменение записей в таблице №1 назначаю эту транзакцию данному датасет

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  If _dataCharBuildEditState = 0 Then 'обновление(старой)
                    adCharBuild.UpdateCommand = New SqlCommand("UPDATE [TStructBild]" & _
            " SET [Storey] = @Storey " & _
              ",[Footer] = @Footer" & _
              ",[Garret]= @Garret" & _
             " ,[Area] = @Area" & _
              ",[AreaAp] = @AreaAp" & _
              ",[id_DWal] =@id_DWal" & _
             " ,[Other] = @Other " & _
            "WHERE [id_Obj]=@IdObj and [Id_StrBild]=@fIdCharBuild ", fLogin.connection)

' назначение параметров
               
               adCharBuild.UpdateCommand.Transaction = TransctionTab11
               adCharBuild.UpdateCommand.ExecuteNonQuery()




КОгда делаю перезаливку данных в адаптер у меня подвисает все и в итоге не может сделать Fill и выдает пустой набор данных!
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SQLTransaction Roolbak / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]