我可以在WinRT应用程序(javascript)中使用Sqlite吗?

时间:2011-10-20 11:12:50

标签: javascript sqlite windows-8 windows-runtime

是否可以在Windows 8(winRT)javascript应用程序中使用Sqlite数据库?

我想要实现的是下载Sqlite数据库并在使用前将其存储在本地存储中。我相信基于javascript的WinRT应用程序可以使用某种形式的本地存储,但我想知道Sqlite在这种情况下是否可用。

我也知道Sqlite的.Net实现使用了一些win32调用,我相信windows8 app cerififcation进程不会允许这些调用。

5 个答案:

答案 0 :(得分:8)

JavaScript提供HTML5 IndexedDB开箱即用。

至于SQLite,您可以使用它,前提是您首先将其包装为可以从JavaScript中使用的WinRT组件,例如:使用C ++ / CX。它的API表面不是那么大,所以它当然是可能的。我刚刚尝试过编译SQLite for Metro,并且只有少数Win32 API调用在应用程序容器中不可用并且必须被替换 - 没什么大不了的。

答案 1 :(得分:5)

我们为此创建了SQLite3-WinRT。它是SQLite的WinRT组件包装器,它通过了Windows metro风格的app认证。它还包括一个易于使用的JavaScript抽象。

答案 2 :(得分:2)

答案 3 :(得分:1)

是的,Windows 8 RTM现在支持SQLite数据库。您现在可以从Windows Dev Center下载所有内容(Windows 8,工具,示例)。

答案 4 :(得分:1)

是您可以在WinRT计算机中使用SQLite。 只需按照以下步骤进行操作

  1. 创建一个新项目。
  2. 转到引用,然后右键单击那里的引用,您将获得管理NuPackage单击它。
  3. 在线搜索Sqlite-net包,安装该包。
  4. 再次右键单击References并单击add refrences,在Extension部分中,您将获得两个未经检查的参考MS visual C ++运行时和Sqlite Windows运行时。检查引用并添加引用。它将在您的解决方案资源管理器中显示两个CS文件。
  5. 现在从https://github.com/doo/SQLite3-WinRT下载Zip文件它将为您提供在项目中使用cs文件的包装器。
  6. 在任何位置解压缩。
  7. 现在在项目中转到FILE-> ADD->现有项目 - >并浏览您的解压缩位置。在那里,您将在SQLite3Component中获得一个文件SQLite3Component.vcxproj。添加该文件。
  8. 现在包装项目已包含在您的项目中。
  9. 现在,在解压缩的文件中,您将获得SQLite3JS文件夹复制该文件夹并粘贴到您的解决方案资源管理器中。
  10. 现在您已准备好在项目中使用sqlite。
  11. 尝试构建您的项目,它将显示两个错误,即winres.h文件不存在。为此,转到错误位置重命名为winresrc.h并再次构建它。现在它将构建,您可以在项目中使用sqlite。
    1. 要使用SQLite3JS的.js文件,请在html页面中提供js文件的src,如SQLite3JS \ js \ SQLite3.js,您将在其中使用sqlite。 在这里,我给你一些在js中使用sqlite的例子 //这将创建数据库名称db.sqlite并尝试创建表名称Notes。如果它不存在 var dbPath = Windows.Storage.ApplicationData.current.localFolder.path +' \ db.sqlite&#39 ;; SQLite3JS.openAsync(DBPATH) .then(function(db){   return db.runAsync(' CREATE TABLE Notes(id TEXT PRIMARY KEY,notes TEXT)'); 我希望所有这些步骤都能帮到你。