题
快速搜索给了我 Parrot DBDI的公告从2004年1月起, dbdi-dev邮件列表这似乎已经很久了。 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 <!> lt; <!> gt;或者sql <!> lt; <!> gt;
其他提示
来自 DBI :: Roadmap 1.607 手册,注明日期2004年11月:
大部分工作将是 翻译DBI C和Perl基础 将代码编入Parrot PIR,或者a 适合生成PIR的语言。 由于Parrot没有,该项目停滞不前 当时拥有关键功能。 这已经解决了,但项目 还没有重新启动。
此发布 Darren Duncan于2005年5月:
我相信它会再次启动 很快。看,一些主要的 缺少先决条件现在即将到来 在线,以及那些我们在那里 可以开始工作了。
我找不到比这更新的东西了。鹦鹉本身在其进步中是冰冷的,所以也许与Parrot平台保持兼容,DBDI也是如此。 : - )