为什么下面的代码不起作用:
#include <stdio.h>
#include <sqlite3.h>
int main(void)
{
sqlite3 *pDb;
sqlite3_stmt *stmt;
char *errmsg;
sqlite3_open(":memory:", &pDb);
sqlite3_exec(pDb, "CREATE TABLE Test(a INTEGER)", NULL, NULL, NULL);
sqlite3_exec(pDb, "INSERT INTO Test(a) VALUES(1)", NULL, NULL, NULL);
sqlite3_prepare_v2(pDb, "SELECT * FROM Test", -1, &stmt, NULL);
sqlite3_step(stmt);
sqlite3_exec(pDb, "ATTACH 'Test.db' as Other;", NULL, NULL, NULL);
sqlite3_exec(pDb, "DETACH Other;", NULL, NULL, &errmsg);
printf("error: %s\n", errmsg);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
error: database Other is locked
Run Code Online (Sandbox Code Playgroud)
如果我sqlite3_reset(stmt)在之后执行 a sqlite3_step(stmt),它就会起作用。
为什么不相关数据库上的 open 语句会锁定“其他”数据库?我在文档中找不到解释。
我想使用reveal.js 创建一个演示文稿。幻灯片会自动缩放以适合浏览器窗口。
但是,在 Firefox (47) 中,字体确实很模糊,无论是在 Windows 10 还是 Fedora 上。Chrome 在两个系统上看起来都不错,Edge 也是如此。
我在下面放了一张比较图:它显示了来自reveal.js 演示页面的“V” 。如您所见,Chrome 和 Edge 大约有 1 个像素的“抗锯齿边界”,而 Firefox 显示大约 3 个像素。真的很难看...
我该怎么做才能在 FF 中获得更清晰的演示?