PROBLEMAS COM IMPORTACAO DE ARQUIVO .DBF

 Tópico anterior Próximo tópico Novo tópico

PROBLEMAS COM IMPORTACAO DE ARQUIVO .DBF

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#349529 - 05/08/2010 14:06:22

LCSD
SAO PAULO
Cadast. em:Janeiro/2001


Pessoal, Boa tarde.......

Estou com um problema "grave" em minha aplicação, e até agora não conseguí resolver o meu problema. É o seguinte:
Eu preciso importar um arquivo .DBF para o meu bco de dados SQL SERVER 2005, pelo menos, 2 vezes ao dia. Só que algumas vezes o istema importa o arquivo, e em outras vezes o sistema não o importa.

Fiz o código para a importação de 2 maneiras, vou postar as 2 maneiras e os problemas que estão acontecendo nelas:

FORMA 1:
        SQL = "Select * from lista"
        RSDBF.Open SQL, CnDBF, adOpenKeyset, adLockOptimistic
        If Not RSDBF.EOF Then
            Cn.BeginTrans
            Cn.Execute "delete from  Alunos"
            Cn.CommitTrans
            prgImportacao.Max = RSDBF.recordCount
            prgImportacao.min = 0
            prgImportacao.Visible = True
        End If
        Do While Not RSDBF.EOF
            SQL = "INSERT INTO ALUNOS (LICODIGO, LINOME, LIVIA, LIBLOQUEIO, LIMENSAG, LIHORINI, LIHORFIN, LIHORINI2, LIHORFIN2, LIVALIDADE, LIVALEXA, LIVALAVA, LIDTAGEXA, LIDTAGAVA) VALUES "
            SQL = SQL & " ('" & RSDBF!licodigo & "', '" & RSDBF!linome & "', '" & RSDBF!LIVIA & "', '" & RSDBF!LIBLOQUEIO & "', '" & RSDBF!limensag & "', '" & RSDBF!LIHORINI & "', "
            SQL = SQL & " '" & RSDBF!LIHORFIN & "', '" & RSDBF!LIHORINI2 & "', '" & RSDBF!LIHORFIN2 & "', '" & RSDBF!LIVALIDADE & "', '" & RSDBF!livalexa & "', '" & RSDBF!livalava & "', "
            SQL = SQL & " '" & RSDBF!lidtagexa & "', '" & RSDBF!lidtagava & "')"
            
            Cn.BeginTrans
            Cn.Execute SQL
            Cn.CommitTrans
            RSDBF.MoveNext
            prgImportacao.value = prgImportacao.value + 1
            DoEvents
        Loop

PS: Neste exemplo, tem horas que o meu sistema abre o arquivo normalmente, mas não encontra registro NENHUM no meu arquivo DBF, mas ao eu abrir o mesmo arquivo DBF no Excell, ele me mostra a porrada de registros nele.


Forma 2:
            SQL = "SELECT * INTO ALUNOS1 "
            SQL = SQL & " FROM OPENROWSET('MSDASQL','Driver={Microsoft dBASE Driver (*.dbf)}; DefaultDir=" & App.Path & "\; SourceType=dbf','select * from lista')"

            Cn.BeginTrans
            Cn.Execute SQL
            Cn.CommitTrans

PS: Neste exemplo, está me dando o seguinte erro:
O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase] '(desconhecido)' não é um caminho válido. Certifique-se de que o nome do caminho esteja escrito corretamente e que você esteja conectado ao servidor no qual o arquivo reside.".


A Conecção com o arquivo DBF está sendo feita da seguinte forma:
    Set CnDBF = New ADODB.Connection
    'Usando Driver do Foxpro:
    str_CN = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" & m_Arq & ";Exclusive=No; collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;"

    
    CnDBF.ConnectionString = str_CN
    CnDBF.CursorLocation = adUseClient
    CnDBF.Open str_CN


Preciso fazer com que este arquivo DBF seja importado sempre sem maiores problemas, portanto, para mim seria melhor se fosse feito via OPENROWSET.


Conto com a ajuda de vocês.

  
Quando precisar, pode contar comigo....
E quando precisar, não esqueça de agradecer, pois a educação é a ALMA DO NEGÓCIO...


Obrigado.

Luiz Cesar

#349538 - 05/08/2010 15:00:24

LUIS FLAVIO
DIVINOPOLIS
Cadast. em:Outubro/2005


Luiz acho que seria muito bom você utilizar o OPENROWSET, você poderia criar um procedure que executa, segue o link para um verificada!

http://msdn.microsoft.com/pt-br/library/ms190312.aspx




Que o homem progrida quanto quiser, que todos os ramos do conhecimento humano se desenvolvam ao mais alto grau, coisa alguma substituirá a Bíblia, base de toda a cultura e de toda educação ...

#349541 - 05/08/2010 15:16:30

LCSD
SAO PAULO
Cadast. em:Janeiro/2001


Caro Luis Flavio,

Só que ao tentar utilizar o OPENROWSET, ele me retorna aquele erro acima citado por mim, ao utlizar via VB6, E se eu tentar executar a query diretamente no meu SQL SERVER, ele me retorna o seguinte erro por lá.


O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase] '(desconhecido)' não é um caminho válido. Certifique-se de que o nome do caminho esteja escrito corretamente e que você esteja conectado ao servidor no qual o arquivo reside.".
O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase]Atributo de seqüência de caracteres de conexão inválido SourceType".
O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase]Atributo de seqüência de caracteres de conexão inválido SourceType".
O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase]Atributo de seqüência de caracteres de conexão inválido SourceType".
O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase]Erro geral Não é possível abrir a chave 'Temporary (volatile) Jet DSN for process 0x6e4 Thread 0x91c DBC 0x4a4f0064 Xbase' do Registro.".
O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase]Atributo de seqüência de caracteres de conexão inválido SourceType".
O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase]Atributo de seqüência de caracteres de conexão inválido SourceType".
O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase]Atributo de seqüência de caracteres de conexão inválido SourceType".
O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase]Atributo de seqüência de caracteres de conexão inválido SourceType".
O provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)" retornou a mensagem "[Microsoft][Driver ODBC para dBase]Erro geral Não é possível abrir a chave 'Temporary (volatile) Jet DSN for process 0x6e4 Thread 0x91c DBC 0x4a4f0064 Xbase' do Registro.".
Msg 7303, Level 16, State 1, Line 1
Não é possível inicializar um objeto de fonte de dados do provedor do OLE DB "MSDASQL" para o servidor vinculado "(null)".


  
Quando precisar, pode contar comigo....
E quando precisar, não esqueça de agradecer, pois a educação é a ALMA DO NEGÓCIO...


Obrigado.

Luiz Cesar

#349562 - 05/08/2010 17:12:23

MARCOSLING
SAO PAULO
Cadast. em:Agosto/2008


Eu utilizo DAO para abrir o DBF e funciona sem problemas.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por LCSD em 10/08/2010 17:22:49