Welington Nascimento Postado Agosto 2, 2010 Denunciar Share Postado Agosto 2, 2010 (editado) 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.JOBPublic 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 SubPublic 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 = 3O 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 Agosto 2, 2010 por Welington Nascimento Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 3, 2010 Denunciar Share Postado Agosto 3, 2010 em q linha exatamente acontece o erro?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Welington Nascimento Postado Agosto 4, 2010 Autor Denunciar Share Postado Agosto 4, 2010 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 6, 2010 Denunciar Share Postado Agosto 6, 2010 hum, se não me engando, o access não suporta adOpenDynamic. tenta trocar por adOpenKeyset. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Welington Nascimento
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 NascimentoLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.