Guest --Fernando R. Piccini -- Postado Fevereiro 8, 2008 Denunciar Share Postado Fevereiro 8, 2008 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Fevereiro 8, 2008 Denunciar Share Postado Fevereiro 8, 2008 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"...como é que você está fazendo isto - post o código que você está usando. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest fernandopiccini Postado Fevereiro 8, 2008 Denunciar Share Postado Fevereiro 8, 2008 (editado) Segue abaixo um trecho do código (Exemplo de Teste)...Estou utilizando Delphi 6 e Oracle...Material_TT := TTable.Create(Nil); Material_TT.Active := False; Material_TT.DatabaseName := 'CORP'; Material_TT.TableType := ttParadox; Material_TT.TableName := 'Material'; if (not Material_TT.Exists) then begin Material_TT.FieldDefs.Clear; Material_TT.FieldDefs.Add('CD', ftFloat, 0, True); Material_TT.FieldDefs.Add('DS', ftString, 255, True); Material_TT.FieldDefs.Add('QT', ftFloat, 0, True); Material_TT.FieldDefs.Add('SL', ftFloat, 0, False); Material_TT.FieldDefs.Add('FN', ftFloat, 0, False); Material_TT.CreateTable; end; Material_TT.EmptyTable; Material_TT.Active := True;Gostaria de um auxilio para solucionar este problema.... :rolleyes: Editado Fevereiro 8, 2008 por Micheus Incluída tag's CODE para melhorar a visualização. Utilize a identação também ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Fevereiro 8, 2008 Denunciar Share Postado Fevereiro 8, 2008 Estou utilizando Delphi 6 e Oracle...fernandopiccini, se você utiliza Oracle, a tabela Paradox que você está criando é algo temporário?Eu tenho um código similar a este seu, e funciona sem problemas. A única diferença entre o meu e o seu código está no DatabaseName, em que você utiliza um ALIAS (CORP) e eu um path (TablePath = c:\temp):procedure TForm1.CriaTabelaImportacao(TablePath :string); var Table :TTable; begin Table := TTable.Create(nil); try Table.Close; {o mesmo que Active:=False } Table.DatabaseName := TablePath; { um alias BDE ou diretório} Table.TableType := ttParadox; { deve ser especificado quando se cria uma tabela} Table.TableName := 'client'; { extensão .DB é opcional} if (not Table.Exists) then begin { definindo alguns campos} with Table.FieldDefs do begin Clear; { limpa a tabela antiga} { a chave primária deve ser criada com o atributo "required" como true: } Add('Codigo', ftAutoInc, 0, true); // o TRUE significa que é requerido - não pode ser nulo Add('CodProd', ftString, 5, true); Add('Nome', ftString, 20, false); Add('Cidade', ftString, 10, false); Add('UF', ftString, 2, false); end; { "with Table1.FieldDefs" } { adiciona a chave primária e três secundárias} with Table.IndexDefs do begin Clear; {limpa os antigos} { A chave priária Paradox não tem nome.} { Nunca de o mesmo nome do campo ao índice se fizer isso não poderá usar ixCaseInsensitive } Add('', 'codigo', [ixPrimary]); { A opção ixCaseInsensitive não é valida para chaves primárias} { Nunca crie mais indices do que você precisar. Você poderá fazer isso depois} Add('NomeIDX', 'Nome', [ixCaseInsensitive]); Add('CidadeIDX', 'Cidade', [ixCaseInsensitive]); { combinando um índice com dois campos: } Add('TesteIDX', 'Cidade;Nome', [ixCaseInsensitive]); end; { with "Table1.IndexDefs" } Table.CreateTable; end; Table.EmptyTable; Table.Open; Except MessageDlg('Error na Criação da Tabela ou Índice', mtError, [mbOK],0); end; { try...except } end;Logo, vem a pergunta: Este seu alias se refere a que tipo de banco de dados? Oracle ou Paradox?Você poderia experimentar colocar um path no lugar do seu alias e testar se o arquivo seria criado com sucesso neste lugar. Pelo menos, teríamos a pista de que o problema pode residir na definição do ALIAS.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest fernandopiccini Postado Fevereiro 21, 2008 Denunciar Share Postado Fevereiro 21, 2008 Ola Micheus,Irei verificar conforme sua descrição e depois passo um posicionamento, ok...Desde já agradeço a ajuda... :rolleyes: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fernando R. Piccini Postado Março 3, 2008 Denunciar Share Postado Março 3, 2008 A mensagem de erro é a seguinte: directory is lockedAh! Em relação ao Alias descrevi errado, não era corp, eu também estou utilizando um Path, porém mas mesmo assim o erro persiste.Procurei em outros lugares mas só a uma lista de erros do BDE sendo que não achei ainda uma solução para este problema...Ficaria grato pela ajuda, ok...Valeu :rolleyes: Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --Fernando R. Piccini --
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
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.