Erro ao trabalhar com Access no Delphi

Delphi

21/08/2003

Olá pessoal.
Estou desenvolvendo um programa de controle de estoque e resolvi usar o Access como banco de dados. Estou usando Delphi 5. No datamodule, eu inseri um ADOconnection e um ADOQuery. A conexão com o banco de dados através do ADOconnection é feita normalmente, sem dar erros, o teste de conexão também está ok. O problema está no ADOQuery. Com o ADOconnection conectado ao banco de dados. eu associo o ADOQuery ao ADOconnection, até ai tudo ok. Eu coloco a instrução ´Select * from Produto´ e passo a propriedade active para true, e também tudo está ok.
Quando eu abro o fields editor e tento incluir os campos da tabela produto aparece a seguinte mensagem:
Project Estoque.exe raised exception class EOleException with message
´Either BOF or EOF is True, or the current record has been deleted.
Requested operation requires a current record´.
Mesmo que não tente incluir os campos da tabela, esse erro também aparece quando o programa está sendo executado. Durante a execução, eu consigo incluir e escluir registros, só que quando eu vou fechar o programa, aparece novamente essa mensagem. Para gravar, excluir, etc. eu estou usando o dbnavigator.
Ps.: Esta mensagem também aparece se eu usar o ADOTable.
O que posso fazer para resolver este problema?
Agradeço desde já.


Cristiano D.

Cristiano D.

Curtidas 0

Respostas

Nildo

Nildo

21/08/2003

Nao conheco este erro, mas da a entender que a tabela esta vazia...


GOSTEI 0
Cristiano D.

Cristiano D.

21/08/2003

Me parece isso também Nildo.
Só que não faz sentido esta mensagem aparecer quando a tabela está fazia. Se durante a execução do programa o usuário resolve apagar todos os itens da tabela, isso deveria ser um procedimento normal e não dar uma mensagem de erro. Não faz sentido dizer que uma tabela não pode ficar vazia.


GOSTEI 0
Nildo

Nildo

21/08/2003

É.. Eu tambem acho.
Tente instalar a atualizacao do MDAC e do DCOM. Eh soh ir no site da Microsoft e pesquisar por MDAC e pelo DCOM e baixar a ultima versao. Eh de graça.

Mais uma coisa: C vc utiliza access nao esqueça que tem que instalar o MDAC e o DCOM nos seus clientes tambem pra funcionar ok? (Isso se o access nao estiver instalado).

Já me deparei com um problema assim com o access tambem. Mas o cara tinha Windows XP e ateh hj eu nao descobri q m***** de erro eh esse.

Esse err ocorre sohmente quando a tabela esta vazia?


GOSTEI 0
Cristiano D.

Cristiano D.

21/08/2003

Nildo, infelizmente eu não estou com o programa agora para testar isso mas me parece que esta mensagem aparecere realmente quando a tabela está fazia.


GOSTEI 0
Nildo

Nildo

21/08/2003

Mas é do nada q a mensagem aparece ou quando vai fazer alguma operação?


GOSTEI 0
Cristiano D.

Cristiano D.

21/08/2003

Em tempo de projeto, ela aparece quando eu tento incluir os campos da tabela através do fields editor, seja usando ADOQuery ou ADOTable. Na execução do programa, se não me engano, ela aparece quando eu tento fechar o programa, ou seja, eu consigo incluir e excluir registros, mas se a tabela está fazia e eu tentar sair do programa a mensagem aparece.


GOSTEI 0
Nildo

Nildo

21/08/2003

Há realmente uma necessidade do access?
C vc migrar para o Interbase (aconselho muuuuito) seria bem mais funcional e mais rapido. Sem contar que o arquivo de instalacao do CLient e do Server tem somente 3.4 megas. Enquanto o PDAC e o DCOM junto tem 10 megas.

O que voce me diz?


GOSTEI 0
Cristiano D.

Cristiano D.

21/08/2003

É uma boa sugestão.
Só que mesmo mudando para interbase ou outro banco de dados, eu gostaria de saber porque esse erro acontece. Eu já vi tantos programas rodando com access sem dar esse problema, e tinha que ser justamente com o meu para não dar certo? Mas vou seguir seu conselho, primeiro vou tentar a atualização no site da Microsoft, e se não der vou ter mesmo que mudar de banco de dados. Mas ainda assim continua a dúvida no ar:

´QUE ERRO É ESSE QUE TÁ ME DEIXANDO MALUCO?...´


GOSTEI 0
Nildo

Nildo

21/08/2003

"QUE ERRO É ESSE QUE TÁ ME DEIXANDO MALUCO?..."


Esse erro tambem jah me deu muita dor de cabeca. E se eu te dissesse que soh acontecia em 1 cliente de um total te 200?

Jah fui atraz e nada. Mais uma coisa: Porque voce acha que eu desisti do access e nunca mais quero ve-lo na minha frente?


GOSTEI 0
Nildo

Nildo

21/08/2003

Achei a solução. Vou traduzi-la e posta-la aqui


GOSTEI 0
Nildo

Nildo

21/08/2003

baixa a ultima versao do MDAC no site da microsoft, e depois entre no site da borland e baixe o ´ADO Express Update Pack #2´. Aplique este patch e recomplie seu programa que deve funcionar.

t+
:D


GOSTEI 0
Nildo

Nildo

21/08/2003

Voce deve estar usando o Delphi 5! É realmente um Bug. Baixe o patch aqui:

http://info.borland.com/devsupport/delphi/downloads/index.html

´ADO Express Update Pack #2


GOSTEI 0
Cristiano D.

Cristiano D.

21/08/2003

Valeu Nildo.
Vou baixar estas atualizações. Realmente eu uso o Delphi 5 e se Deus quiser esse maldito erro some de vez. Mas mesmo que esse erro suma, eu realmente vou considerar sua sugestão de mudar para interbase. Mas aí aparece outro problema: eu já utilizei o interbase em outro programa que desenvolvi. Este programa funcionou perfeitamente na minha máquina, só que quando eu instalei na maquina do cliente juntamente com client do interbase, surpresa!!! dava erro quando o programa tentava acessar o banco interbase. Só que ja faz algum tempo e eu não me lembro mais que erro era esse e como eu não tinha tempo para encontrar a solução do problema pois o cliente precisava com urgência do programa, eu tive que mudar para paradox. Mas eu não desisti do interbase. Vou usá-lo novamente e se por acaso eu me deparar com esse erro de conexão na máquina do cliente, eu espero poder contar com a sua ajuda e de outros também, pois aquele que diz nunca precisar de ajuda é um grande mentiroso e pretencioso também. E claro, naquilo que eu puder ajudar, contem comigo....
Valeu!!!


GOSTEI 0
Nildo

Nildo

21/08/2003

Se voce migrar para o Interbase, eu assumo a responsabilidade de te ajudar no que for necessario. Assim aprendemos juntos. Voce vai se deparar com varios problemas durante a instalação, mas eu te ajudo. Dont worrie

t+


GOSTEI 0
POSTAR