Compartilhar via


Gravando um aplicativo interoperável

Sempre que um aplicativo usa o mesmo código em mais de um driver, esse código deve ser interoperável entre esses drivers. Na maioria dos casos, essa é uma tarefa fácil. Por exemplo, o código para buscar linhas com um cursor de somente avanço é o mesmo para todos os drivers. Em alguns casos, isso pode ser mais difícil. Por exemplo, o código para construir identificadores para uso em instruções SQL precisa considerar o caso do identificador, aspas e convenções de nomenclatura de uma parte, de duas partes e de três partes.

Em geral, o código interoperável deve lidar com problemas de suporte de recursos e variabilidade de recursos. O suporte a funções refere-se a se uma função específica é suportada ou não. Por exemplo, nem todos os DBMSs dão suporte a transações e o código interoperável deve funcionar corretamente, independentemente do suporte à transação. A variabilidade do recurso refere-se à variação na maneira como há suporte para um recurso específico. Por exemplo, os nomes de catálogo são colocados no início dos identificadores em alguns DBMSs e no final dos identificadores em outros.

Os aplicativos podem lidar com o suporte a recursos e a variabilidade de recursos em tempo de design ou em tempo de execução. Para lidar com o suporte e a variabilidade de recursos em tempo de design, um desenvolvedor examina os DBMSs e drivers de destino e garante que o mesmo código seja interoperável entre eles. Geralmente, essa é a maneira como aplicativos com interoperabilidade baixa ou limitada lidam com esses problemas.

Por exemplo, se o desenvolvedor garantir que um aplicativo vertical funcionará apenas com quatro DBMSs específicos e se cada um desses DBMSs der suporte a transações, o aplicativo não precisará de código para verificar o suporte à transação em tempo de execução. Ele sempre pode assumir que as transações estão disponíveis devido à decisão de tempo de design de usar apenas quatro DBMSs, cada uma das quais dá suporte a transações.

Para lidar com o suporte e a variabilidade de recursos em tempo de execução, o aplicativo deve testar diferentes funcionalidades em tempo de execução e agir adequadamente. Geralmente, essa é a maneira como aplicativos altamente interoperáveis lidam com esses problemas. Para problemas de suporte a recursos, isso significa escrever código que torna o recurso opcional ou escrever código que emula o recurso quando ele não está disponível. Para problemas de variabilidade de recursos, isso significa escrever código que dá suporte a todas as variações possíveis.

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