INSERT INTO NAO FUNCIONA

PEGUDO 24/04/2012 10:21:48
#400617
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

FILMAN 24/04/2012 10:26:10
#400618
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
PEGUDO 24/04/2012 10:32:37
#400619
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?
PEGUDO 24/04/2012 10:52:26
#400622
Acabei de desisntalar o ACCESS da minha máquina e funcionou tanto o INSERT quanto o SELECT
OCELOT 24/04/2012 11:36:03
#400627
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.
PEGUDO 24/04/2012 13:45:01
#400652
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.
Tópico encerrado , respostas não são mais permitidas