Partilhar via


Escrever 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 os drivers. Na maioria dos casos, isso é fácil. Por exemplo, o código para efetuar fetch de linhas com um cursor de somente avanço é o mesmo para todos os drivers. Em alguns casos, pode ser mais difícil. Por exemplo, o código para construir identificadores para uso em instruções SQL precisa considerar maiúsculas e minúsculas, 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 a recursos e de variabilidade de recursos. O suporte a recursos se refere ao fato de haver ou não suporte para um recurso específico. Por exemplo, nem todos os DBMSs dão suporte a transações, e o código interoperável deve funcionar corretamente, haja ou não suporte para transações. A variabilidade de recursos se refere à variação no modo como há suporte para um dado recurso. Por exemplo, os nomes de catálogo ficam no início dos identificadores em alguns SGBDs e no final dos identificadores em outros.

Os aplicativos podem lidar com o suporte a recursos e com 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 os drivers de destino e garante que o mesmo código seja interoperável entre eles. Geralmente é assim que os aplicativos que têm 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 cada um desses DBMSs der suporte a transações, o aplicativo não precisará de código para verificar o suporte a transações em tempo de execução. Ele sempre poderá presumir que as transações estão disponíveis devido à decisão em tempo de design de usar apenas quatro DBMSs, cada um deles com suporte para transações.

Para lidar com o suporte a recursos e com a variabilidade em tempo de execução, o aplicativo deve testar diferentes recursos em tempo de execução e agir de acordo. Geralmente é assim que aplicativos que têm interoperabilidade alta lidam com esses problemas. Para problemas de suporte a recursos, isso significa escrever código que torne o recurso opcional ou escrever código que emule 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 tópicos a seguir.