On 4/19/07, Joe Wilson <[EMAIL PROTECTED]> wrote:
--- DragonK <[EMAIL PROTECTED]> wrote: > I'm having the following problem: a sqlite database file is on an NTFS > filesystem, in a directory with no permissions to create new files, but only > to modify the original database. By using filemon i've noticed some access > denied errors when sqlite attempted to create the journal files. > I've created a sepparate test case and (by using filemon again) i've noticed > that indeed, sqlite uses the journal file, even outside transactions (an > insert sql was executed). > > My question is how can I stop this behaviour (creating/deleting the journal) > so that sqlite will work properly under the scenario described above (when > it can't create the journal)? No problem - just create your own virtual file system in a file and change sqlite's I/O functions: /* ** An instance of the following structure contains pointers to all ** methods on an OsFile object. */ struct IoMethod { int (*xClose)(OsFile**); int (*xOpenDirectory)(OsFile*, const char*); int (*xRead)(OsFile*, void*, int amt); int (*xWrite)(OsFile*, const void*, int amt); int (*xSeek)(OsFile*, i64 offset); int (*xTruncate)(OsFile*, i64 size); int (*xSync)(OsFile*, int); void (*xSetFullSync)(OsFile *id, int setting); int (*xFileHandle)(OsFile *id); int (*xFileSize)(OsFile*, i64 *pSize); int (*xLock)(OsFile*, int); int (*xUnlock)(OsFile*, int); int (*xLockState)(OsFile *id); int (*xCheckReservedLock)(OsFile *id); int (*xSectorSize)(OsFile *id); }; I don't know of any other way given your constraints. See also: Single-file virtual file systems http://en.wikipedia.org/wiki/Virtual_file_system __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ----------------------------------------------------------------------------- To unsubscribe, send email to [EMAIL PROTECTED] -----------------------------------------------------------------------------
Thanks everybody for answering. I'm going to move the database in a directory with the proper permissions... -- ...it's only a matter of time...