我刚学习编程(Delphi)。 今天我用MinGW推出了Sqlite3.dll(基于sqlite 3.8.6的sqlcipher 3.2.0)。
现在我尝试制作程序:
sqlite3_open_v2(dbname,dbhandle,flags,vfx);
我希望使用nomutex在读/写模式下打开连接。
在文档中我看到:
sqlite3_open_v2()接口的作用类似于sqlite3_open(),除了它接受两个附加参数以进一步控制新数据库连接。 sqlite3_open_v2()的flags参数可以采用以下三个值之一,可选择与SQLITE_OPEN_NOMUTEX,SQLITE_OPEN_FULLMUTEX,SQLITE_OPEN_SHAREDCACHE,SQLITE_OPEN_PRIVATECACHE和/或SQLITE_OPEN_URI标志组合使用:
SQLITE_OPEN_READONLY 数据库以只读模式打开。如果数据库尚不存在,则返回错误。 SQLITE_OPEN_READWRITE 如果可能,将打开数据库以进行读写,或仅在文件受操作系统写保护时才读取数据库。在任何一种情况下,数据库必须已经存在,否则返回错误。
SQLITE_OPEN_READWRITE 0x00000002 SQLITE_OPEN_NOMUTEX 0x00008000
为什么这个结构不起作用(不能打开db):
sqlite3_open_v2(dbname,dbhandle,$00000002 and $00008000 ,nil);
但这项建设工作:
sqlite3_open_v2(dbname,dbhandle,$00000002 or $00008000 ,nil);
我可以添加两个标志00000002 + 00008000 = 00008002吗?