Error compiling PocketPC target on PC with ActiveSync 4.0
Previous Topic  Next Topic 

Problem:        On a development PC with ActiveSync 4.0, attempting to compile a PocketPC target with CDB databases fails with an error message "SFrmUt Error - Error -  Unable to delete \Temp|SFTempTable.cdb. Path: \Temp\SFTempTable.cdb".  It is followed by a  few more error messages.


Solution:        Microsoft ActiveSync 4.0 comes with new Windows Mobile 5 based devices, while ActiveSync 3.x comes with Windows Mobile PocketPC 2002/2003/2003SE devices.  This problem occurs when trying to compile an application with a PocketPC target (PocketPC 2002, PocketPC 2003, WinMobile 5, WinCE.NET) that uses the Microsoft CDB device database format to any PocketPC device.  ActiveSync 4.0 is required to synchronize WinMobile 5 devices.


This article is updated Feb 1, 2007 with an easier solution to this problem.


There are known problems using Microsoft CDB databases on Windows Mobile 5 devices with ActiveSync 4.x.  These problems are caused by changes to ActiveSync that Microsoft made in version 4.x, which is required for WM5 devices.  With Satellite Forms, one way that this problem manifests itself is when you go to compile a PocketPC project that includes CDB database tables, with a connected WM5 device/emulator.  App Designer attempts to use the CDB database conversion services of ActiveSync to generate the device database tables, and ActiveSync 4 will error out, causing the device db creation to fail.  This results in a somewhat cryptic error in App Designer: "SFrmUt Error - Error -  Unable to delete \Temp|SFTempTable.cdb. Path: \Temp\SFTempTable.cdb".  That is usually followed by a  few more error messages.  The end result is that the compile process fails due to the device database creation failure.


This is not an issue with Satellite Forms 7 and higher which supports PDB database files on PocketPC.  PDBs offer numerous advantages over CDBs and we highly recommend that solution, but if you're using SF 6.x then the PDB solution will not be available to you.



[Old Information - Obsolete with Satellite Forms 8]


The original KB article on this topic discussed a possible solution of uninstalling AS4, installing AS 3.8, and then installing AS4 over that without uninstalling.  Sometimes this works, sometimes it does not.  It is also difficult to locate the older ActiveSync 3.8 installer these days.


Now, a fellow Satellite Forms developer Tim Fischer informed us of a new, simpler way to solve this problem.  We've tested this solution

here, and it appears to work for all of our tests.  If you are faced with this issue, we encourage you to try this suggestion and report your results.


The CDB compile problem can be solved by applying some registry changes to the PC that the PocketPC device is connected to.  Create a text file named AS4CompileRegFix.reg with these contents:


--- cut here ---


Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\SharedDLLs]

"C:\\Program Files\\Microsoft ActiveSync\\cefstore.dll"=dword:00000000

"C:\\Program Files\\Microsoft ActiveSync\\adofiltr.dll"=dword:00000000

"C:\\Program Files\\Microsoft ActiveSync\\inetrepl.dll"=dword:00000000

"C:\\Program Files\\Microsoft ActiveSync\\inkreg.dll"=dword:00000000

"C:\\Program Files\\Microsoft ActiveSync\\pwdreg.dll"=dword:00000000

"C:\\Program Files\\Microsoft ActiveSync\\pwiofcnv.dll"=dword:00000000

"C:\\Program Files\\Microsoft ActiveSync\\pwireg.dll"=dword:00000000

"C:\\Program Files\\Microsoft ActiveSync\\pwoffcnv.dll"=dword:00000000


--- cut here ---



Disconnect the PocketPC device.  Apply these registry changes by double-clicking on the .reg file you just created.  You will be asked to confirm  the registry changes.  Once they have been confirmed, you can reconnect the PDA, and you should be able to successfully compile your PocketPC project without any CDB creation errors!



If this tip helps you out, be sure to let Tim know:


Tim Fischer

Enlighten Development LLC

Secure Solutions Since 1991


edev@hotmail.com

http://www.enlighten-dev.com




The older KB article information is archived below.


---



This error only occurs on development PCs that did not have a version of Microsoft ActiveSync 3.x installed prior to version 4.0.


A workaround to solve this problem on the development PC is to do the following:


1. Uninstall Microsoft ActiveSync 4.0 using the Add/Remove control panel.  Restart the PC if prompted.


2. Install Microsoft ActiveSync 3.8 downloaded from the Microsoft PocketPC support website:


        http://www.microsoft.com/windowsmobile/downloads/activesync38.mspx


3. Without uninstalling ActiveSync 3.8, install ActiveSync 4.0 (i.e. upgrade to AS 4.0).  The installer should detect the current version and ask if you wish to replace the current installation of ActiveSync.  Click Next to proceed with the upgrade.  Restart the PC if prompted.


You should now be able to successfully compile PocketPC targets using Microsoft ActiveSync 4.0, to PocketPC, WinMobile 5, and WinCE.NET targets.  You should be able to successfully sync with all of your PocketPC devices.



Keywords:      ActiveSync, Windows Mobile 5, WinMobile 5, PocketPC, SFTempTable.cdb, SFrmUt


KB ID: 10022 

Updated: 2010-06-22


Satellite Forms KnowledgeBase Online

Satellite Forms Website Home