【发布时间】:2008-11-21 21:55:07
【问题描述】:
快速搜索给了我这个 2004 年 1 月的 announcement of Parrot DBDI 和一个似乎早已死去的 dbdi-dev mailing list。 Parrot DBDI 还在开发中吗?有人在为 Parrot 开发不同的数据库 API 或接口吗?
【问题讨论】:
快速搜索给了我这个 2004 年 1 月的 announcement of Parrot DBDI 和一个似乎早已死去的 dbdi-dev mailing list。 Parrot DBDI 还在开发中吗?有人在为 Parrot 开发不同的数据库 API 或接口吗?
【问题讨论】:
DBDI 旨在创建类似于当前 DBI 和 DBD 模块的数据库驱动程序接口。它死了,所以开发人员现在改用现有的接口——Java JDBI。两个这样的开发者是 Tim Bunce(他曾参与 DBI 1,但没有太多时间来开发其续集)和 Simon Cozens:
http://perlbuzz.com/2008/12/database-access-in-perl-6-is-coming-along-nicely.html
use DBDI;
my $conn = DBDI::DriverManager.getConnection(
"dbdi:SQLite3:test.db", "", "");
my $stm = $conn.createStatement();
my $rs = $stm.executeUpdate("CREATE TABLE foo (bar, baz)");
my $stm = $conn.prepareStatement(
" INSERT INTO foo (bar, baz) VALUES (?, ?)");
$stm.setColumn(1, 123);
$stm.setColumn(2, "Thingy");
$stm.executeUpdate();
这个模块应该适用于所有 Parrot 语言,而不仅仅是 Perl 6。
实际上,对于 Perl 6,我们可能会看到一个 SQL 引用运算符,因此您可以执行以下操作:
$conn.prepareStatement( Q:sql<INSERT INTO foo (bar, baz) VALUES($bar, $baz)> );
当然,在 Perl 6 中,像 Q:sql 这样的引号修饰符可以缩写,例如到 qs 或 sql
【讨论】:
来自DBI::Roadmap 1.607 手册,日期为 2004 年 11 月:
大部分工作将是 翻译 DBI C 和 Perl 基础 类代码到 Parrot PIR,或 生成 PIR 的合适语言。 该项目停滞不前,因为 Parrot 没有 当时具有关键功能。 已经解决了,但是项目 尚未重新启动。
这个post 来自 Darren Duncan 于 2005 年 5 月:
我相信它会重新启动非常 现在很快。看,一些主要的 缺少的先决条件现在即将到来 在线,所以有了这些我们 可以开始工作了。
我找不到比这更近的东西了。 Parrot 本身的进展有点缓慢,所以也许为了与 Parrot 平台保持兼容,DBDI 也是如此。 :-)
【讨论】: