erro quot;Too many open Tablesquot;
erro ´Too many open Tables´
o que é isso?
estou com o mesmo problema.... :(
[quote:f9a3724a95=´Moderação´]Texto editado por Massuda[/quote:f9a3724a95]
o que é isso?
estou com o mesmo problema.... :(
[quote:f9a3724a95=´Moderação´]Texto editado por Massuda[/quote:f9a3724a95]
Garciabhale
Curtidas 0
Respostas
Techsoft
31/03/2006
Tive um problema muito parecido, o que aconteceu no meu caso foi que neste form q deu problema eu não havia tirado da memória qdo fechava ele... então chegava um momento que ele me acusava este erro.
coloquei então no onClose do form:
Como faço em todos os forms... com isso resolvi o problema, vejam se não é o mesmo que acontece com vcs.
[]´s
coloquei então no onClose do form:
Action := caFree; nome_form := nil
Como faço em todos os forms... com isso resolvi o problema, vejam se não é o mesmo que acontece com vcs.
[]´s
GOSTEI 0
Garciabhale
31/03/2006
Obrigado, Fernando!
tentei aqui:
mas ele dá o too many tables do mesmo jeito no Open ali em baixo, após ter aberto umas 50 vezes a tabela
Alguem tem outra ideia??? Please!!!
tentei aqui:
mas ele dá o too many tables do mesmo jeito no Open ali em baixo, após ter aberto umas 50 vezes a tabela
Alguem tem outra ideia??? Please!!!
var qry : TQuery; dentro dos repeats que abre e fecha a tabela toda hora: qry := TQuery.Create(nil); with qry do begin Active := False; DatabaseName := ´DBprocreareDB´; qry.SQL.Add(´select * from pesagens´); try Open; RegistroPesagem := qry.FieldByName(´Registro´).AsInteger; finally Free; end; end;
GOSTEI 0
Techsoft
31/03/2006
Tente adicionar o close antes do free.
var qry : TQuery; dentro dos repeats que abre e fecha a tabela toda hora: qry := TQuery.Create(nil); with qry do begin Active := False; DatabaseName := ´DBprocreareDB´; qry.SQL.Add(´select * from pesagens´); try Open; RegistroPesagem := qry.FieldByName(´Registro´).AsInteger; finally Close; Free; end; end;
GOSTEI 0
Garciabhale
31/03/2006
ainda continuou...
essa tá osso
essa tá osso
GOSTEI 0
Joni Nunes
31/03/2006
Isso é a limitação do número de Cursores aberto no banco, como o colega anterior respondeu, verifique se vc nao utiliza cursores e deixa aberto, tipo assim, executa uma query para uma determinada validacao e boa, nao faz mais nada com o cursor, isso é errado todo cursor nao utilizado deve ser fechado e quando instanciado deve ser liberado.
GOSTEI 0
Techsoft
31/03/2006
Bom, este problema esta realmente relacionado com o seu query estar ficando ´aberto´...
Me responde uma coisa, este trecho de código que você colocou logo acima está dentro de um repeat é isso? ele não fecha o form e abre novamente, ele simplesmente fica rodando um repeat e em um determinado momento o erro ocorre?
vou postar como eu utilizo queries dinâmicas e nunca tive problemas, é bem parecido com o q vc faz, mas vai saber, as vezes um pequeno detalhe pode gerar algum problemão.
Outra coisa, notei que não está usando nenhuma sessão, pode ser que não mas na dúvida, se o que passei acima não funcionar tente usar algumas sessão e ver se o problema continua.
Me responde uma coisa, este trecho de código que você colocou logo acima está dentro de um repeat é isso? ele não fecha o form e abre novamente, ele simplesmente fica rodando um repeat e em um determinado momento o erro ocorre?
vou postar como eu utilizo queries dinâmicas e nunca tive problemas, é bem parecido com o q vc faz, mas vai saber, as vezes um pequeno detalhe pode gerar algum problemão.
with TQuery.Create(nil) do try DatabaseName := ´DBprocreareDB´; SQL.Add(´select * from pesagens´); Open; RegistroPesagem := FieldByName(´Registro´).AsInteger; finally Close; Free; end;
Outra coisa, notei que não está usando nenhuma sessão, pode ser que não mas na dúvida, se o que passei acima não funcionar tente usar algumas sessão e ver se o problema continua.
GOSTEI 0
Ubiratan Melo
31/03/2006
Show de bola, no meu resolveu. Meu repeat sempre é composto de aproximadamente 1000 vezes quando chegava em 253 dava o erro: too many open tables. Acho q esse fato de liberar da memoria, Free deve resolver.
GOSTEI 0