Ir para conteúdo
Fórum Script Brasil
  • 0

Multiple-step OLE DB operation generated errors. Check each OLE DB sta


Welington Nascimento

Pergunta

Boa tarde pessoal,

Gostaria de um help, tenho um JOB que roda a cada hora entre 8:00 até 21:00 e vários anos funciona normalmente,

então apartir da semana passada ela passou a gerar o erro acima.

Acho díficil ser um erro da aplicação, acreditando ser um erro do ambiente mas não tenho uma idéia de como resolver.

Gostaria de uma luz, para resolver o problema.

JOB

Public Sub Envio_tabelas_unilaterais(ByVal dtLimite)

Dim i, SQL, SQLAux, SQLAux2, nomeCampo, nomeTabela

Dim aTabela_Campos(), aTabela_MaxCampos

funcaoNome = "Envio_tabelas_unilaterais"

SQL = "SELECT dsc_tabela FROM " & prfxTabela & "AUXILIA_TABELA_ENVIO_INTERNET" & _

" WHERE dat_alteracao > " & dtLimite & ""

RSLocal.Open SQL

Do While Not RSLocal.EOF

funcaoNome = "Envio_tabelas_unilaterais"

bInfoEnvio = True

nomeTabela = RSLocal("dsc_tabela")

Call Grava_Log_Duracao(Date & " " & Time & " - Exportação Inicio U " & nomeTabela)

funcaoNome = "Envio_tabelas_unilaterais_" & nomeTabela

If LCase(Trim(nomeTabela)) = "advogado_xyw" And bdLocal = bdORACLE Then

SQLAux = "SELECT a.cod_usuario_advogado_xyz, replace(u.nom_usuario, ' (desligado)', '') || decode(a.ind_advogado_ativo, 'S', '', ' (desligado)') as nom_usuario, a.dsc_email " & _

"FROM " & prfxTabela & "advogado_xyz a, " & prfxTabela & "usuario u " & _

"WHERE a.cod_usuario_advogado_xyz = u.cod_usuario"

ElseIf LCase(Trim(nomeTabela)) = "historico_indice_economico" And bdLocal = bdORACLE Then

SQLAux = "SELECT * FROM " & prfxTabela & nomeTabela & _

" WHERE cod_indice_economico = '" & codIndiceEconomico & "'"

ElseIf LCase(Trim(nomeTabela)) = "cliente_vinculado" And bdLocal = bdORACLE Then

SQLAux = "SELECT DISTINCT COD_CLIENTE, NOM_CLIENTE" & _

" From " & prfxTabela & "PROCESSO, " & prfxTabela & "CLIENTE" & _

" WHERE " & prfxTabela & "PROCESSO.COD_CLIENTE_VINCULADO = " & prfxTabela & "CLIENTE.COD_CLIENTE AND" & _

" RCP.PROCESSO.IND_PROCESSO_ABERTO = 'S'"

' ElseIf (LCase(Trim(nomeTabela)) = "assunto" Or LCase(Trim(nomeTabela)) = "evento") And bdLocal = bdORACLE Then

'

' SQLAux = "SELECT * FROM " & prfxTabela & nomeTabela & " WHERE ind_processo_civel = 'S'"

'

ElseIf LCase(Trim(nomeTabela)) = "profissional" And bdLocal = bdORACLE Then

SQLAux = "SELECT * FROM " & prfxTabela & nomeTabela & " WHERE ind_ativo = 'S'"

ElseIf LCase(Trim(nomeTabela)) = "usuario_internet" And bdLocal = bdORACLE Then

SQLAux = "SELECT b.* FROM " & prfxTabela & "profissional a, " & prfxTabela & nomeTabela & _

" b WHERE a.cod_profissional = b.cod_profissional and a.ind_ativo = 'S'" & _

" UNION " & _

" SELECT b.* FROM " & prfxTabela & nomeTabela & " b " & _

" WHERE NOT EXISTS( " & _

" SELECT * FROM " & prfxTabela & "profissional a " & _

" WHERE a.cod_profissional = b.cod_profissional )"

Else

SQLAux = "SELECT * FROM " & prfxTabela & nomeTabela

End If

SQLAux2 = "SELECT * FROM " & nomeTabela

Call Associa_tabela(nomeTabela, aTabela_Campos, aTabela_MaxCampos)

funcaoNome = "Envio_tabelas_unilaterais_" & nomeTabela

'RSLocal2.Open SQLAux, ConnLocal, adOpenDynamic, adLockOptimistic ' Estava dando erro ao executar no Oracle

'RSLocal2.Open SQLAux, ConnLocal, adOpenForwardOnly, adLockReadOnly ' Só estava preenchendo até a terceira coluna do recorset no SQL Server

RSLocal2.Open SQLAux, ConnLocal, adOpenStatic, adLockReadOnly

RSLocal2.CacheSize = 1000

RSArq.Open SQLAux2, ConnArq, adOpenDynamic, adLockOptimistic

Do While Not RSLocal2.EOF

RSArq.AddNew

For i = 1 To aTabela_MaxCampos

nomeCampo = aTabela_Campos(i)

RSArq(nomeCampo) = RSLocal2(nomeCampo)

Next

RSArq.Update

RSLocal2.MoveNext

Loop

RSArq.Close

RSLocal2.Close

RSLocal.MoveNext

Call Grava_Log_Duracao(Date & " " & Time & " - Exportação Fim U " & nomeTabela)

Loop

RSLocal.Close

End Sub

Public Sub Associa_tabela(ByVal nomeTabela, ByRef aTabela_Campos, ByRef aTabela_MaxCampos)

TabUAdvogadoxyz_Campos(1) = "cod_usuario_advogado_xyz"

TabUAdvogadoxyz_Campos(2) = "nom_usuario"

TabUAdvogadoxyz_Campos(3) = "dsc_email"

TabUAdvogadoxyz_MaxCampos = 3

O que está em vermelho é o que roda do job e a função lá embaixo....a meiuca q está em preto pode ignorar.

Mas como falei acredito ser um problema de BD, se alguém souber o que é.

Editado por Welington Nascimento
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
em q linha exatamente acontece o erro??

RSArq.Open SQLAux2, ConnArq, adOpenDynamic, adLockOptimistic -- Acho que o erro ocorre nessa linha, esqueci de colocar que o RSArq recebe uma conexão com o banco de dados access.

Public Sub Conecta_access()

funcaoNome = "Conecta_access"

' ConnArq.ConnectionString = "DRIVER=Driver do Microsoft Access (*.mdb); DBQ=" & App.Path & "\bd_" & opImpExp & "_temp.mdb"

ConnArq.ConnectionString = "DRIVER=Microsoft Access Driver (*.mdb); DBQ=" & App.Path & "\bd_" & opImpExp & "_temp.mdb"

' ConnArq.ConnectionString = "DRIVER=Microsoft Access Driver (*.mdb); DBQ=" & App.Path & "\teste.mdb"

ConnArq.Open

RSArq.ActiveConnection = ConnArq

RSArq2.ActiveConnection = ConnArq

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...