Erciley Junior Posted October 8, 2012 Report Share Posted October 8, 2012 Olá, boa tarde a todos. Estou tendo "problemas com a SQLLIB usando tabelas INNODB". Por algum motivo, a SQLLIB abre uma transação sem eu mandar fazer isso. O problema está que: Se eu não abri uma transação por vontade própria, não vou comitar nada, com isso, se uma outra aplicação inserir, excluir ou modificar um dado, minha aplicação corrente não verá e vice-versa. Minha variável autocommit está ativa, ou seja, autocommit=1. Algo que eu possa fazer para resolver, seria fazer um COMMIT antes de fazer algum select, mas isso é porquice e teria que modificar alguns milhares de locais. Alguém já passou por isso? Resolveu? Como? Alguma ideia? Algo a dizer? Obrigado. Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO Quote Link to comment Share on other sites More sharing options...
Erciley Junior Posted October 8, 2012 Author Report Share Posted October 8, 2012 Olá, boa tarde a todos. Estou tendo "problemas com a SQLLIB usando tabelas INNODB". Por algum motivo, a SQLLIB abre uma transação sem eu mandar fazer isso. O problema está que: Se eu não abri uma transação por vontade própria, não vou comitar nada, com isso, se uma outra aplicação inserir, excluir ou modificar um dado, minha aplicação corrente não verá e vice-versa. Minha variável autocommit está ativa, ou seja, autocommit=1. Algo que eu possa fazer para resolver, seria fazer um COMMIT antes de fazer algum select, mas isso é porquice e teria que modificar alguns milhares de locais. Alguém já passou por isso? Resolveu? Como? Alguma ideia? Algo a dizer? Obrigado. Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO Quote Link to comment Share on other sites More sharing options...
Geraldo (gbsilva) Posted October 8, 2012 Report Share Posted October 8, 2012 Erciley peguei esse texto no manual do mysql, mas é por ai a coisa. Por padrão, MySQL é executado em modo autocommit. Isto significa que assim que você executa uma instrução que atualiza (modifica) uma tabela, o MySQL armaena a atualização no disco. Se você estiver usando tabelas com segurança a transação (como InnoDB \ ou BDB), você pode colocar o MySQL em modo não autocommit com o seguinte comando: SET AUTOCOMMIT=0 Depois de disabilitar o modo autocommit configurando a variável AUTOCOMMIT com zero, você deve utilizar COMMIT para armazenar suas alterações em disco ou ROLLBACK se você deseja ignorar as alterações que você fez desde o inÃcio da sua transação. Se você quiser disabilitar o modo autocommit para uma única série de instruções, você pode utiliar a instrução START TRANSACTION: START TRANSACTION; SELECT @A:=SUM(salary) FROM table1 WHERE type=1; UPDATE table2 SET summmary=@A WHERE type=1; COMMIT; Sds, Geraldo B. Silva Fwh1202 Fev/2012, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib, Tdolphin e MySql. lucgera@terra.com.br São Paulo - SP Quote Link to comment Share on other sites More sharing options...
Luisão Posted October 8, 2012 Report Share Posted October 8, 2012 Volta pro MyISAM. -- Luis Fernando Jr. FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY Quote Link to comment Share on other sites More sharing options...
Erciley Junior Posted October 9, 2012 Author Report Share Posted October 9, 2012 Olá GBSilva, então, já havia lido isso no manual e já trabalho abrindo transações quando necessito, conheço a variável citada e tudo mais, mas mesmo estando isso no manual, ele não segue muito. Mas obrigado pela ajuda. ^^ Luisão, perfeito, mudando o ENGINE funciona, que milagre. ^^ Igual minha moto, tava vazando óleo, um jeito excelente de resolver foi comprando uma moto nova, huahuahuahua. Bom, vou dar uma olhada nos prs que a lib traz, pra ver se há algo misterioso que é feito para acontecer isso. ^^ Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO Quote Link to comment Share on other sites More sharing options...
Erciley Junior Posted October 10, 2012 Author Report Share Posted October 10, 2012 Vailton será que anda por aqui? Teria algo a dizer/sugerir/sei lá? Alguém poderia me dizer qual a última versão da sqllib? Vlw. Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO Quote Link to comment Share on other sites More sharing options...
vailtom Posted October 16, 2012 Report Share Posted October 16, 2012 Olá Erciley! Sua observação está correta. Mas a SQL LIB faz isto para manter a compatibilidade com o DBF e permite ao programador optar por desabilitar o autocommit ou até enviar isto usando a funcao/comando ele achar mais apropriado. Att, Vailton Renato "No dia mais claro, na noite mais escura... o bug sucumbirá ante a minha presença" E-mail/MSN: contato@vailton.com.br Skype: vailtom Quote Link to comment Share on other sites More sharing options...
Erciley Junior Posted October 17, 2012 Author Report Share Posted October 17, 2012 Bom dia Vailton. A minha dificuldade, é o oposto de desabilitar o auto_commit, eu estou querendo, é fazer com que ele realmente funcione, ou seja, desabilitar esse "start transaction" que a LIB faz internamente. Lembrando que a variável autocommit já está ativa, e mesmo assim não consigo este efeito. É possÃvel fazer isso, desabilitar a funcionalidade da LIB em criar uma transação automaticamente? Como? Obrigado. Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.