我不知道使用一个相对于另一个有什么优点和缺点。这个问题源自我在这里得到的建议:根据记录的实际大小为数据库查询动态分配缓冲区。
我正在寻找重要差异的列表(而不是详尽的列表),这将有助于我做出有根据的决策。我有win32 ::
odbc的工作经验,可以对此进行真正的证明。如果有人可以在“书面”详细信息的基础上分享他/她的经验,那将非常有帮助。
附加信息:Win32 ::
ODBC的作者在此处写道:http :
//www.roth.net/perl/odbc/docs/ODBC_Docs.htm-
“可以使用Win32 :: ODBC的几种替代方法,例如数据库接口( DBI)版本,称为DBD :: ODBC。此ODBC
Perl扩展可在Mac和UNIX等不同平台上使用,尽管缺少Win32 :: ODBC的某些功能,但它还是用于ODBC访问数据库的好工具。 ”
我想知道您是否知道它缺少的功能。
我选择DBI
堆栈的主要原因是灵活性和广泛的测试人员/调试人员。这样一来,DBI
您就可以选择使用特定于您的特定数据库引擎的驱动程序。是的,大多数数据库还提供ODBC驱动程序,但是某些特定功能可能无法使用,或者通过该特定API更加麻烦。此外,它DBI
是独立于平台的,因此将来任何可能的移植到另一个OS的麻烦都大大减少了。最后,DBI
用于数据库访问的人员数量
远远 超过了使用的人员Win32::ODBC
,这意味着可能会更快地发现并修补错误。
在查看另一个链接的问题时,我注意到您正在使用Oracle。使用时,DBI
您可以选择在内部使用DBD::ODBC
还是DBD::Oracle
在内部使用。您可以通过简单地更改DBI->connect
方法的参数之一来进行选择。
如果使用的是Oracle Instant
Client,则使用DBD::Oracle
可以节省在仅需要通过Perl进行访问的计算机上下载/安装ODBC组件的麻烦。当然,从等式中删除ODBC层也可能有好处。
更新 :Win32 ::
ODBC是ODBC中间件API从C到Perl的相对直接转换。如果您愿意将自己限制为Windows上的ODBC连接,那么这样做确实具有相对较小的优势,即可以直接控制正在控制基础数据库的ODBC中间件层。当然,这并不意味着ODBC
API特别忠实于基础数据库的API和/或功能。
同样,假设您使用的是Oracle,您似乎有3种选择:
Win32::ODBC
-> ODBC-> Oracle的ODBC驱动程序〜> Oracle客户端-> Oracle服务器DBI
-> DBD::Oracle
〜> Oracle客户端-> Oracle ServerDBI
-> DBD::ODBC
〜> ODBC-> Oracle的ODBC驱动程序〜> Oracle Client-> Oracle Server“〜>”位于需要“填充”一个API以适合另一个API的层的右侧。
现在,我可以理解,如果您发现对ODBC中间件的API保真度是理想的。就个人而言,我宁愿具有DBI
&所使用的较短软件堆栈的灵活性DBD::Oracle
。尽管我还会猜测DBD::ODBC
,即使使用两个垫片层,涉及的较长堆栈也可以满足所有需求的99%以上。
DBI
&之间的另一个区别Win32::ODBC
是,围绕堆栈构建了 许多
模块DBI
。整个DBIx
命名空间都取决于它。在metacpan.org上搜索每个模块,然后单击其页面上的“反向依赖关系”链接,您将清楚地看到Perl社区为每个模块分配的相对价值。
因此,如果您需要其他纯粹自私的理由:具有DBI经验的Perl开发人员也将发现自己 有 更大的需求。严重地。
DBD-ODBC 为 Perl 的 DBI::DBD 提供了 ODBC 驱动的功能,允许 Perl 程序通过它访问各种 ODBC 数据源。在 Unix 平台上支持 unixODBC 和 iODBC。
DBD::mysql - database driver for Perl This is the Perl DBI driver for access to MySQL databases. Usage Usage is described in DBD::mysql. Building and Testing Using Docker We've include some basic dock
Cego-DBD 实现了 Perl 的 DBD 驱动,用于连接 Cego 数据库系统。
DBD::SQLite 是一个 Perl DBI 驱动程序,用来连接 SQLite 数据库。
主要内容:创建 ODBC 连接,连接到 ODBC,取回记录,从记录中取回字段,关闭 ODBC 连接,ODBC 实例ODBC 是一种应用程序编程接口(Application Programming Interface,API),使我们有能力连接到某个数据源(比如一个 MS Access 数据库)。 创建 ODBC 连接 通过一个 ODBC 连接,您可以连接到您的网络中的任何计算机上的任何数据库,只要 ODBC 连接是可用的。 这是创建到达 MS Access 数据库的 ODBC 连接的方法: 在控
在Ruby下使用ODBC的扩展类库。