【问题标题】:Simple SD card compatible database / NoSql solution for Windows Phone 8适用于 Windows Phone 8 的简单 SD 卡兼容数据库/NoSql 解决方案
【发布时间】:2013-12-11 01:14:34
【问题描述】:

有人知道我的应用程序可以使用的适用于 Windows Phone 8 的良好数据库或 NoSql 引擎吗?

我需要能够从 SD 卡打开只读数据库文件。它需要能够处理存储 blob(png 图像),因为我想用它来提供地图图块以供离线使用。数据库中需要存储 100,000 个图像块。

我已经通过 C# 包装器尝试了SQLite for Windows Phone,但我似乎无法让它与位于 SD 卡上的数据库文件一起使用。

Windows Phone 应用程序访问位于 SD 卡上的文件存在一些限制,但有可能: http://msdn.microsoft.com/library/windowsphone/develop/jj720573%28v=vs.105%29.aspx

一位 Microsoft 员工对我使用 SQLite 的困难的反馈:

Windows Phone 应用可以使用以下方式从 SD 卡读取特定文件类型 Microsoft.Phone.Storage API。

我希望手机的 SQLite 实现会尝试打开 使用标准 C 文件 API 而不是使用存储的数据库 对象,因此要求数据库在 Xap 中或隔离 存储并且无法访问 SD 卡上的数据库(这是 绝对是用于 Windows 应用商店应用的 SQLite)。

来自 SQLite SDK 社区的反馈:

显然,为具有一些 C++ 技能的人添加对 SQLite SDK 的支持应该是相当直接的(我的有点生疏!):

回复:

我原来的问题:

【问题讨论】:

  • 您可以尝试使用 JSON/XML。将 PNG 图像存储为 base64 字符串。我不确定它是多么有效/可行的解决方案。
  • 感谢您的建议,但我认为它不会起作用...该文件将在多 GB 的大小范围内,因此无法将其全部加载到记忆。我猜想根据需要挑选出文本文件的一小部分以供使用将非常困难。需要一些非常复杂的代码才能想出引擎。然后可能需要提出一个索引等。然后在你知道之前我已经开发了一个 SQLite ;)
  • 您无法在 Windows Phone 上写入 SD。访问是只读的。 stackoverflow.com/questions/13177731/…
  • 这就是为什么我只想要只读访问 - “我需要能够从 SD 卡打开只读数据库文件”。
  • 也许作为 SQLite 问题的解决方法,您可以将图像拉出数据库并放到 SD 卡上。然后,您可以将数据库复制到隔离存储上并在那里访问它;您可以继续访问 SD 卡上的图像。您可能需要为您的应用注册 PNG 扩展名(或者您可以将扩展名更改为您的应用独有的内容 - 例如“.nztopopng”或类似的内容。

标签: c# database sqlite windows-phone-8 nosql


【解决方案1】:

从您的 cmets 看来,听起来完全不同的方法会更好。

您的要求似乎是最终用户负责使用他们的台式机/笔记本电脑将数据放在卡上。然后将卡插入手机。

如果是这种情况,那么最好的解决方案似乎是提供一个常规的桌面应用程序,该应用程序可以抓取 zip 文件中的图像,然后对目标卡执行解压缩操作。本质上,应用负责操作。

如果您需要有关这些图像的任何元数据,则应包含 json 或 xml 文件。

这应该比处理只读 SD 卡上的数据库要简单得多。

【讨论】:

  • 感谢您的建议 - 非常感谢。我不热衷于为 Windows、Mac、Linux 等创建一个常规的桌面应用程序,以各种风格来完成这项任务 - 似乎需要付出很多努力,而且我无法访问所有操作系统。但是,如果您通读上述问题的 cmets - 我实际上正在考虑将 openmcdf.sourceforge.net 作为一种潜在的解决方案,因此只需要一个文件即可以有效的方式提供所有地图图块。我目前正在尝试调整 OpemMCDF 以与 Windows Phone 一起使用 - 不过目前仍在试验中。
【解决方案2】:

对我有用的解决方案是采用 OpenMCDF 并将其调整为在 Windows Phone 8 上运行。我已在 GitHub 上提供了调整后的 OpenMCDF-wp8 解决方案:https://github.com/gavinharriss/OpenMCDF-wp8

我还解决了 Windows Phone 8 错误,该错误会阻止 Seek() 与从 ExternalStorageFile 类返回的 Stream 正常工作:https://github.com/gavinharriss/ExternalStorageFileWrapper-wp8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多