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
-
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.
-
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 :)
-
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.
-
Eu só consigo usar transações do mysql como no exemplo do Zerloti usando SQLTransaction
-
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...