TABELAS PARADOX

OSVALDO.ORODRIG 10/08/2007 18:21:43
#230433
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.





LCSD 10/08/2007 19:31:44
#230437
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).
OSVALDO.ORODRIG 11/08/2007 09:27:45
#230471
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




LCSD 11/08/2007 13:17:39
#230490
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.......





OSVALDO.ORODRIG 13/08/2007 10:22:59
#230631
Valeu pela ajuda...
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