Bom dia.
Estou com o seguinte problema.
Quando faço um insert em uma tabela do banco de dados, utilizo o set nocount para buscar o valor do campo chave que foi inserido:
Sql = "SET NOCOUNT ON INSERT INTO TBL_TEMP_COMMIT(TEXTO) VALUES('TESTE1234')SELECT @@IDENTITY AS CODIGO SET NOCOUNT OFF"
O problema é que quando utilizo essa linha dentro de uma transação, quando vou fazer o commit, recebo um erro de que nenhuma transação está ativa. Segue o código detalhado:
MsgBox "INICIANDO GRAVAÇÃO DB_SISFILIAL"
Sql = "SET NOCOUNT ON INSERT INTO TBL_TEMP_COMMIT(TEXTO) VALUES('TESTE1234')SELECT @@IDENTITY AS CODIGO SET NOCOUNT OFF"
MsgBox "INICIANDO TRANSAÇÃO"
conexao.BeginTrans
TBL.Open Sql, conexao, adOpenForwardOnly
COD = TBL("CODIGO")
conexao.CommitTrans
MsgBox "COMMIT - " & COD
TBL.Close
Realizei um teste retirando o SET NOCOUNT, e o sistema consegue fazer o commit da transação.
Mas o que ta me encucando mesmo, é que quando rodo o sistema pelo código fonte, funciona perfeitamente o nocount com o commit. Quando compilo e rodo o exe na mesma máquina, ele da o erro de nenhuma transação ativa, sendo que até segunda feira agora estava tudo ok.
Desde já, agradeço a atenção.
******EDIT*****************
Fiz mais alguns teste e descobri que se tirar o SELECT @@IDENTITY AS CODIGO o projeto compilado funciona, e consigo fazer o commit, porem não tenho o retorno do campo chave.