Erro quot;insufficient disk spacequot;, Delphi 6 SQL SER
Bom dia Amigos,
Tenho um sistema desenvolvido em Delphi 6 e que utiliza banco de dados SQL Server 2000. Acontece que em determinado módulo quando tento gravar os dados em uma tabela de empregados (um simples insert), o sistema leva um tempo exagerado e retorna a mensagem de erro ´INSUFFICIENT DISK SPACE´.
Notei também que durante este tempo de espera, é criado um arquivo temporário (C:\documents and settings\programacao1\configurações locais\[b:0d36d14576]INMEM000.REM[/b:0d36d14576]), este arquivo vai crescendo (chega até aproximandamente uns 400mb) é quando o sistema devolve a mensagem de erro...
Alguém pode me ajudar?
Moisés
Tenho um sistema desenvolvido em Delphi 6 e que utiliza banco de dados SQL Server 2000. Acontece que em determinado módulo quando tento gravar os dados em uma tabela de empregados (um simples insert), o sistema leva um tempo exagerado e retorna a mensagem de erro ´INSUFFICIENT DISK SPACE´.
Notei também que durante este tempo de espera, é criado um arquivo temporário (C:\documents and settings\programacao1\configurações locais\[b:0d36d14576]INMEM000.REM[/b:0d36d14576]), este arquivo vai crescendo (chega até aproximandamente uns 400mb) é quando o sistema devolve a mensagem de erro...
Alguém pode me ajudar?
Moisés
Outl@w
Curtidas 0
Respostas
Outl@w
05/04/2005
sobe.
GOSTEI 0
Edilcimar
05/04/2005
provavelmente você criou um loop infinito, aí não tem HD que aguente
GOSTEI 0
Outl@w
05/04/2005
Não, não tem loop infinito, já conferi.... tanto é que o problema é intermitente, hora acontece, hora não.
GOSTEI 0
Edilcimar
05/04/2005
coloque o código de inserção
GOSTEI 0
Outl@w
05/04/2005
sobe
GOSTEI 0
Aroldo Zanela
05/04/2005
[quote:6a974c7863=´outl@w´]Bom dia Amigos,
Tenho um sistema desenvolvido em Delphi 6 e que utiliza banco de dados SQL Server 2000. Acontece que em determinado módulo quando tento gravar os dados em uma tabela de empregados (um simples insert), o sistema leva um tempo exagerado e retorna a mensagem de erro ´INSUFFICIENT DISK SPACE´.
Notei também que durante este tempo de espera, é criado um arquivo temporário (C:\documents and settings\programacao1\configurações locais\[b:6a974c7863]INMEM000.REM[/b:6a974c7863]), este arquivo vai crescendo (chega até aproximandamente uns 400mb) é quando o sistema devolve a mensagem de erro...
Alguém pode me ajudar?
Moisés[/quote:6a974c7863]
Colega,
Qual o mecanismo de acesso (ADO, BDE, DBX)?
Tenho um sistema desenvolvido em Delphi 6 e que utiliza banco de dados SQL Server 2000. Acontece que em determinado módulo quando tento gravar os dados em uma tabela de empregados (um simples insert), o sistema leva um tempo exagerado e retorna a mensagem de erro ´INSUFFICIENT DISK SPACE´.
Notei também que durante este tempo de espera, é criado um arquivo temporário (C:\documents and settings\programacao1\configurações locais\[b:6a974c7863]INMEM000.REM[/b:6a974c7863]), este arquivo vai crescendo (chega até aproximandamente uns 400mb) é quando o sistema devolve a mensagem de erro...
Alguém pode me ajudar?
Moisés[/quote:6a974c7863]
Colega,
Qual o mecanismo de acesso (ADO, BDE, DBX)?
GOSTEI 0
Aroldo Zanela
05/04/2005
Colega,
[quote:ef0f44365b=´Sergio Samayoa <tecapl@c.net.gt>´]I will try to explain.
Almost all SQL databases can´t do scroll forward and backward in the
cursors. By definition, all cursors are unidirectional. Since in your
applications you can scroll forward and backward, it is necesary for BDE to
cache all ´visited´. This is why is necesary the inmem tables. Even worse,
BDE uses DBLib witch can be only one cursor active in the DB session, then
when you open another table/query it is necesary to fetch all data from the
first cursor to reuse the only cursor available in the session. The use of
inmem tables can´t be avoided since is requered by BDE.
If you don´t want large inmen files you must use queries witch returns few
records.
Regards. [/quote:ef0f44365b]
[quote:ef0f44365b=´Sergio Samayoa <tecapl@c.net.gt>´]I will try to explain.
Almost all SQL databases can´t do scroll forward and backward in the
cursors. By definition, all cursors are unidirectional. Since in your
applications you can scroll forward and backward, it is necesary for BDE to
cache all ´visited´. This is why is necesary the inmem tables. Even worse,
BDE uses DBLib witch can be only one cursor active in the DB session, then
when you open another table/query it is necesary to fetch all data from the
first cursor to reuse the only cursor available in the session. The use of
inmem tables can´t be avoided since is requered by BDE.
If you don´t want large inmen files you must use queries witch returns few
records.
Regards. [/quote:ef0f44365b]
GOSTEI 0
Outl@w
05/04/2005
estou utilizando BDE... a tabela tem 4222 registros
GOSTEI 0
Outl@w
05/04/2005
ainda naum consegui resolver... será que é necessário instalar algum update da Bde ou do SQl Server?
GOSTEI 0
Rjun
05/04/2005
Coloque o codigo de inserção
GOSTEI 0
Aroldo Zanela
05/04/2005
Coloque o codigo de inserção
Colega,
Também tenho interesse em verificar como está sendo feito esta inserção. Todos os papers que li em fóruns internacionais apontam para:
- Falta de espaço no diretório para o arquivos temporário;
- Select com pouca ou nenhum restrição, ocasionando um resultset com muitos dados;
Não me parece ser o seu caso.
Praticamente todas as questões levantadas sobre o assunto tiveram a mesma indicação de solução: - Migrar para ADO ou DBX.
GOSTEI 0