【问题标题】:Sqlite implementation for console Dart application控制台 Dart 应用程序的 Sqlite 实现
【发布时间】:2013-02-05 14:55:28
【问题描述】:

我想在 dart 中测试 sqlite,但是我能找到的唯一实现是 Sam McCall 在 Github 上的,但是它已经过时了。虽然我可以尝试更新它,但我对 Dart 还不是很熟悉。

我也读过,但无法确认 VM 中提供了 sqlite 访问,但仅适用于非 html 程序。我读到的引用说“可能存在其他问题,因为 Dart 可执行文件现在包含 sqlite 库,作为 NSS(来自 Mozilla 的网络安全服务)的一部分,用于在 dart:io 中实现安全套接字。” .正如我所说,我不确定这是否正确。

我想将 sqlite 与“dart:html”一起使用,而“dart.io”不能与“dart.html”一起使用,但是在控制台应用程序中使用它是一个开始。

虽然 dart 提供 indexed_db,但我不认为它可以替代 sql。此外,虽然数据库访问可能主要被认为是服务器端的需求,但客户端显然也有需求(例如,离线时等)。

还有可能转换成js的问题,不过这不是我关心的问题。

对此的任何帮助将不胜感激。

【问题讨论】:

  • 将 SQLite 与 dart:html 一起使用是不行的。 dart:html 库是为在浏览器中编程而设计的(实际上,它只在浏览器中可用)。在浏览器中编程时,您受限于浏览器为您提供的内容。有IndexedDB,差不多就是这样。过去有 WebSQL,本质上是浏览器中的 SQLite,但那是历史。
  • 浏览器外部,或者连接到本地 Dart 服务器的浏览器内部呢?我发现 Indexed_db 的问题是,虽然它可能可以完成我想要的大部分或全部操作,但在应用程序之外的维护方面,我想要并且可能需要使用 sql。然后,还有 Dart 服务器端和 sql 访问需要考虑。

标签: dart


【解决方案1】:

正如 Ladislav 所提到的,您不能将 sqlite 与 dart:html 一起使用,因为基于浏览器的应用程序只能访问浏览器平台提供的内容。

WebSQL 基本上是 Sqlite。它仍然存在,在移动设备上得到很好的支持,但规范已经死了。如果这是您想要的,它应该可以正常工作。

对于命令行 Dart,您可能需要查看 SqlJocky,它是 Dart 命令行 VM 的 MySQL 驱动程序。在这里查看:https://github.com/jamesots/sqljocky

希望有帮助!

【讨论】:

  • 谢谢赛斯。在这个阶段我是新手,但是,我认为浏览器 SQL 支持是必不可少的(对于某些应用程序)。注意到您的 cmets re WebSql 和第 3 方。我接受 Goog 正在为此付费,而且它必须首先满足他们的需求。顺便说一句,Dart 太棒了 - 21 世纪(恕我直言)。
  • 赛斯,你可能知道以下几点。是否相关? “请注意,sqlite 现在静态链接到 Dart 可执行文件,作为安全网络支持的一部分,但它不会暴露给用户(或扩展?)。如果这个扩展真的有用,很高兴看看它是否可以使用已在可执行文件中的库。但这可能是不可能的。可能存在安全问题,或者我们没有公开库函数以链接到扩展。请注意,我们确实公开了 Dart API但是,可执行文件中的函数到扩展名。.."
  • 布莱恩,我不知道。有趣!
猜你喜欢
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2010-10-24
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 2015-09-03
相关资源
最近更新 更多