EderDias 0 Denunciar post Postado Março 5, 2006 Olá...pessoal...montei um relatorio no delphi....e qdo fui testa-lo com um relatorio mais grande....no meio da geração deu o seguinte erro: erro: edbengineerror 9495 lock file has grown too large então procurando na net achei esta dica do RamosDelphi que diz que o problema é com o BDE/netdir. Questão/Problema: Mensagem de erro no Paradox “LOCK FILE HAS GROWN TOO LARGE”. Confira como corrigir: Resposta: Este erro é específico de tabelas Paradox e pode ser causado em qualquer BDE (16 ou 32 Bits) Para resolver o problema, tenha certeza que sua aplicação está da seguinte forma: Abaixo do diretório onde está o executável, crie três novos diretórios: TABLES, PRIV, e REDE. Coloque todas as tabelas para a aplicação no diretório de TABLES. Altere o diretório privado da sessão para o diretório de PRIV. Faça o seguinte no seu programa em Delphi DELPHI: Session.PrivateDir := ExtractFilePath(ParamStr(0)) + ‘ PRIV’; Altere o diretório de rede da sessão para o diretório Rede. Faça o seguinte: DELPHI: Session.NetFileDir := ExtractFilePath(ParamStr(0)) + ‘ REDE’; Se o LOCAL SHARE for igual a True e você não está compartilhando as tabelas ao mesmo tempo entre aplicações diferentes, mude o LOCAL SHARE para False. Estes passos resolverão o problema. Então crie as duas pastas Priv e Red dentro da pasta do programa então eu coloquei o codido abaixo na inicialização do meu programa Session.PrivateDir := ExtractFilePath(ParamStr(0)) + 'PRIV'; Session.NetFileDir := ExtractFilePath(ParamStr(0)) + 'REDE'; Codigo da inicialização: em vermelho {$R *.RES} begin Application.Initialize; //AQUI Session.PrivateDir := ExtractFilePath(ParamStr(0)) + 'PRIV'; Session.NetFileDir := ExtractFilePath(ParamStr(0)) + 'REDE'; Splash:=tsplash.create(application); Splash.show; // mostra o form na tela... Splash.refresh; //aqui é opcional , depende do caso... como eu tenho uma barra de progresso , para que ela nao fique oscilando dou este comando Sleep(1500); // o tempo que o form vai aparecer (esta em milesegundos)... Application.ShowMainForm:= false; //retira o splash de exibiçao e cria os outros forms na memoria e bota a aplicação para rodar {daqui para baixo deve aparecer os demais formularios como mostra abaixo} Application.CreateForm(TFormPrincipal, FormPrincipal); Application.CreateForm(TFormSenha, FormSenha); Application.CreateForm(TForm3, Form3); Application.CreateForm(TForm2, Form2); Application.CreateForm(Tsplash, splash); Só que qdo compilo o programa da a seguinte mensagem de erro: DIRECTORY IS CONTROLED BY OTHER *.NET FILE. analisando este erro cheguei a conclusão que o programa ta criando 2(dois arquivos) *.NET , um pelo codigo que eu coloquei na inicilização do programa e outro pelo BDE na configurado o NETDIR....e tbem ta duplicando o nr de *.lck então resumindo ....ta dando um conflito... Então eu gostaria que alguem me desse uma luz de como resolver este problema.....pela dica que achei na net não mencionava este fato. Muito Grato.... http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Compartilhar este post Link para o post Compartilhar em outros sites
EderDias 0 Denunciar post Postado Março 8, 2006 ok..resolvido...tinha um erro interno no programa...tinha no caso algumas table´s attive=true ..ai coloquei false....e apaguei tbem os .net e .lck ai resolveu o problema....... eadicionei na inicialização do programa o codigo: Session.PrivateDir := ExtractFilePath(ParamStr(0)) + 'PRIV';Session.NetFileDir := ExtractFilePath(ParamStr(0)) + 'REDE'; {$R *.RES}beginApplication.Initialize;//AQUISession.PrivateDir := ExtractFilePath(ParamStr(0)) + 'PRIV';Session.NetFileDir := ExtractFilePath(ParamStr(0)) + 'REDE';Splash:=tsplash.create(application);Splash.show; // mostra o form na tela...Splash.refresh; //aqui é opcional , depende do caso... como eu tenho uma barra de progresso , para que ela nao fique oscilando dou este comandoSleep(1500); // o tempo que o form vai aparecer (esta em milesegundos)...Application.ShowMainForm:= false; //retira o splash de exibiçao e cria os outros forms na memoria e bota a aplicação para rodar{daqui para baixo deve aparecer os demais formularios como mostra abaixo}Application.CreateForm(TFormPrincipal, FormPrincipal);Application.CreateForm(TFormSenha, FormSenha);Application.CreateForm(TForm3, Form3);Application.CreateForm(TForm2, Form2);Application.CreateForm(Tsplash, splash);t+valeu a todos que tentaram ajudar... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites