|
View Full Version : Transação no ASP
Fabionas 09-15-2006, 03:12 PM Oi pessoal, estou com um problema com transação no asp. Eu estou usando a
trecho de código abaixo, porém por exemplo se der um erro na instrução
update, o "if err.number <> 0 then" não está capturando erro, com isso está
dando commit. Alguém sabe como faço para resolver esse problema ?
Obrigado pela atenção.
conexaoTransacao.BeginTrans
sql = sql & " insert ...."
sql = sql & " update .... "
sql = sql & " insert ...."
on error resume next
conexaoTransacao.Execute(SQL)
if err.number <> 0 then
conexaoTransacao.RollbackTrans
msg = "Erro na atualização do cadastro. Tente novamente mais tarde."
erro = True
else
conexaoTransacao.CommitTrans
msg = "Credenciamento atualizado com sucesso." erro = false
end if
Bruno Velaz 09-15-2006, 07:16 PM Cara tem como vc colocar todo o codigo aqui para podermos te ajudar..
Bruno Velaz
www.i-devnet.com
http://spaces.msn.com/brunovelaz/
PS: FOI ÚTIL PRA VOCÊ? Então ajude outras pessoas, marque-a como útil.
"Fabionas" escreveu:
> Oi pessoal, estou com um problema com transação no asp. Eu estou usando a
> trecho de código abaixo, porém por exemplo se der um erro na instrução
> update, o "if err.number <> 0 then" não está capturando erro, com isso está
> dando commit. Alguém sabe como faço para resolver esse problema ?
> Obrigado pela atenção.
>
>
> conexaoTransacao.BeginTrans
>
> sql = sql & " insert ...."
> sql = sql & " update .... "
> sql = sql & " insert ...."
>
> on error resume next
>
> conexaoTransacao.Execute(SQL)
>
> if err.number <> 0 then
> conexaoTransacao.RollbackTrans
> msg = "Erro na atualização do cadastro. Tente novamente mais tarde."
> erro = True
> else
> conexaoTransacao.CommitTrans
> msg = "Credenciamento atualizado com sucesso." erro = false
> end if
>
>
Fabionas 09-18-2006, 06:17 PM Oi Bruno, estou colocando o trecho de código abaixo:
O problema que eu encontrei, é quando por exemplo se acontecer um erro no
update(ex: data inválida), as outras instruções são executadas sem problemas,
não entrando no "if err.number <> 0 then".
set conexaoTransacao = SERVER.CREATEOBJECT("ADODB.Connection")
conexaoTransacao.OPEN Application("CNet_Escrita")
conexaoTransacao.BeginTrans
' Atualiza Dados Empresa
SQL = "UPDATE tb_empresa SET Endereco = '" & endereco & "', "
SQL = SQL & "Bairro = '" & bairro & "', "
SQL = SQL & "Cidade = '" & cidade & "', "
SQL = SQL & "UF = '" & uf & "', "
SQL = SQL & "Telefone = '" & telefone & "', "
SQL = SQL & "habilitada = '"& habilitada &"' "
SQL = SQL & "WHERE Cod_Empresa = " & cod_Empresa
' Atualiza dados Usuario
SQL = SQL & " UPDATE tb_usuario SET Nome = '" & nome & "', "
SQL = SQL & "DataNasc = CONVERT(smalldatetime,'" & dt_nasc & "',103), "
SQL = SQL & "email = '" & email & "', "
SQL = SQL & "DataAtualizacao = getDate(), "
SQL = SQL & "RGUsuario = '" & rg & "' , OrgaoExpedidorRG = '" &
emissor_uf & "', "
SQL = SQL & "DataEmissaoRG = CONVERT(smalldatetime,'" & dt_emissao &
"',103), "
SQL = SQL & "CodigoAcesso = '" & cpf_usu & "', "
SQL = SQL & "CPFUsuarioUasg = '"& strCpfUsuarioUasg &"' "
SQL = SQL & "WHERE Cod_Usuario = '" & codUsuario & "'"
' Atualiza os serviços que não necessitam de validação.
SQL = SQL & " DELETE FROM tb_Utiliza WHERE cod_usuario in ( "
SQL = SQL & " SELECT cod_usuario FROM tb_usuario WHERE cod_empresa =
" & CodEmpresa & " )"
SQL = SQL & " INSERT INTO tb_Utiliza "
SQL = SQL & " SELECT USU.cod_usuario, SER.IdItem "
SQL = SQL & " FROM tb_Menu_Servicos SER, "
SQL = SQL & " (SELECT cod_usuario FROM tb_usuario WHERE cod_empresa = "
& CodEmpresa & " ) USU "
SQL = SQL & " WHERE IndMostrarItem = 1 and Validar = 0 and Descricao is
not null and exclusivo = 0"
end if
on error resume next
conexaoTransacao.Execute(SQL)
if err.number <> 0 then
conexaoTransacao.RollbackTrans
msg = "Erro na atualização do cadastro. Tente novamente mais tarde."
erro = True
else
conexaoTransacao.CommitTrans
msg = "Credenciamento atualizado com sucesso."
erro = False
end if
"Bruno Velaz" escreveu:
> Cara tem como vc colocar todo o codigo aqui para podermos te ajudar..
>
> Bruno Velaz
> www.i-devnet.com
> http://spaces.msn.com/brunovelaz/
>
> PS: FOI ÚTIL PRA VOCÊ? Então ajude outras pessoas, marque-a como útil.
>
>
>
>
>
> "Fabionas" escreveu:
>
> > Oi pessoal, estou com um problema com transação no asp. Eu estou usando a
> > trecho de código abaixo, porém por exemplo se der um erro na instrução
> > update, o "if err.number <> 0 then" não está capturando erro, com isso está
> > dando commit. Alguém sabe como faço para resolver esse problema ?
> > Obrigado pela atenção.
> >
> >
> > conexaoTransacao.BeginTrans
> >
> > sql = sql & " insert ...."
> > sql = sql & " update .... "
> > sql = sql & " insert ...."
> >
> > on error resume next
> >
> > conexaoTransacao.Execute(SQL)
> >
> > if err.number <> 0 then
> > conexaoTransacao.RollbackTrans
> > msg = "Erro na atualização do cadastro. Tente novamente mais tarde."
> > erro = True
> > else
> > conexaoTransacao.CommitTrans
> > msg = "Credenciamento atualizado com sucesso." erro = false
> > end if
> >
> >
Fabionas 09-21-2006, 01:33 PM Alguém sabe como resolver esse problema ?
"Fabionas" escreveu:
> Oi Bruno, estou colocando o trecho de código abaixo:
> O problema que eu encontrei, é quando por exemplo se acontecer um erro no
> update(ex: data inválida), as outras instruções são executadas sem problemas,
> não entrando no "if err.number <> 0 then".
>
> set conexaoTransacao = SERVER.CREATEOBJECT("ADODB.Connection")
> conexaoTransacao.OPEN Application("CNet_Escrita")
>
> conexaoTransacao.BeginTrans
>
> ' Atualiza Dados Empresa
> SQL = "UPDATE tb_empresa SET Endereco = '" & endereco & "', "
> SQL = SQL & "Bairro = '" & bairro & "', "
> SQL = SQL & "Cidade = '" & cidade & "', "
> SQL = SQL & "UF = '" & uf & "', "
> SQL = SQL & "Telefone = '" & telefone & "', "
> SQL = SQL & "habilitada = '"& habilitada &"' "
> SQL = SQL & "WHERE Cod_Empresa = " & cod_Empresa
>
>
> ' Atualiza dados Usuario
> SQL = SQL & " UPDATE tb_usuario SET Nome = '" & nome & "', "
> SQL = SQL & "DataNasc = CONVERT(smalldatetime,'" & dt_nasc & "',103), "
> SQL = SQL & "email = '" & email & "', "
> SQL = SQL & "DataAtualizacao = getDate(), "
> SQL = SQL & "RGUsuario = '" & rg & "' , OrgaoExpedidorRG = '" &
> emissor_uf & "', "
> SQL = SQL & "DataEmissaoRG = CONVERT(smalldatetime,'" & dt_emissao &
> "',103), "
> SQL = SQL & "CodigoAcesso = '" & cpf_usu & "', "
> SQL = SQL & "CPFUsuarioUasg = '"& strCpfUsuarioUasg &"' "
> SQL = SQL & "WHERE Cod_Usuario = '" & codUsuario & "'"
>
>
> ' Atualiza os serviços que não necessitam de validação.
> SQL = SQL & " DELETE FROM tb_Utiliza WHERE cod_usuario in ( "
> SQL = SQL & " SELECT cod_usuario FROM tb_usuario WHERE cod_empresa =
> " & CodEmpresa & " )"
>
> SQL = SQL & " INSERT INTO tb_Utiliza "
> SQL = SQL & " SELECT USU.cod_usuario, SER.IdItem "
> SQL = SQL & " FROM tb_Menu_Servicos SER, "
> SQL = SQL & " (SELECT cod_usuario FROM tb_usuario WHERE cod_empresa = "
> & CodEmpresa & " ) USU "
> SQL = SQL & " WHERE IndMostrarItem = 1 and Validar = 0 and Descricao is
> not null and exclusivo = 0"
> end if
>
> on error resume next
>
> conexaoTransacao.Execute(SQL)
>
> if err.number <> 0 then
> conexaoTransacao.RollbackTrans
> msg = "Erro na atualização do cadastro. Tente novamente mais tarde."
> erro = True
> else
> conexaoTransacao.CommitTrans
> msg = "Credenciamento atualizado com sucesso."
> erro = False
> end if
>
>
> "Bruno Velaz" escreveu:
>
> > Cara tem como vc colocar todo o codigo aqui para podermos te ajudar..
> >
> > Bruno Velaz
> > www.i-devnet.com
> > http://spaces.msn.com/brunovelaz/
> >
> > PS: FOI ÚTIL PRA VOCÊ? Então ajude outras pessoas, marque-a como útil.
> >
> >
> >
> >
> >
> > "Fabionas" escreveu:
> >
> > > Oi pessoal, estou com um problema com transação no asp. Eu estou usando a
> > > trecho de código abaixo, porém por exemplo se der um erro na instrução
> > > update, o "if err.number <> 0 then" não está capturando erro, com isso está
> > > dando commit. Alguém sabe como faço para resolver esse problema ?
> > > Obrigado pela atenção.
> > >
> > >
> > > conexaoTransacao.BeginTrans
> > >
> > > sql = sql & " insert ...."
> > > sql = sql & " update .... "
> > > sql = sql & " insert ...."
> > >
> > > on error resume next
> > >
> > > conexaoTransacao.Execute(SQL)
> > >
> > > if err.number <> 0 then
> > > conexaoTransacao.RollbackTrans
> > > msg = "Erro na atualização do cadastro. Tente novamente mais tarde."
> > > erro = True
> > > else
> > > conexaoTransacao.CommitTrans
> > > msg = "Credenciamento atualizado com sucesso." erro = false
> > > end if
> > >
> > >
Então..
Talvez se vc tentasse tirar o "<" dê certo.. não tem como ser "maior, menor
que zero" a não ser q vc coloque uma função para isso..ja tentou?
"Fabionas" escreveu:
> Oi Bruno, estou colocando o trecho de código abaixo:
> O problema que eu encontrei, é quando por exemplo se acontecer um erro no
> update(ex: data inválida), as outras instruções são executadas sem problemas,
> não entrando no "if err.number <> 0 then".
>
> set conexaoTransacao = SERVER.CREATEOBJECT("ADODB.Connection")
> conexaoTransacao.OPEN Application("CNet_Escrita")
>
> conexaoTransacao.BeginTrans
>
> ' Atualiza Dados Empresa
> SQL = "UPDATE tb_empresa SET Endereco = '" & endereco & "', "
> SQL = SQL & "Bairro = '" & bairro & "', "
> SQL = SQL & "Cidade = '" & cidade & "', "
> SQL = SQL & "UF = '" & uf & "', "
> SQL = SQL & "Telefone = '" & telefone & "', "
> SQL = SQL & "habilitada = '"& habilitada &"' "
> SQL = SQL & "WHERE Cod_Empresa = " & cod_Empresa
>
>
> ' Atualiza dados Usuario
> SQL = SQL & " UPDATE tb_usuario SET Nome = '" & nome & "', "
> SQL = SQL & "DataNasc = CONVERT(smalldatetime,'" & dt_nasc & "',103), "
> SQL = SQL & "email = '" & email & "', "
> SQL = SQL & "DataAtualizacao = getDate(), "
> SQL = SQL & "RGUsuario = '" & rg & "' , OrgaoExpedidorRG = '" &
> emissor_uf & "', "
> SQL = SQL & "DataEmissaoRG = CONVERT(smalldatetime,'" & dt_emissao &
> "',103), "
> SQL = SQL & "CodigoAcesso = '" & cpf_usu & "', "
> SQL = SQL & "CPFUsuarioUasg = '"& strCpfUsuarioUasg &"' "
> SQL = SQL & "WHERE Cod_Usuario = '" & codUsuario & "'"
>
>
> ' Atualiza os serviços que não necessitam de validação.
> SQL = SQL & " DELETE FROM tb_Utiliza WHERE cod_usuario in ( "
> SQL = SQL & " SELECT cod_usuario FROM tb_usuario WHERE cod_empresa =
> " & CodEmpresa & " )"
>
> SQL = SQL & " INSERT INTO tb_Utiliza "
> SQL = SQL & " SELECT USU.cod_usuario, SER.IdItem "
> SQL = SQL & " FROM tb_Menu_Servicos SER, "
> SQL = SQL & " (SELECT cod_usuario FROM tb_usuario WHERE cod_empresa = "
> & CodEmpresa & " ) USU "
> SQL = SQL & " WHERE IndMostrarItem = 1 and Validar = 0 and Descricao is
> not null and exclusivo = 0"
> end if
>
> on error resume next
>
> conexaoTransacao.Execute(SQL)
>
> if err.number <> 0 then
> conexaoTransacao.RollbackTrans
> msg = "Erro na atualização do cadastro. Tente novamente mais tarde."
> erro = True
> else
> conexaoTransacao.CommitTrans
> msg = "Credenciamento atualizado com sucesso."
> erro = False
> end if
>
>
> "Bruno Velaz" escreveu:
>
> > Cara tem como vc colocar todo o codigo aqui para podermos te ajudar..
> >
> > Bruno Velaz
> > www.i-devnet.com
> > http://spaces.msn.com/brunovelaz/
> >
> > PS: FOI ÚTIL PRA VOCÊ? Então ajude outras pessoas, marque-a como útil.
> >
> >
> >
> >
> >
> > "Fabionas" escreveu:
> >
> > > Oi pessoal, estou com um problema com transação no asp. Eu estou usando a
> > > trecho de código abaixo, porém por exemplo se der um erro na instrução
> > > update, o "if err.number <> 0 then" não está capturando erro, com isso está
> > > dando commit. Alguém sabe como faço para resolver esse problema ?
> > > Obrigado pela atenção.
> > >
> > >
> > > conexaoTransacao.BeginTrans
> > >
> > > sql = sql & " insert ...."
> > > sql = sql & " update .... "
> > > sql = sql & " insert ...."
> > >
> > > on error resume next
> > >
> > > conexaoTransacao.Execute(SQL)
> > >
> > > if err.number <> 0 then
> > > conexaoTransacao.RollbackTrans
> > > msg = "Erro na atualização do cadastro. Tente novamente mais tarde."
> > > erro = True
> > > else
> > > conexaoTransacao.CommitTrans
> > > msg = "Credenciamento atualizado com sucesso." erro = false
> > > end if
> > >
> > >
|
|
|