是否可以在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。
只需按照以下步骤进行操作
- 创建一个新项目。
- 转到引用,然后右键单击那里的引用,您将获得管理NuPackage单击它。
- 在线搜索Sqlite-net包,安装该包。
- 再次右键单击References并单击add refrences,在Extension部分中,您将获得两个未经检查的参考MS visual C ++运行时和Sqlite Windows运行时。检查引用并添加引用。它将在您的解决方案资源管理器中显示两个CS文件。
- 现在从https://github.com/doo/SQLite3-WinRT下载Zip文件它将为您提供在项目中使用cs文件的包装器。
- 在任何位置解压缩。
- 现在在项目中转到FILE-> ADD->现有项目 - >并浏览您的解压缩位置。在那里,您将在SQLite3Component中获得一个文件SQLite3Component.vcxproj。添加该文件。
- 现在包装项目已包含在您的项目中。
- 现在,在解压缩的文件中,您将获得SQLite3JS文件夹复制该文件夹并粘贴到您的解决方案资源管理器中。
- 现在您已准备好在项目中使用sqlite。
- 尝试构建您的项目,它将显示两个错误,即winres.h文件不存在。为此,转到错误位置重命名为winresrc.h并再次构建它。现在它将构建,您可以在项目中使用sqlite。
- 要使用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)');
我希望所有这些步骤都能帮到你。
醇>