TABELAS PARADOX
Caros amigos,
Tenho um programa que pega informações de tabelas paradox e grava em um um bd sql. O problema é que quando tendo migrar essas informações com o programa que usa a base paradox aberto, o vb me retorna o erro: "Erro inesperado causado pelo drive de banco de dados externo". Quando pego essas informações com o programa que trabalha com o paradox fechado, isso é feito sem problemas.
Isso passou a ocorrer depois que alterei o banco de dados do meu sistemas de access para sql 2000. Pois antes pegava as informações do paradox e gravava em um bd access, funcionava sem erros, mesmo o outro sistema que eu migro as informações em paradox aberto.
Tenho um programa que pega informações de tabelas paradox e grava em um um bd sql. O problema é que quando tendo migrar essas informações com o programa que usa a base paradox aberto, o vb me retorna o erro: "Erro inesperado causado pelo drive de banco de dados externo". Quando pego essas informações com o programa que trabalha com o paradox fechado, isso é feito sem problemas.
Isso passou a ocorrer depois que alterei o banco de dados do meu sistemas de access para sql 2000. Pois antes pegava as informações do paradox e gravava em um bd access, funcionava sem erros, mesmo o outro sistema que eu migro as informações em paradox aberto.
Bom... Vamos lá...
Este problema deve estar acontecendo na forma ao qual VC abre asua tabela PARADOX no seu sistema.
VC deve estar abrindo-a de modo EXCLUSIVO. E lógicamente, se o outro sistema já está aberto, como que é que ele abrirá essa tabela de modo exclusivo se ela já está aberta?
O paradox não "funciona" da mesma forma do SQL SERVER, onde VC pode abrir várias vezes a mesma tabela. O PARADOX só permite VC abri-la e ler as informaçoes "exclusivamente".
No ACCESS, VC conseguia fazer isso PQ VC não deveria estar abrindo exclusivamente essa tabela.
Uma solução "POG" que VC pode tentar fazer é o seguinte:
No seu sistema, VC gerar uma cópia dessa tabela pra uma outra pasta, e abrir essa tabela da outra pasta e dela fazer a cópia pro seu bco de dados.
Ou então, fazer essa rotina de transferência de dados em um momento onde nenhum usuário esteja com este sistema aberto (faça testes e rode o seu processamento no perÃÂÂodo noturno).
Este problema deve estar acontecendo na forma ao qual VC abre asua tabela PARADOX no seu sistema.
VC deve estar abrindo-a de modo EXCLUSIVO. E lógicamente, se o outro sistema já está aberto, como que é que ele abrirá essa tabela de modo exclusivo se ela já está aberta?
O paradox não "funciona" da mesma forma do SQL SERVER, onde VC pode abrir várias vezes a mesma tabela. O PARADOX só permite VC abri-la e ler as informaçoes "exclusivamente".
No ACCESS, VC conseguia fazer isso PQ VC não deveria estar abrindo exclusivamente essa tabela.
Uma solução "POG" que VC pode tentar fazer é o seguinte:
No seu sistema, VC gerar uma cópia dessa tabela pra uma outra pasta, e abrir essa tabela da outra pasta e dela fazer a cópia pro seu bco de dados.
Ou então, fazer essa rotina de transferência de dados em um momento onde nenhum usuário esteja com este sistema aberto (faça testes e rode o seu processamento no perÃÂÂodo noturno).
Obrigado pelas reposta Luiz.
Antes de abrir a tabela Paradox, faço uma cópia dela na pasta Temp, justamente para não ter problemas com o programa que a já tem aberto:
[txt-color=#ff0000] With lclCN
'Conexão ao Paradox usando o provedor OLE DB. Permitirá a utilização com Windows XP SP2
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & varPathDB & ";" & "Extended Properties=""Paradox 4.X;"";"
.Open
End With[/txt-color]
Segue o meu select:
lclTB.Open "SELECT top 10 * FROM estudos.db ORDER BY Cd_estudo DESC", lclCN, adOpenDynamic, adLockReadOnly
Antes de abrir a tabela Paradox, faço uma cópia dela na pasta Temp, justamente para não ter problemas com o programa que a já tem aberto:
[txt-color=#ff0000] With lclCN
'Conexão ao Paradox usando o provedor OLE DB. Permitirá a utilização com Windows XP SP2
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & varPathDB & ";" & "Extended Properties=""Paradox 4.X;"";"
.Open
End With[/txt-color]
Segue o meu select:
lclTB.Open "SELECT top 10 * FROM estudos.db ORDER BY Cd_estudo DESC", lclCN, adOpenDynamic, adLockReadOnly
Citação:OSVALDO.ORODRIG escreveu:
Obrigado pelas reposta Luiz.
Antes de abrir a tabela Paradox, faço uma cópia dela na pasta Temp, justamente para não ter problemas com o programa que a já tem aberto:
[txt-color=#ff0000] With lclCN
[ÃÂ']Conexão ao Paradox usando o provedor OLE DB. Permitirá a utilização com Windows XP SP2
.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & varPathDB & ; & Extended Properties= Paradox 4.X; ;
.Open
End With[/txt-color]
Segue o meu select:
lclTB.Open SELECT top 10 * FROM estudos.db ORDER BY Cd_estudo DESC , lclCN, adOpenDynamic, adLockReadOnly
Se vc fizer esta copia com o programa aberto, eh a mesma coisa de estar abrindo a tabela com o programa aberto.
Verifique se vc esta copiando os arquivos de indices da tabela......e para funfar lega vc devera vazer uma rotina para indexar a tabela......
Geralmente os arquivos que deve acompanhar a tabela tem as extensões.....
Alem dele mesmo eh claro.......
nomedatabela.db
nomedatabela.mb
nomedatabela.px
nomedatabela.xgo
nomedatabela.yxo
Eh algo assim......
Mas o mais importante eh vc reeindexar a tabela.......
Valeu pela ajuda...
Já estou copiando todos os arquivos da tabela. Como faço para indexa-la via vb ?
Já estou copiando todos os arquivos da tabela. Como faço para indexa-la via vb ?
Tópico encerrado , respostas não são mais permitidas