Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Atendendo ao pedido do nosso amigo thi.ASP estou postando esse código aqui. :D
Nesse código temos um exemplo de como se usar o BeginTrans e o CommitTrans ou o RollbackTrans do ASP. Dessa forma podemos desfazer uma operação no banco caso tenha ocorrido algum erro.
Bem, eu sempe uso esse Comandos pelo ASP ao utilizar SPs para Inserir no BD. Tenho vários exemplos, então resolvi comentar um código aqui para que consiga entender melhor:
'Conexãoset Conn = CreateObject("ADODB.Connection")Conn.ConnectionTimeout = 120Conn.CommandTimeout = 3000Conn.Open "Provider=sqloledb;user id=usuario;password=senha;Initial Catalog=semoerbr;data source=seudatasource"'Nesse Momento é efetuado o Begin Transaction, todas as operações feitas 'a partir deste ponto poderão ser desfeitas ou efetivadas utilizando ''rollback ou commit respectivamente.Conn.BeginTrans'Criação do ObjetoSet StoredProcedure = Server.CreateObject("ADODB.Command")With StoredProcedure'Definimos a Conexão que o Objeto irá utilizar .ActiveConnection = Conn'Neste Ponto estamos definindo o tipo de comando que iremos usar, 'no nosso caso estaremos utilizando Stored Procedures.CommandType = &H0004 'adCmdStoredProc'Definimos o nome da Procedure a ser utilizada.CommandText = "SPInserirUsuario"'Definimos os parametros.Parameters("@NOUsuario") = "Ricardo Cunha"'Neste Ponto temos um Parametro que será utilizando como Retorno'mas mesmo assim precisamos atribuir a ele um valor diferente de NULL.Parameters("@CDUsuario") = 0'Executamos a Procedure .ExecuteEnd With'Neste Ponto estou recebendo uma variável de Retorno, no meu caso 'CDUsuario é um campo de Auto Incremento por isso preciso receber 'esse Retorno, dessa forma não há a necessidade de fazer um ''Select Max(CDUsuario) só pra pegar o ultimo código inserido.CDUsuario = StoredProcedure.Parameters("@CDUsuario")'Neste ponto Estou executando uma segunda procedure, 'da mesma forma que a primeira With StoredProcedure.ActiveConnection = Conn.CommandType = &H0004 'adCmdStoredProc.CommandText = "SPInserirLogin".Parameters("@CDUsuario") = CDUsuario.Parameters("@DSSenha") = "senha".ExecuteEnd With'Verifico se ocorreu algum Erro, caso tenha ocorrido algum erro, 'eu desfaço as operaçõesIf Err <> 0 ThenConn.RollbackTransResponse.Write Err.DescriptionelseConn.CommitTransEnd IfUm exemplo Simples, nesse caso se não utilizassemos esse método correriamos o Risco de Inserir um Usuário no BD sem Inserir o mesmo na Tabela de Login.
Nota: Sempre que utilizar um BeginTransaction Nunca se esqueça de finalizar esse comando, pois se não o banco ficará com um Lock esperando um comando de encerramento.
Qualquer duvida, to por aqui
Estou preparando uns exemplo de ASP+XML+XSL, aguardem.
Carregando comentários...