WindevBrasil - Fórum Windev, Webdev e WindevMobile

Dúvidas e soluções => Windev, WebDev e WindevMobile => Tópico iniciado por: JacquesBica em Janeiro 12, 2012, 08:22:44 am

Título: Transações
Enviado por: JacquesBica em Janeiro 12, 2012, 08:22:44 am
Bom dia.
Não utilizo o banco HyperFile e sim acesso nativo ao MSSQL.
Não estou conseguindo dominar o tratamento das transações (Commit/Rollback).
Alguém, por favor, tem um pedaço de código com uma rotina que trate das transações? Por exemplo, algo assim:

1) Abre transação (como o comando Logout do Clarion).
2) Processa um loop de várias notas...
3) Realiza algumas operações, por exemplo, movimenta estoque, fiscal, financeiro, compras, etc.
4) Controla se ocorre algum erro e executa Rollback.
(...)
5) No final execute Commit.

Grato pela ajuda.
Título: Re:Transações
Enviado por: zerloti em Janeiro 12, 2012, 05:36:16 pm
Boa tarde Jacques, existe o HTransaction , que pode e usado com os comandos hadd, hmodify, so não sem se funciona com MSSQL, pois não trabalho com este banco as opções são ;
HTransactionStart()
HTransactionEnd()   -- commit
HTransactionCancel() -- rollback

eu ja usei com oracle o SQLTransaction usando o Sqlexec , manipulando comandos sql  DML.
exemplo;

SQLTransaction(sqlStart)
IF SQLExec("UPDATE TABELA SET CAMPO = "VALOR",NOME_QUERY) = TRUE THEN
     SQLTransaction(sqlCommit)
ELSE
     SQLInfo("NOME_QUERY")
Error("ERRO NA TRANSAÇÃO  " + SQL.MesError)
SQLTransaction(sqlRollBack)
END

espero ter ajudado
boa sorte
att luciano :)
Título: Re:Transações
Enviado por: JacquesBica em Janeiro 12, 2012, 06:55:19 pm
Estou testando várias opções. Segundo a documentação o acesso nativo MS SQL permite usar as mesmas funções "H" do HyperFile, porém não permite usar justamente o HTransaction. O caminho é usar o SQLTransaction.

http://doc.pcsoft.fr/en-US/?5515005&name=Native_SQL_Server_Access__limitations

Estou fazendo testes. Quando tiver um resultado positivo e confiável eu posto aqui no grupo.

Grato pelo retorno.
Título: Re:Transações
Enviado por: Davi em Janeiro 13, 2012, 09:54:19 am
Eu só consigo usar transações do mysql como no exemplo do Zerloti usando SQLTransaction



Título: Re:Transações
Enviado por: JacquesBica em Janeiro 13, 2012, 10:27:22 am
Bom dia.

No SQL Server, que é o meu caso, tenho obtido sucesso através do comando:

SQLTransaction(sqlStart,MyConnectionMSSQL)

Porém, a conexão "MyConnectionMSSQL" é aquela definida na Analysis. Não estou conseguindo usar a conexão definida ao executar o aplicativo.

Continuo estudando...