Partilhar via


Escrevendo um aplicativo interoperável

Sempre que uma aplicação utiliza o mesmo código contra mais do que um driver, esse código deve ser interoperável entre esses drivers. Na maioria dos casos, esta é uma tarefa fácil. Por exemplo, o código para buscar linhas com um cursor apenas para frente é o mesmo para todos os drivers. Em alguns casos, isto pode ser mais difícil. Por exemplo, o código para construir identificadores para uso em instruções SQL precisa de considerar casos de identificador, citação e convenções de nomeação de uma, duas e três partes.

Em geral, o código interoperável tem de lidar com problemas de suporte e variabilidade de funcionalidades. Suporte a funcionalidades refere-se a se uma determinada funcionalidade é suportada ou não. Por exemplo, nem todos os SGBD suportam transações, e o código interoperável tem de funcionar corretamente independentemente do suporte a transações. A variabilidade das características refere-se à variação na forma como uma determinada característica é suportada. Por exemplo, os nomes de catálogo são colocados no início dos identificadores em alguns SGBDs e no final dos identificadores noutros.

As aplicações podem lidar com suporte e variabilidade de funcionalidades no momento do design ou em tempo de execução. Para lidar com o suporte e a variabilidade das funcionalidades na fase de design, o desenvolvedor analisa os SGBDs e drivers de destino e garante que o mesmo código será interoperável entre todos eles. Esta é geralmente a forma como aplicações com baixa ou limitada interoperabilidade lidam com estes problemas.

Por exemplo, se o programador garantir que uma aplicação vertical funcionará apenas com quatro SGBDs particulares e se cada um desses SGBD suportar transações, a aplicação não precisa de código para verificar o suporte a transações em tempo de execução. Pode sempre assumir que as transações estão disponíveis devido à decisão em tempo de projeto de usar apenas quatro SGBD, cada um dos quais suporta transações.

Para lidar com o suporte a funcionalidades e a variabilidade em tempo de execução, a aplicação deve testar diferentes capacidades em tempo de execução e agir em conformidade. Esta é geralmente a forma como aplicações altamente interoperáveis lidam com estes problemas. Para problemas de suporte a funcionalidades, isto significa escrever código que torne a funcionalidade opcional ou escrever código que emule a funcionalidade quando esta não está disponível. Para problemas de variabilidade de características, isto significa escrever código que suporte todas as variações possíveis.

Esta seção contém os seguintes tópicos.