ATUALIZACAO EM LOOP ACCESS
Bom dia, tenho um sistema funcionando em rede aqui na empresa que trabalho, porém não sou da equipe de TI, logo não tenho acesso as configurações de rede, nem seus limites, dito isso vamos aos fatos.
O sistema tem um processo de atualização onde este busca informações em algumas tabelas excel um total de dez faz um processo de comparação de dados e então envia a gravação para um banco de dados (Update ou Insert).
Total de Registros alterados: aproximadamente 5.000
Duração da atualização em Rede: aproximadamente 4 (quatro) HORAS
Duração da atualização Local: aproximadamente 4 (quatro) Minutos.
Fiz uma rotina onde consigo ver qual função está demorando e é justamente a função de Update e insert, logo todas as comparações que são feitas passam rapidamente.
Segue anexo com os comparativos, nele podemos ver que em algumas vezes tenho um pico de atualização de em média 08 registros por segundo e na maioria da vezes demora-se até 05 segundos por registro.
O que poderia ser isso?
Grato
O sistema tem um processo de atualização onde este busca informações em algumas tabelas excel um total de dez faz um processo de comparação de dados e então envia a gravação para um banco de dados (Update ou Insert).
Total de Registros alterados: aproximadamente 5.000
Duração da atualização em Rede: aproximadamente 4 (quatro) HORAS
Duração da atualização Local: aproximadamente 4 (quatro) Minutos.
Fiz uma rotina onde consigo ver qual função está demorando e é justamente a função de Update e insert, logo todas as comparações que são feitas passam rapidamente.
Segue anexo com os comparativos, nele podemos ver que em algumas vezes tenho um pico de atualização de em média 08 registros por segundo e na maioria da vezes demora-se até 05 segundos por registro.
O que poderia ser isso?
Grato
Cara, vai ser difÃcil ver assim. seria bom se pudéssemos ver como esses insert e update estão sendo realizados. Pela demora, parece que estão dando loops no recordset e fazendo os procedimentos de inserção e atualização, em vez de usar DML.
Colocar o código todo é difÃcil pois é extenso, porém os códigos de busca e preenchimento de variáveis estão fluindo bem, o problema está no código abaixo:
Private Sub Modificar_BD()
Try
If Not vStatusProgramacao = [Ô]Encerrado[Ô] Then
[ô]ComandoModificaPendente.CommandText = [Ô]UPDATE tblOrdem SET [Ô] & CamposModificarPendente & vParametro
ComandoModificaPendente.Parameters.Clear()
ComandoModificaPendente.Parameters.Add([Ô]@TipoNota[Ô], OleDbType.VarWChar, 2).Value = IIf(vTipoNota <> Nothing, vTipoNota, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Nota[Ô], OleDbType.VarWChar, 50).Value = IIf(vNota <> Nothing, vNota, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Ordem[Ô], OleDbType.VarWChar, 10).Value = vOrdem
ComandoModificaPendente.Parameters.Add([Ô]@OrdemSuperior[Ô], OleDbType.VarWChar, 50).Value = IIf(vOrdemSuperior <> Nothing, vOrdemSuperior, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@LocalInstalacao[Ô], OleDbType.VarWChar, 100).Value = IIf(vLocalInstalacao <> Nothing, vLocalInstalacao, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Responsavel[Ô], OleDbType.VarWChar, 255).Value = IIf(vResponsavel <> Nothing, vResponsavel, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@TextoBreve[Ô], OleDbType.VarWChar, 100).Value = Convert.ToString(vTextoBreve)
ComandoModificaPendente.Parameters.Add([Ô]@DataBaseInicio[Ô], OleDbType.Date).Value = IIf(vDataBaseInicio <> Nothing, vDataBaseInicio, DBNull.Value)
ComandoModificaPendente.Parameters.Add([Ô]@DataBaseFim[Ô], OleDbType.Date).Value = IIf(vDataBaseFim <> Nothing, vDataBaseFim, DBNull.Value)
ComandoModificaPendente.Parameters.Add([Ô]@AutorNota[Ô], OleDbType.VarWChar, 50).Value = IIf(vAutorNota <> Nothing, vAutorNota, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@StatusProgramacao[Ô], OleDbType.VarWChar, 255).Value = vStatusProgramacao
ComandoModificaPendente.Parameters.Add([Ô]@DataInicioReal[Ô], OleDbType.Date).Value = IIf(vDataInicioReal <> Nothing, vDataInicioReal, DBNull.Value)
ComandoModificaPendente.Parameters.Add([Ô]@DataFimReal[Ô], OleDbType.Date).Value = IIf(vDataFimReal <> Nothing, vDataFimReal, DBNull.Value)
ComandoModificaPendente.Parameters.Add([Ô]@LocalSAP[Ô], OleDbType.VarWChar, 255).Value = IIf(vLocalSAP <> Nothing, vLocalSAP, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Executante[Ô], OleDbType.VarWChar, 255).Value = IIf(vExecutante <> Nothing, vExecutante, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@MotivoIndisponivel[Ô], OleDbType.VarWChar, 255).Value = IIf(vMotivoIndisponivel <> Nothing, vMotivoIndisponivel, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@StatusSAP[Ô], OleDbType.VarWChar, 255).Value = IIf(vStatusSAP <> Nothing, vStatusSAP, DBNull.Value)
ComandoModificaPendente.Parameters.Add([Ô]@TipoAtividade[Ô], OleDbType.VarWChar, 255).Value = IIf(vTipoAtividade <> Nothing, vTipoAtividade, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@ImpactoFalha[Ô], OleDbType.VarWChar, 1).Value = IIf(vImpactoFalha <> Nothing, vImpactoFalha, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@OrdemNova[Ô], OleDbType.Boolean).Value = False
ComandoModificaPendente.Parameters.Add([Ô]@Medida[Ô], OleDbType.VarWChar, 50).Value = IIf(vItemMedida <> Nothing, vItemMedida, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Criticidade[Ô], OleDbType.VarWChar, 50).Value = IIf(vCriticidade <> Nothing, vCriticidade, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@StatusMedida[Ô], OleDbType.VarWChar, 50).Value = IIf(vStatusMedida <> Nothing, vStatusMedida, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Plano[Ô], OleDbType.VarWChar, 50).Value = IIf(vPlanoManutencao <> Nothing, vPlanoManutencao, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@HHPlanejado[Ô], OleDbType.VarWChar, 50).Value = IIf(vHHPrevisto <> Nothing, vHHPrevisto, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@HHRealizado[Ô], OleDbType.VarWChar, 50).Value = IIf(vHHRealizado <> Nothing, vHHRealizado, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@DataAtualizacao[Ô], OleDbType.Date).Value = Now()
ComandoModificaPendente.Parameters.Add([Ô]@CodPlanejamento[Ô], OleDbType.VarWChar, 50).Value = IIf(vCodPlanejamento <> Nothing, vCodPlanejamento, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@StatusUsuario[Ô], OleDbType.VarWChar, 50).Value = IIf(vStatusUsuario <> Nothing, vStatusUsuario, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@AcompanhaIndice[Ô], OleDbType.Boolean).Value = vAcompanhaIndice
ComandoModificaPendente.Parameters.Add([Ô]@TextoLongo[Ô], OleDbType.LongVarWChar).Value = IIf(vTextoLongo <> Nothing, Convert.ToString(vTextoLongo.ToString), [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@NumeroAplat[Ô], OleDbType.VarWChar, 255).Value = IIf(vNumeroAplat <> Nothing, vNumeroAplat, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Etapa[Ô], OleDbType.VarWChar, 255).Value = IIf(vEtapa <> Nothing, vEtapa, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@DescricaoEtapa[Ô], OleDbType.VarWChar, 255).Value = IIf(vDescricaoEtapa <> Nothing, Convert.ToString(vDescricaoEtapa.ToString), [Ô][Ô])
ComandoModificaPendente.CommandText = [Ô]UPDATE tblOrdem SET [Ô] & CamposModificarPendente & vParametro
ComandoModificaPendente.ExecuteNonQuery()
Else
[ô]ComandoModificaEncerrada.CommandText = [Ô]UPDATE tblOrdem SET [Ô] & CamposModificarEncerrada & vParametro
ComandoModificaEncerrada.Parameters.Clear()
ComandoModificaEncerrada.Parameters.Add([Ô]@TipoNota[Ô], OleDbType.VarWChar, 2).Value = IIf(vTipoNota <> Nothing, vTipoNota, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Nota[Ô], OleDbType.VarWChar, 50).Value = IIf(vNota <> Nothing, vNota, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Ordem[Ô], OleDbType.VarWChar, 10).Value = vOrdem
ComandoModificaEncerrada.Parameters.Add([Ô]@OrdemSuperior[Ô], OleDbType.VarWChar, 50).Value = IIf(vOrdemSuperior <> Nothing, vOrdemSuperior, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@LocalInstalacao[Ô], OleDbType.VarWChar, 100).Value = IIf(vLocalInstalacao <> Nothing, vLocalInstalacao, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Responsavel[Ô], OleDbType.VarWChar, 255).Value = IIf(vResponsavel <> Nothing, vResponsavel, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@TextoBreve[Ô], OleDbType.VarWChar, 100).Value = Convert.ToString(vTextoBreve)
ComandoModificaEncerrada.Parameters.Add([Ô]@DataBaseInicio[Ô], OleDbType.Date).Value = IIf(vDataBaseInicio <> Nothing, vDataBaseInicio, DBNull.Value)
ComandoModificaEncerrada.Parameters.Add([Ô]@DataBaseFim[Ô], OleDbType.Date).Value = IIf(vDataBaseFim <> Nothing, vDataBaseFim, DBNull.Value)
ComandoModificaEncerrada.Parameters.Add([Ô]@AutorNota[Ô], OleDbType.VarWChar, 50).Value = IIf(vAutorNota <> Nothing, vAutorNota, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@StatusProgramacao[Ô], OleDbType.VarWChar, 255).Value = vStatusProgramacao
ComandoModificaEncerrada.Parameters.Add([Ô]@DataInicioReal[Ô], OleDbType.Date).Value = IIf(vDataInicioReal <> Nothing, vDataInicioReal, DBNull.Value)
ComandoModificaEncerrada.Parameters.Add([Ô]@DataFimReal[Ô], OleDbType.Date).Value = IIf(vDataFimReal <> Nothing, vDataFimReal, DBNull.Value)
ComandoModificaEncerrada.Parameters.Add([Ô]@LocalSAP[Ô], OleDbType.VarWChar, 255).Value = IIf(vLocalSAP <> Nothing, vLocalSAP, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Executante[Ô], OleDbType.VarWChar, 255).Value = IIf(vExecutante <> Nothing, vExecutante, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@MotivoIndisponivel[Ô], OleDbType.VarWChar, 255).Value = IIf(vMotivoIndisponivel <> Nothing, vMotivoIndisponivel, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@StatusSAP[Ô], OleDbType.VarWChar, 255).Value = IIf(vStatusSAP <> Nothing, vStatusSAP, DBNull.Value)
ComandoModificaEncerrada.Parameters.Add([Ô]@TipoAtividade[Ô], OleDbType.VarWChar, 255).Value = IIf(vTipoAtividade <> Nothing, vTipoAtividade, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@ImpactoFalha[Ô], OleDbType.VarWChar, 1).Value = IIf(vImpactoFalha <> Nothing, vImpactoFalha, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@OrdemNova[Ô], OleDbType.Boolean).Value = False
ComandoModificaEncerrada.Parameters.Add([Ô]@Medida[Ô], OleDbType.VarWChar, 50).Value = IIf(vItemMedida <> Nothing, vItemMedida, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Criticidade[Ô], OleDbType.VarWChar, 50).Value = IIf(vCriticidade <> Nothing, vCriticidade, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@StatusMedida[Ô], OleDbType.VarWChar, 50).Value = IIf(vStatusMedida <> Nothing, vStatusMedida, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Plano[Ô], OleDbType.VarWChar, 50).Value = IIf(vPlanoManutencao <> Nothing, vPlanoManutencao, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@HHPlanejado[Ô], OleDbType.VarWChar, 50).Value = IIf(vHHPrevisto <> Nothing, vHHPrevisto, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@HHRealizado[Ô], OleDbType.VarWChar, 50).Value = IIf(vHHRealizado <> Nothing, vHHRealizado, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@DataAtualizacao[Ô], OleDbType.Date).Value = Now()
ComandoModificaEncerrada.Parameters.Add([Ô]@CodPlanejamento[Ô], OleDbType.VarWChar, 50).Value = IIf(vCodPlanejamento <> Nothing, vCodPlanejamento, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@StatusUsuario[Ô], OleDbType.VarWChar, 50).Value = IIf(
Private Sub Modificar_BD()
Try
If Not vStatusProgramacao = [Ô]Encerrado[Ô] Then
[ô]ComandoModificaPendente.CommandText = [Ô]UPDATE tblOrdem SET [Ô] & CamposModificarPendente & vParametro
ComandoModificaPendente.Parameters.Clear()
ComandoModificaPendente.Parameters.Add([Ô]@TipoNota[Ô], OleDbType.VarWChar, 2).Value = IIf(vTipoNota <> Nothing, vTipoNota, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Nota[Ô], OleDbType.VarWChar, 50).Value = IIf(vNota <> Nothing, vNota, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Ordem[Ô], OleDbType.VarWChar, 10).Value = vOrdem
ComandoModificaPendente.Parameters.Add([Ô]@OrdemSuperior[Ô], OleDbType.VarWChar, 50).Value = IIf(vOrdemSuperior <> Nothing, vOrdemSuperior, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@LocalInstalacao[Ô], OleDbType.VarWChar, 100).Value = IIf(vLocalInstalacao <> Nothing, vLocalInstalacao, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Responsavel[Ô], OleDbType.VarWChar, 255).Value = IIf(vResponsavel <> Nothing, vResponsavel, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@TextoBreve[Ô], OleDbType.VarWChar, 100).Value = Convert.ToString(vTextoBreve)
ComandoModificaPendente.Parameters.Add([Ô]@DataBaseInicio[Ô], OleDbType.Date).Value = IIf(vDataBaseInicio <> Nothing, vDataBaseInicio, DBNull.Value)
ComandoModificaPendente.Parameters.Add([Ô]@DataBaseFim[Ô], OleDbType.Date).Value = IIf(vDataBaseFim <> Nothing, vDataBaseFim, DBNull.Value)
ComandoModificaPendente.Parameters.Add([Ô]@AutorNota[Ô], OleDbType.VarWChar, 50).Value = IIf(vAutorNota <> Nothing, vAutorNota, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@StatusProgramacao[Ô], OleDbType.VarWChar, 255).Value = vStatusProgramacao
ComandoModificaPendente.Parameters.Add([Ô]@DataInicioReal[Ô], OleDbType.Date).Value = IIf(vDataInicioReal <> Nothing, vDataInicioReal, DBNull.Value)
ComandoModificaPendente.Parameters.Add([Ô]@DataFimReal[Ô], OleDbType.Date).Value = IIf(vDataFimReal <> Nothing, vDataFimReal, DBNull.Value)
ComandoModificaPendente.Parameters.Add([Ô]@LocalSAP[Ô], OleDbType.VarWChar, 255).Value = IIf(vLocalSAP <> Nothing, vLocalSAP, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Executante[Ô], OleDbType.VarWChar, 255).Value = IIf(vExecutante <> Nothing, vExecutante, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@MotivoIndisponivel[Ô], OleDbType.VarWChar, 255).Value = IIf(vMotivoIndisponivel <> Nothing, vMotivoIndisponivel, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@StatusSAP[Ô], OleDbType.VarWChar, 255).Value = IIf(vStatusSAP <> Nothing, vStatusSAP, DBNull.Value)
ComandoModificaPendente.Parameters.Add([Ô]@TipoAtividade[Ô], OleDbType.VarWChar, 255).Value = IIf(vTipoAtividade <> Nothing, vTipoAtividade, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@ImpactoFalha[Ô], OleDbType.VarWChar, 1).Value = IIf(vImpactoFalha <> Nothing, vImpactoFalha, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@OrdemNova[Ô], OleDbType.Boolean).Value = False
ComandoModificaPendente.Parameters.Add([Ô]@Medida[Ô], OleDbType.VarWChar, 50).Value = IIf(vItemMedida <> Nothing, vItemMedida, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Criticidade[Ô], OleDbType.VarWChar, 50).Value = IIf(vCriticidade <> Nothing, vCriticidade, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@StatusMedida[Ô], OleDbType.VarWChar, 50).Value = IIf(vStatusMedida <> Nothing, vStatusMedida, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Plano[Ô], OleDbType.VarWChar, 50).Value = IIf(vPlanoManutencao <> Nothing, vPlanoManutencao, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@HHPlanejado[Ô], OleDbType.VarWChar, 50).Value = IIf(vHHPrevisto <> Nothing, vHHPrevisto, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@HHRealizado[Ô], OleDbType.VarWChar, 50).Value = IIf(vHHRealizado <> Nothing, vHHRealizado, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@DataAtualizacao[Ô], OleDbType.Date).Value = Now()
ComandoModificaPendente.Parameters.Add([Ô]@CodPlanejamento[Ô], OleDbType.VarWChar, 50).Value = IIf(vCodPlanejamento <> Nothing, vCodPlanejamento, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@StatusUsuario[Ô], OleDbType.VarWChar, 50).Value = IIf(vStatusUsuario <> Nothing, vStatusUsuario, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@AcompanhaIndice[Ô], OleDbType.Boolean).Value = vAcompanhaIndice
ComandoModificaPendente.Parameters.Add([Ô]@TextoLongo[Ô], OleDbType.LongVarWChar).Value = IIf(vTextoLongo <> Nothing, Convert.ToString(vTextoLongo.ToString), [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@NumeroAplat[Ô], OleDbType.VarWChar, 255).Value = IIf(vNumeroAplat <> Nothing, vNumeroAplat, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@Etapa[Ô], OleDbType.VarWChar, 255).Value = IIf(vEtapa <> Nothing, vEtapa, [Ô][Ô])
ComandoModificaPendente.Parameters.Add([Ô]@DescricaoEtapa[Ô], OleDbType.VarWChar, 255).Value = IIf(vDescricaoEtapa <> Nothing, Convert.ToString(vDescricaoEtapa.ToString), [Ô][Ô])
ComandoModificaPendente.CommandText = [Ô]UPDATE tblOrdem SET [Ô] & CamposModificarPendente & vParametro
ComandoModificaPendente.ExecuteNonQuery()
Else
[ô]ComandoModificaEncerrada.CommandText = [Ô]UPDATE tblOrdem SET [Ô] & CamposModificarEncerrada & vParametro
ComandoModificaEncerrada.Parameters.Clear()
ComandoModificaEncerrada.Parameters.Add([Ô]@TipoNota[Ô], OleDbType.VarWChar, 2).Value = IIf(vTipoNota <> Nothing, vTipoNota, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Nota[Ô], OleDbType.VarWChar, 50).Value = IIf(vNota <> Nothing, vNota, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Ordem[Ô], OleDbType.VarWChar, 10).Value = vOrdem
ComandoModificaEncerrada.Parameters.Add([Ô]@OrdemSuperior[Ô], OleDbType.VarWChar, 50).Value = IIf(vOrdemSuperior <> Nothing, vOrdemSuperior, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@LocalInstalacao[Ô], OleDbType.VarWChar, 100).Value = IIf(vLocalInstalacao <> Nothing, vLocalInstalacao, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Responsavel[Ô], OleDbType.VarWChar, 255).Value = IIf(vResponsavel <> Nothing, vResponsavel, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@TextoBreve[Ô], OleDbType.VarWChar, 100).Value = Convert.ToString(vTextoBreve)
ComandoModificaEncerrada.Parameters.Add([Ô]@DataBaseInicio[Ô], OleDbType.Date).Value = IIf(vDataBaseInicio <> Nothing, vDataBaseInicio, DBNull.Value)
ComandoModificaEncerrada.Parameters.Add([Ô]@DataBaseFim[Ô], OleDbType.Date).Value = IIf(vDataBaseFim <> Nothing, vDataBaseFim, DBNull.Value)
ComandoModificaEncerrada.Parameters.Add([Ô]@AutorNota[Ô], OleDbType.VarWChar, 50).Value = IIf(vAutorNota <> Nothing, vAutorNota, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@StatusProgramacao[Ô], OleDbType.VarWChar, 255).Value = vStatusProgramacao
ComandoModificaEncerrada.Parameters.Add([Ô]@DataInicioReal[Ô], OleDbType.Date).Value = IIf(vDataInicioReal <> Nothing, vDataInicioReal, DBNull.Value)
ComandoModificaEncerrada.Parameters.Add([Ô]@DataFimReal[Ô], OleDbType.Date).Value = IIf(vDataFimReal <> Nothing, vDataFimReal, DBNull.Value)
ComandoModificaEncerrada.Parameters.Add([Ô]@LocalSAP[Ô], OleDbType.VarWChar, 255).Value = IIf(vLocalSAP <> Nothing, vLocalSAP, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Executante[Ô], OleDbType.VarWChar, 255).Value = IIf(vExecutante <> Nothing, vExecutante, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@MotivoIndisponivel[Ô], OleDbType.VarWChar, 255).Value = IIf(vMotivoIndisponivel <> Nothing, vMotivoIndisponivel, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@StatusSAP[Ô], OleDbType.VarWChar, 255).Value = IIf(vStatusSAP <> Nothing, vStatusSAP, DBNull.Value)
ComandoModificaEncerrada.Parameters.Add([Ô]@TipoAtividade[Ô], OleDbType.VarWChar, 255).Value = IIf(vTipoAtividade <> Nothing, vTipoAtividade, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@ImpactoFalha[Ô], OleDbType.VarWChar, 1).Value = IIf(vImpactoFalha <> Nothing, vImpactoFalha, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@OrdemNova[Ô], OleDbType.Boolean).Value = False
ComandoModificaEncerrada.Parameters.Add([Ô]@Medida[Ô], OleDbType.VarWChar, 50).Value = IIf(vItemMedida <> Nothing, vItemMedida, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Criticidade[Ô], OleDbType.VarWChar, 50).Value = IIf(vCriticidade <> Nothing, vCriticidade, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@StatusMedida[Ô], OleDbType.VarWChar, 50).Value = IIf(vStatusMedida <> Nothing, vStatusMedida, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@Plano[Ô], OleDbType.VarWChar, 50).Value = IIf(vPlanoManutencao <> Nothing, vPlanoManutencao, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@HHPlanejado[Ô], OleDbType.VarWChar, 50).Value = IIf(vHHPrevisto <> Nothing, vHHPrevisto, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@HHRealizado[Ô], OleDbType.VarWChar, 50).Value = IIf(vHHRealizado <> Nothing, vHHRealizado, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@DataAtualizacao[Ô], OleDbType.Date).Value = Now()
ComandoModificaEncerrada.Parameters.Add([Ô]@CodPlanejamento[Ô], OleDbType.VarWChar, 50).Value = IIf(vCodPlanejamento <> Nothing, vCodPlanejamento, [Ô][Ô])
ComandoModificaEncerrada.Parameters.Add([Ô]@StatusUsuario[Ô], OleDbType.VarWChar, 50).Value = IIf(
Percebo que vc está indo de registro em registro, transferindo seus valores para variáveis e depois criando os parâmetros. Acho que dá pra tentar atacar o problema de 1 forma: Usar BeginTrans e CommitTrans caso não estejam sendo usados.
Se for Access, acho que só resolve mesmo se vc rodar sua rotina no Servidor, pois pela rede é osso essa quantidade de registros pro Access.
Se for Access, acho que só resolve mesmo se vc rodar sua rotina no Servidor, pois pela rede é osso essa quantidade de registros pro Access.
Tópico encerrado , respostas não são mais permitidas