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...