RESGISTROS EXCLUIDOS NO DBF NAO SAO LISTADOS

FAUZE 01/08/2012 16:06:43
#407036
Pessoal estou fazendo leitura de arquivos dbf, e notei que os registros que estão excluidos não são listados, eu preciso deles tambem, segue abaixo minha rotina, alguem tem a solução?
 
Dim Conexão_Joiner As New ADODB.Connection
Dim rst As New ADODB.Recordset

Conexão_Joiner.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & vLocalRetaguarda & [Ô];[Ô] & [Ô]Extended Properties=Dbase IV;[Ô]

rst.Open [Ô]select * from far09[Ô], Conexão_Joiner, adOpenKeyset, adLockPessimistic
USUARIO.EXCLUIDOS 01/08/2012 16:12:22
#407037
Voce vai precisar desse processo somente uma vez
Está fazendo uma conversao ?

USUARIO.EXCLUIDOS 01/08/2012 16:19:45
#407039
Achei , testa ai
faça um backup antes de testar

object.Execute [Ô]RECALL ALL[Ô]
FAUZE 01/08/2012 16:20:40
#407040
Citação:

:
Voce vai precisar desse processo somente uma vez
Está fazendo uma conversao ?


Vou precisar sempre, é uma integração do meu sistema com um já existente, por isso preciso listar os excluidos também, tem como?
USUARIO.EXCLUIDOS 01/08/2012 16:36:43
#407042
Tenta isso



voltar registros excluidos

object.Execute [Ô]SET DELETED OFF[Ô]
object.Execute [Ô]RECALL ALL[Ô]


listar deletados
object.Execute [Ô]SET DELETED OFF[Ô]
object.Execute [Ô]SELECT * FROM tabela WHERE DELETED()[Ô]


listar somente registros lancados ( Não incluso Deletados)

object.Execute [Ô]SET DELETED ON[Ô]
object.Execute [Ô]SELECT * FROM tabela[Ô]

FAUZE 01/08/2012 16:54:18
#407044
Citação:

:
Tenta isso



voltar registros excluidos

object.Execute [Ô]SET DELETED OFF[Ô]
object.Execute [Ô]RECALL ALL[Ô]


listar deletados
object.Execute [Ô]SET DELETED OFF[Ô]
object.Execute [Ô]SELECT * FROM tabela WHERE DELETED()[Ô]


listar somente registros lancados ( Não incluso Deletados)

object.Execute [Ô]SET DELETED ON[Ô]
object.Execute [Ô]SELECT * FROM tabela[Ô]



Dá o seguinte erro:
-2147217900
Instrução SQL inválida. [ô]DELETE[ô],[ô]INSERT[ô],[ô]PROCEDURE[ô],[ô]SELECT[ô] OU [ô]UPDATE[ô] esperado.
USUARIO.EXCLUIDOS 01/08/2012 19:22:29
#407054
Qual dos 3 deu esse Erro ?
na 2 no select ou em todas ?


nao tem como executar esse comando ? executa ou nao
object.Execute [Ô]RECALL ALL[Ô]
FAUZE 02/08/2012 13:37:35
#407090
Citação:

:
Qual dos 3 deu esse Erro ?
na 2 no select ou em todas ?


nao tem como executar esse comando ? executa ou nao
object.Execute [Ô]RECALL ALL[Ô]



ALEDAORIGINAL ...

object.Execute [Ô]SET DELETED OFF[Ô]
object.Execute [Ô]RECALL ALL[Ô]
object.Execute [Ô]SET DELETED ON[Ô]
Dá o seguinte erro:
-2147217900
Instrução SQL inválida. [ô]DELETE[ô],[ô]INSERT[ô],[ô]PROCEDURE[ô],[ô]SELECT[ô] OU [ô]UPDATE[ô] esperado.

object.Execute [Ô]SELECT * FROM tabela WHERE DELETED()[Ô]
Dá o seguinte erro:
-2147217900
Função [ô]DELETED[ô] indefinida na expressão.

object.Execute [Ô]SELECT * FROM tabela[Ô]
Não dá erro.
USUARIO.EXCLUIDOS 02/08/2012 14:17:03
#407094
Provavel que seu Driver de conexao nao da suporte Voce precisaria testar usando outro driver , esse JET.OLEDB nao vai dar suporte a esses comandos

Da uma olhada nesse topico , tenta com esse Driver
http://www.tek-tips.com/viewthread.cfm?qid=1501366

Voce praticamente tem que executar os comandos , do Foxpro dentro do VB , pra isso usando o Driver certo
Não testei até o momento , mais se voce estiver com muita dificuldades ai faço um teste aqui pra voce

mais provavel que trocando o drive , e usando Execute ou CommandText . voce consiga fazer os comandos acima q te passei

O melhor site pra achar essas resposta é o http://www.tek-tips.com da uma olhada lá





FAUZE 02/08/2012 15:06:08
#407101
ALEDAORIGINAL,

Muito obrigado pela atenção, mas está dando erro:
3706
Provedor não encontrado. é possível que ele não esteja instalado corretamente.

Sei que preciso referenciar o provedor, mas não sei qual, já procurei na net e não estou encontrando, acessei o link que vc indicou, mas meu ingles não ajuda.
Será que vc consegue me ajudar com um exemplo?
USUARIO.EXCLUIDOS 03/08/2012 11:35:50
#407134
Entao , VFPOLEDB. é somente uma DLL , ela voce poem no System32 , ou na pasta Microsoft Shared que ambas funcionam DLLs de sistemas

http://www.microsoft.com/en-us/download/details.aspx?id=14839


Testei aqui e funcionou
Citação:


Function OpenDBFConn(Path)

Dim Conn As Connection
Set Conn = CreateObject([Ô]ADODB.Connection[Ô])
Conn.Open [Ô]Provider=VFPOLEDB.1;[Ô] & _
[Ô]Data Source=[Ô] & Path & [Ô];[Ô] & _
[Ô]Extended Properties=[Ô][Ô]DBASE IV;[Ô][Ô];[Ô]
Set OpenDBFConn = Conn

End Function

Dim DBConn As Connection
Set DBConn = OpenDBFConn([Ô]C:\VB_DBF[Ô])
Dim Persons As Recordset
DBConn.Close
DBConn.Open
DBConn.Execute [Ô]PACK Persons.dbf[Ô]


Faça um backup antes de Executar

PACK serve para - APAGAR REGISTROS MARCADOS para DELECAO , dele nao ira precisar , mais testei nele , pra facilitar o Teste

Os comandos que voce precisa , sao os acima .

tente executar
Tópico encerrado , respostas não são mais permitidas