Parrot 有数据库接口或 API 吗?

发布于 2024-07-08 14:40:52 字数 307 浏览 12 评论 0原文

快速搜索给了我这个 Parrot DBDI 的公告从 2004 年 1 月开始,dbdi-dev 邮件列表似乎早就死了。 Parrot DBDI 还在开发中吗? 有人在为 Parrot 开发不同的数据库 API 或接口吗?

A quick search gave me this announcement of Parrot DBDI from January 2004 and a dbdi-dev mailing list which appears to be long dead. Is Parrot DBDI still being developed? Is anyone working on a different database API or interface for Parrot?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

戈亓 2024-07-15 14:40:52

DBDI 旨在创建类似于当前 DBI 和 DBD 模块的数据库驱动程序接口。 它已经死了,因此开发人员现在改用现有的接口 - Java JDBI。 Tim Bunce(曾开发过 DBI 1,但没有太多时间开发其续集)和 Simon Cozens 是这样的两个开发人员:

http://perlbuzz.com/2008/12/database-access-in-perl-6-is-coming- down-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<>

DBDI was an effort to create a database driver interface like the current DBI and DBD modules. It died, so developers are now using an existing interface instead - the Java JDBI. Two such developers are Tim Bunce (who worked on DBI 1, but hasn't had much time to work on its sequel) and 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();

This module should be available to all Parrot languages, not just Perl 6.


Actually for Perl 6 we'll probably see an SQL quote operator so you can do stuff like this:

$conn.prepareStatement( Q:sql<INSERT INTO foo (bar, baz) VALUES($bar, $baz)> );

And of course in Perl 6 quote modifiers like Q:sql can be abbreviated, e.g. to qs<> or sql<>

葵雨 2024-07-15 14:40:52

来自 2004 年 11 月的 DBI::Roadmap 1.607 手册:

大部分工作将是
翻译 DBI C 和 Perl 基础
类代码放入 Parrot PIR 中,或者
生成 PIR 的合适语言。
该项目因 Parrot 未完成而陷入停滞
具有当时的关键功能。
这个问题已经解决了,但是项目
尚未重新启动。

这篇来自 Darren Duncan 的帖子 2005 年 5 月:

我相信它会再次启动的
很快。 看看,一些主要的
缺少的先决条件现在即将到来
在线,所以有了这些,我们
可以开始工作了。

我找不到比这更新的东西了。 Parrot 本身的进步有点缓慢,因此也许为了与 Parrot 平台保持兼容,DBDI 也是如此。 :-)

From the DBI::Roadmap 1.607 manual, dated Nov 2004:

The bulk of the work will be
translating the DBI C and Perl base
class code into Parrot PIR, or a
suitable language that generates PIR.
The project stalled, due to Parrot not
having key functionality at the time.
That has been resolved but the project
has not yet restarted.

This post from Darren Duncan in May 2005:

I believe it will start up again very
soon now. See, a number of the main
missing prerequisites are now coming
online, and so with those in place we
can start work.

I can't find anything more recent than that. Parrot itself is kind of glacial in its progress, so perhaps to remain compatible with the Parrot platform, DBDI is too. :-)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文