首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在WAL模式下打开SQLite连接

如何在WAL模式下打开SQLite连接
EN

Stack Overflow用户
提问于 2013-04-08 09:56:00
回答 4查看 18.2K关注 0票数 15

在C#中,如何打开SQLite connection in WAL mode

下面是我如何在正常模式下打开:

代码语言:javascript
复制
SQLiteConnection connection = new SQLiteConnection("Data Source=" + file);
connection.Open();
// (Perform my query)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-08 10:31:35

在SQLiteConnection连接字符串中指定的工厂方法如何?

例如,用于

代码语言:javascript
复制
public static class Connection
{
    public abstract SQLiteConnection NewConnection(String file);
}

public class NormalConnection : Connection 
{
  public override SQLiteConnection NewConnection(String file)
  {
     return new SQLiteConnection("Data Source=" + file);
  }
}

public class WALConnection : Connection 
{
  public override SQLiteConnection NewConnection(String file)
  {
    return new SQLiteConnection("Data Source=" + file + ";PRAGMA journal_mode=WAL;"
  }
}

代码没有经过测试,但我希望你能理解,所以当你使用它的时候,你可以这样做。

代码语言:javascript
复制
   SQLiteConnection conWal = new WALConnection(file);
    conWAL.Open();

    SQLiteConnection conNormal = new NormalConnection(file);
    conNormal.Open();
票数 13
EN

Stack Overflow用户

发布于 2013-04-08 11:48:45

下面这行就是我要找的,非常感谢Turbot,它的答案包括了它:

代码语言:javascript
复制
new SQLiteConnection("Data Source=" + file + ";PRAGMA journal_mode=WAL;")
票数 9
EN

Stack Overflow用户

发布于 2013-06-15 19:47:20

WAL模式的持久性

与其他日志记录模式不同,PRAGMA journal_mode=WAL是持久的。如果进程设置了WAL模式,然后关闭并重新打开数据库,则数据库将返回WAL模式。

http://www.sqlite.org/wal.html

如果我理解正确的话,这意味着您可以为数据库设置一次WAL模式,不需要在每个连接上都设置它。

您可以使用SQLite的命令行外壳来完成此操作:http://www.sqlite.org/sqlite.html

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15870104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档