Pessoal, fiquei sabendo da existencia dessas Transações folheado um livro sobre SQL hoje… e vi na net alguns artigos e achei SUPER INTERESSANTE, porem…
Nao ficou bem claro ainda pra mim o funcionamento…
As transacoes sao feitas onde? No banco? ou com a linguagem de programacao?
E como é feito utilizando a API? É possivel?
ACID são características do sistema gerenciador de banco de dados, não da linguagem de programação. Eu afirmo inclusive que para poder se dizer que é sistema gerenciador de banco de dados puro sangue tem que garantir essas quatro características completamente (além de outras coisas).
A API JDBC provê um meio de conectar-se ao banco para acessar e manipular os dados. Seria vamos dizer assim o que é o ODBC oferecido pela Microsoft, só que com o poder de rodar em qualquer plataforma. Nesse momento por exemplo estou trabalhando com metadados, que explora a estrutura do banco(nomes de tabelas, de campos, os tipos de dados)…
Sucesso nos estudos. Tem muita coisa interessante aí.
faeldix
E como eu posso fazer transacos com a API?
“start transaction”
“commit”
"roolback
ja vi que existe uma funcao especifica pra roolback e commit na documentacao mas nao tem o “start transaction”
rogelgarcia
Na API de JDBC, se você usar:
connection.setAutoCommit(false);
Todos os comandos SQL de insert, update ou delete já estarão dentro de uma transação, que só será finalizada ao se chamar o commit ou rollback
faeldix
rogelgarcia:
Na API de JDBC, se você usar:
connection.setAutoCommit(false);
Todos os comandos SQL de insert, update ou delete já estarão dentro de uma transação, que só será finalizada ao se chamar o commit ou rollback
entao so confirmando… quer dizer que quando eu uso um EXECUTE eu tbm estou fazendo um COMMIT “por debaixo do tapete”? rs :lol:
A
ADEMILTON
Em verdade o que o colega quis dizer foi que setanto o AutoCommit com false você assume a responsabilidade de dar o commit quando quiser. Nessas condições, se você só der um execute e fechar a conexão a transação é desfeita. Dos poucos bancos que usei jdbc, o AutoCommit vem definido como true por padrão, o que faz com que o commit aconteça como você disse “por baixo do tapete”