Autor Tópico: Transações  (Lida 1466 vezes)

JacquesBica

  • Full Member
  • ***
  • Mensagens: 194
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Transações
« Online: 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.
Jacques Bica
www.jbsistemas.com.br
São Sebastião do Caí/RS

Skype Jacques Leonel Bica
jacquesbica@gmail.com
http://br.linkedin.com/in/jacquesbica/
https://plus.google.com/+JacquesBica

Com Windev devo pensar simples, se estiver complicado é porque estou no caminho errado.

zerloti

  • Jr. Member
  • **
  • Mensagens: 78
  • Karma: +0/-0
Re:Transações
« Responder #1 Online: 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 :)

JacquesBica

  • Full Member
  • ***
  • Mensagens: 194
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Transações
« Responder #2 Online: 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.
Jacques Bica
www.jbsistemas.com.br
São Sebastião do Caí/RS

Skype Jacques Leonel Bica
jacquesbica@gmail.com
http://br.linkedin.com/in/jacquesbica/
https://plus.google.com/+JacquesBica

Com Windev devo pensar simples, se estiver complicado é porque estou no caminho errado.

Davi

  • Global Moderator
  • *****
  • Mensagens: 425
  • Karma: +0/-0
Re:Transações
« Responder #3 Online: Janeiro 13, 2012, 09:54:19 am »
Eu só consigo usar transações do mysql como no exemplo do Zerloti usando SQLTransaction



Davi Corrêa
Fullpack Software
davi@fullpack.com.br

JacquesBica

  • Full Member
  • ***
  • Mensagens: 194
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Transações
« Responder #4 Online: 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...
Jacques Bica
www.jbsistemas.com.br
São Sebastião do Caí/RS

Skype Jacques Leonel Bica
jacquesbica@gmail.com
http://br.linkedin.com/in/jacquesbica/
https://plus.google.com/+JacquesBica

Com Windev devo pensar simples, se estiver complicado é porque estou no caminho errado.