On Windows CE, you need to compile with SQLITE_OMIT_WAL.     SQLite
currently doesn't support the WAL journaling mode on CE.



On Tue, Aug 24, 2010 at 6:32 AM, Aleksandr Jr. <[email protected]> wrote:

> Hi.
>
> I got a problem when compiling SQLte 3.7.2 for Windows CE 4.2 (Windows
> Mobile 2003) - it cannot be done.
>
> In the function winShmSystemLock(...) is called API-function
> UnlockFileEx(...), but it is implemented only in Windows CE 5.0 and later
> (and there in winShmSystemLock(...) is used constant LOCKFILE_EXCLUSIVE_LOCK
> - it is not exists in WM 2003 SDK).
>
> I suggest solution (2 "patches" in winShmSystemLock(...)):
> 1.
> old code:
>  if( lockType == _SHM_WRLCK ) dwFlags |= LOCKFILE_EXCLUSIVE_LOCK;
>
> new code:
> #if SQLITE_OS_WINCE==1 && _WIN32_WCE!=0x420 && _WIN32_WCE!=420
>  if( lockType == _SHM_WRLCK ) dwFlags |= LOCKFILE_EXCLUSIVE_LOCK;
> #endif // WinCE 4.20?
>
> 2.
> old code:
>  if( lockType==_SHM_UNLCK ){
>    rc = UnlockFileEx(pFile->hFile.h, 0, nByte, 0, &ovlp);
>  }else{
>
> new code:
>  if( lockType==_SHM_UNLCK ){
> #if SQLITE_OS_WINCE==1 && _WIN32_WCE!=0x420 && _WIN32_WCE!=420
>    rc = UnlockFileEx(pFile->hFile.h, 0, nByte, 0, &ovlp);
> #else // WinCE 4.20?
>    rc = UnlockFile(pFile->hFile.h, ovlp.Offset, ovlp.OffsetHigh, nByte, 0);
> #endif // WinCE 4.20?
>  }else{
>
> I'm not sure whether I pass "right" parameters to the UnlockFile(...), it
> should be checked
>
> Why 2 conditions ("0x420" and "420")? In eVC 4.0 variable $(CEVER)
> (_WIN32_WCE get value from it) has "decimal form", but in VS2005 and later
> this variable has "hex. form".
>
> ---
> WBR,
> Aleksandr Jr.
>
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to