编写交互式应用程序

当一个应用程序对多个驱动程序使用相同的代码时,这些代码必须在这些驱动程序之间是可互操作的。 在大多数情况下,这是一项简单的任务。 例如,对于所有驱动程序来说,使用只进游标提取行的代码是相同的。 但在某些情况下,这可能就稍有困难了。 例如,构造要在 SQL 语句中使用的标识符的代码需要考虑标识符的大小写、引号以及一段、两段和三段命名约定。

通常情况下,可互操作代码必须应对功能支持和功能可变性问题。 功能支持是指是否支持特定功能。 例如,并非所有 DBMS 都支持事务,而且无论是否支持事务,可互操作的代码都必须正常工作。 功能可变性是指支持特定功能的方式的变化。 例如,在一些 DBMS 中,目录名称位于标识符的开头,而在其他 DBMS 中则位于标识符的末尾。

应用程序可以在设计时或运行时应对功能支持和功能可变性问题。 要在设计时应对功能支持和功能可变性问题,开发人员需要查看目标 DBMS 和驱动程序,并确保同一代码在它们之间可互操作。 这通常是互操作性低或有限的应用程序应对这些问题的方法。

例如,如果开发人员保证垂直应用程序仅适用于四个特定的 DBMS,并且其中每个 DBMS 都支持事务,则应用程序不需要代码在运行时检查对事务的支持。 它始终会假定事务是可用的,因为在设计时决定只使用 四个 DBMS,且每个 DBMS 都支持事务。

要在运行时应对功能支持和功能可变性问题,应用程序必须在运行时测试不同的功能,并采取相应的行动。 这通常是互操作性高的应用程序应对这些问题的方法。 对于功能支持问题,这意味着编写使功能可选的代码,或编写在功能不可用时模拟该功能的代码。 对于功能可变性问题,这意味着编写支持所有可能变化的代码。

本部分包含以下主题。