【问题标题】:Does Parrot have a database interface or API?Parrot 有数据库接口或 API 吗?
【发布时间】:2008-11-21 21:55:07
【问题描述】:

快速搜索给了我这个 2004 年 1 月的 announcement of Parrot DBDI 和一个似乎早已死去的 dbdi-dev mailing list。 Parrot DBDI 还在开发中吗?有人在为 Parrot 开发不同的数据库 API 或接口吗?

【问题讨论】:

    标签: database dbi parrot


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

      来自DBI::Roadmap 1.607 手册,日期为 2004 年 11 月:

      大部分工作将是 翻译 DBI C 和 Perl 基础 类代码到 Parrot PIR,或 生成 PIR 的合适语言。 该项目停滞不前,因为 Parrot 没有 当时具有关键功能。 已经解决了,但是项目 尚未重新启动。

      这个post 来自 Darren Duncan 于 2005 年 5 月:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-03
        • 2012-06-21
        • 1970-01-01
        • 2011-07-10
        • 2011-08-04
        • 2019-01-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多