VB: lidando com erros de timeout em servidores OLE

Visual Basic, VB .NET, ASP, Active X, Access, SQL Server

VB: lidando com erros de timeout em servidores OLE

Você talvez já tenha se deparado com uma estranha mensagem ao iniciar uma operação demorada numa aplicação cliente de um servidor OLE. Por exemplo, sua aplicação pode estar comandando um objeto do Excel para gerar planilhas e, após algum tempo de espera, o usuário fica impaciente e começa a dar cliques de mouse pensando que a aplicação está travada. A aplicação, então, responde a estes eventos com uma mensagem confusa e em inglês capaz de causar estranheza até mesmo em alguém que é programador. Este artigo trata de como você pode agir para modificar estas mensagens tornando-as algo mais compreensível e dotado de sentido para o seu usuário.

O objeto App do VB possui algumas propriedades que caem no esquecimento da maioria dos programadores e são a resposta para lidar com o problema acima. Estas propriedades são:

OLERequestPendingTimeout
OLERequestPendingMsgText
OLERequestPendingMsgTitle
OLEServerBusyTimeOut
OLEServerBusyMsgText
OLEServerBusyMsgTitle
OLEServerBusyRaiseError

As propriedades OLERequestPendingMsgText e OLERequestPendingMsgTitle podem ser usadas para modificar a mensagem exibida nestas circunstâncias de modo a melhor refletir a situação real, e o tempo de espera após o qual a mensagem será exibida pode ser controlado pela propriedade OLERequestPendingTimeout.

Uma mensagem estranha também é exibida quando o servidor OLE rejeita uma solicitação do cliente. A aplicação cliente continua tentando até transcorrerem os milisegundos especificados na propriedade OLEServerBusyTimeOut. As propriedades OLEServerBusyMsgText e OLEServerBusyMsgTitle permitem que você modifique a mensagem a ser exibida nestas situações.

A propriedade OLEServerBusyRaiseError determina se uma solicitação rejeitada pelo servidor gera um erro na aplicação cliente ao invés da exibição da mensagem de "ocupado". Gerando um erro quando o servidor OLE rejeita uma solicitação faz com que o controle volte para o seu programa, que pode então exibir uma caixa de diálogo própria no lugar da janela padrão de servidor ocupado ou da mensagem customizada. O erro de OLE Automation que é disparado nestes caso tem o número -2147418111 (&h80010001).