Erro TTable: Table is locked ou Table is busy...
Ola Pessoal,
Estou utilizando o componente TTable em uma aplicação.
Estou crio o mesmo em tempo de execução, porém toda vez que vou criar ele da mensagem de ´Table is locked´ ou ´Table is busy´...
Procurei na internet o que poderia ser e fala para excluir arquivos com extensão ´.lck´
Teria alguma outra forma de utilizar o Componente TTable sem ter que ficar excluindo esses arquivos???
Sendo que as vezes nem existe arquivo ´.lck´ e mesmo assim o erro persiste...
Se alguém puder ajudar seria muito util...
vlw
Estou utilizando o componente TTable em uma aplicação.
Estou crio o mesmo em tempo de execução, porém toda vez que vou criar ele da mensagem de ´Table is locked´ ou ´Table is busy´...
Procurei na internet o que poderia ser e fala para excluir arquivos com extensão ´.lck´
Teria alguma outra forma de utilizar o Componente TTable sem ter que ficar excluindo esses arquivos???
Sendo que as vezes nem existe arquivo ´.lck´ e mesmo assim o erro persiste...
Se alguém puder ajudar seria muito util...
vlw
Fernando Piccini
Curtidas 0
Respostas
Djjunior
08/02/2008
Vc não pode usar as MemoryTable do RX ou o ClienteDataSet em vez de criar essas TTables em Rum Time ?
GOSTEI 0
Fernando Piccini
08/02/2008
Utilizei clientdataset mas quando distribu clima aplicação em outras máquinas da erro de dll devido a declaraçãoda unit DBClient...
Acredito que deveriamos achar uma solução para TTable...
Mas não sei se é o BDE que faz o controle dos arquivos ou o Delphi...
vlw
Acredito que deveriamos achar uma solução para TTable...
Mas não sei se é o BDE que faz o controle dos arquivos ou o Delphi...
vlw
GOSTEI 0
Edilcimar
08/02/2008
provavelmente vc utilizou a tabela e depois tentou apagar, mas para conseguir apagar vc tem que fechá-la primeiro
GOSTEI 0
Fernando Piccini
08/02/2008
Ola Edilcimar,
Realmente estou apenas destruindo o componente ´TabelaTeste.Destroy;´ e não estou fechando a mesma.
Vou fecha-la e depois destruir a mesma para ver se não acontece mais o erro, ok.
Grato pela Ajuda
Realmente estou apenas destruindo o componente ´TabelaTeste.Destroy;´ e não estou fechando a mesma.
Vou fecha-la e depois destruir a mesma para ver se não acontece mais o erro, ok.
Grato pela Ajuda
GOSTEI 0
Fernando Piccini
08/02/2008
Ola Edilcimar,
Realmente estou apenas destruindo o componente ´TabelaTeste.Destroy;´ e não estou fechando a mesma.
Vou fecha-la e depois destruir a mesma para ver se não acontece mais o erro, ok.
Grato pela Ajuda
Realmente estou apenas destruindo o componente ´TabelaTeste.Destroy;´ e não estou fechando a mesma.
Vou fecha-la e depois destruir a mesma para ver se não acontece mais o erro, ok.
Grato pela Ajuda
GOSTEI 0
Fernando Piccini
08/02/2008
Ola Edilcimar,
A mensagem de erro é a seguinte: ´[b:820f060e14]Directory is locked[/b:820f060e14]´.
Tentei fechar a Tabela, destruir o componente porém o erro ainda acontece. Toda vez que entro no meu programa e vou criar da esse erro.
Procurei na internet mas não achei nada que pudesse ajudar.
Ainda fico no aguardo de uma solução ou algo que possa ajudar.
Observei que existe bastante mensagens na net com este problema, mas nada que para ajudar :(
Valeu
A mensagem de erro é a seguinte: ´[b:820f060e14]Directory is locked[/b:820f060e14]´.
Tentei fechar a Tabela, destruir o componente porém o erro ainda acontece. Toda vez que entro no meu programa e vou criar da esse erro.
Procurei na internet mas não achei nada que pudesse ajudar.
Ainda fico no aguardo de uma solução ou algo que possa ajudar.
Observei que existe bastante mensagens na net com este problema, mas nada que para ajudar :(
Valeu
GOSTEI 0
Edilcimar
08/02/2008
você não pode destruir uma tabela em uso, tem que fechá-la primeiro, a mensagem de diretório ocupado é porque a tabela está em uso
GOSTEI 0
Fernando Piccini
08/02/2008
Ola Edilcimar,
O que estou fazendo é o seguinte:
Tabela.Close;
Tabela.Destroy;
Ou seja, eu fecho a TTable e depois destruo a mesma, porém quando vou entrar continua dando a mensagem de erro.
Grato pela atenção.
O que estou fazendo é o seguinte:
Tabela.Close;
Tabela.Destroy;
Ou seja, eu fecho a TTable e depois destruo a mesma, porém quando vou entrar continua dando a mensagem de erro.
Grato pela atenção.
GOSTEI 0
Edilcimar
08/02/2008
use deletefile() em vez de destroy
GOSTEI 0
Fernando Piccini
08/02/2008
Como esta minha Tabela (TTable) é criada em tempo de execução (Esta incorporada em um componente próprio), antes de efetuar a criação da mesma executo a seguinte rotina para excluir os arquivos (.DB) da máquina
...
...
...e no Destroy do meu componente eu fecho a tabela e em seguida executo um Free...Ex:
Será alguma configuração do BDE?
:)
...
procedure Excluir_Arquivo(FileName: String); begin; if (FileExists(FileName)) then DeleteFile(FileName); end;
...
...e no Destroy do meu componente eu fecho a tabela e em seguida executo um Free...Ex:
destructor TWBarras.Destroy; begin Tabela_TT.Close; Tabela_TT.Free; end;
Será alguma configuração do BDE?
:)
GOSTEI 0
Edilcimar
08/02/2008
se você usar o deltefile() não precisa usar o destroy, afinal de contas não há mais nada a ser destruído
GOSTEI 0
Fernando Piccini
08/02/2008
Minha aplicação esta distribuida em mais algumas máquinas sendo que isto acontece aleatóriamente e apenas em algumas máquinas...
Creio que seja alguma configuração do BDE, porém não tenho certeza!
...tentei alterar o localshare mas ainda não obtive sucesso...vou continuar verificando...
vlw
Creio que seja alguma configuração do BDE, porém não tenho certeza!
...tentei alterar o localshare mas ainda não obtive sucesso...vou continuar verificando...
vlw
GOSTEI 0
Facc
08/02/2008
[quote:895abe00fc=´Fernando Piccini´]Minha aplicação esta distribuida em mais algumas máquinas sendo que isto acontece aleatóriamente e apenas em algumas máquinas...
Creio que seja alguma configuração do BDE, porém não tenho certeza!
...tentei alterar o localshare mas ainda não obtive sucesso...vou continuar verificando...
vlw[/quote:895abe00fc]
BDE só dor de cabeça... use o clientdataset... para distribuir aki no forum tem vários tópicos referentes... Eu vivia quebrando a cabeça com o BDE, agora que comecei a mexer com o DBExpress nem quero ver mais TTable. TQuery na frente...
Creio que seja alguma configuração do BDE, porém não tenho certeza!
...tentei alterar o localshare mas ainda não obtive sucesso...vou continuar verificando...
vlw[/quote:895abe00fc]
BDE só dor de cabeça... use o clientdataset... para distribuir aki no forum tem vários tópicos referentes... Eu vivia quebrando a cabeça com o BDE, agora que comecei a mexer com o DBExpress nem quero ver mais TTable. TQuery na frente...
GOSTEI 0
Fernando Piccini
08/02/2008
Ola Facc,
No inicio estava utilizando ClientDataSet, meu estava indo tudo bem até quando fui distribuir minha aplicação em outras máquinas (Cliente)...
Observa-se que: ´TClientDataSet´ vem da Unit DBClient e mesma faz a chamda da Midas.pas sendo que Midas voce precisa da .dll (Midas.dll)...devido a isto abandonei a utilização de ClientDataSet...pois teria q estar distribuindo as .dll´s nas máquinas...
Estou ainda procurando uma solução para TTable...
Valeu :)
No inicio estava utilizando ClientDataSet, meu estava indo tudo bem até quando fui distribuir minha aplicação em outras máquinas (Cliente)...
Observa-se que: ´TClientDataSet´ vem da Unit DBClient e mesma faz a chamda da Midas.pas sendo que Midas voce precisa da .dll (Midas.dll)...devido a isto abandonei a utilização de ClientDataSet...pois teria q estar distribuindo as .dll´s nas máquinas...
Estou ainda procurando uma solução para TTable...
Valeu :)
GOSTEI 0
Marco Salles
08/02/2008
Utilizei clientdataset mas quando distribu clima aplicação em outras máquinas da erro de dll devido a declaraçãoda unit DBClient...
voce pode ate achar solução para o Table , so não deve achar que precisa ficar instalando o Midas.dll no seu clientes .
Voce pode ´Linkar´ a Midas.Dll no seu aplicativo ( é o que chamamos de configuração quase ZERO ) .. Na uses do DataModulo , ou Do Projeto ou Do Form Principal as Units MidasLib ... Algumas Outras Units podem ser necessárias , dependendo do seu acesso .. Mas por hora fica este registro
GOSTEI 0