INSERT INTO NAO FUNCIONA
Pessoal,
O INSERT INTO com o OLEDB não está funcionando em outras máquinas.
Seguinte:
O BD que o programa usa é o ACCESS e nas máquinas que não têm o ACCESS instalado o INSERT INTO não funciona.
Na minha máquina, que tem o ACCESS, o código insere perfeitamente, mas quando levo para a máquina de testes, que
não tem o ACCESS instalado, não insere dados de jeito nenhum.
Já coloquei: DataAdapter = New OleDb.OleDbDataAdapter e não deu certo
Todas as máquinas possuem Windows 7 e já fiz todas as atualizações do FrameWork
Já vi as referências e já registrei o DAO.dll pelo RegSvr32
Meu código
O INSERT INTO com o OLEDB não está funcionando em outras máquinas.
Seguinte:
O BD que o programa usa é o ACCESS e nas máquinas que não têm o ACCESS instalado o INSERT INTO não funciona.
Na minha máquina, que tem o ACCESS, o código insere perfeitamente, mas quando levo para a máquina de testes, que
não tem o ACCESS instalado, não insere dados de jeito nenhum.
Já coloquei: DataAdapter = New OleDb.OleDbDataAdapter e não deu certo
Todas as máquinas possuem Windows 7 e já fiz todas as atualizações do FrameWork
Já vi as referências e já registrei o DAO.dll pelo RegSvr32
Meu código
Sem nenhum Driver do access instalado não vai funcionar mesmo é necessário instalar pelo menos o
MDAC_TYP.EXE
assim o access não esta instalado mais o dirver OLEDB vai estar
tenta ai
MDAC_TYP.EXE
assim o access não esta instalado mais o dirver OLEDB vai estar
tenta ai
Este é o problema:
Quando o programa trabalhava com o modo genérico ADODB, não dava este problema, mesmo sem o ACCESS instalado.
Agora que é preciso mudar para OleDB porque tem computadores aqui com o Windows 7 64bits, o problema começou.
Eu coloquei um registro manualmente e o programa retornou todos os campos perfeitamente, mas na hora de inserir via código
o programa não insere de jeito nenhum.
Posso até tentar instalar o ACCESS para ver se funciona, mas não vai ser funcional.
Já pensou se todo o computador que for usar o programa, precisar do ACCESS instalado?
Quando o programa trabalhava com o modo genérico ADODB, não dava este problema, mesmo sem o ACCESS instalado.
Agora que é preciso mudar para OleDB porque tem computadores aqui com o Windows 7 64bits, o problema começou.
Eu coloquei um registro manualmente e o programa retornou todos os campos perfeitamente, mas na hora de inserir via código
o programa não insere de jeito nenhum.
Posso até tentar instalar o ACCESS para ver se funciona, mas não vai ser funcional.
Já pensou se todo o computador que for usar o programa, precisar do ACCESS instalado?
Acabei de desisntalar o ACCESS da minha máquina e funcionou tanto o INSERT quanto o SELECT
Primeiro de tudo o programa Access não tem nada a ver com o Banco de Dados, eles apenas tem o mesmo nome, porém usar OLEDB para acessar o banco de dados do Access nunca vai precisar ter o programa Access instalado.
Uma coisa que pode estar acontecendo é se o Windows for de 64bits, nesse caso pode ser que você precise forçar o programa a ser compilado para 32bits, não me lembro se existe driver OLEDB para o Access de 64bits, mas compilando o programa para 32bits vai fazer ele usar o driver de 32bits que deve funcionar sem problemas.
Uma coisa que pode estar acontecendo é se o Windows for de 64bits, nesse caso pode ser que você precise forçar o programa a ser compilado para 32bits, não me lembro se existe driver OLEDB para o Access de 64bits, mas compilando o programa para 32bits vai fazer ele usar o driver de 32bits que deve funcionar sem problemas.
Achei a solução:
Não sei porquê mas toda vez que eu preciso inserir algum registro, eu preciso DESCONECTAR a conexão com o BD
Em seguida tenho de CONECTAR novamente, para depois executar o comando INSERT INTO.
Se eu inserir um registro e não fechar a conexão para inserir outro, o OleDB não executa o comando de inserir.
Isso é ruim porque esse processo de desconectar e conectar logo em seguida faz o programa demorar muito
para registrar os novos dados.
Não sei porquê mas toda vez que eu preciso inserir algum registro, eu preciso DESCONECTAR a conexão com o BD
Em seguida tenho de CONECTAR novamente, para depois executar o comando INSERT INTO.
Se eu inserir um registro e não fechar a conexão para inserir outro, o OleDB não executa o comando de inserir.
Isso é ruim porque esse processo de desconectar e conectar logo em seguida faz o programa demorar muito
para registrar os novos dados.
Tópico encerrado , respostas não são mais permitidas