Jaa


Porting applications from CEDB to EDB

Howdy from MEDC!

If you are porting your apps to target Windows Mobile 5.0 you might be interested in porting your existing CEDB app to EDB.

I have written a whitepaper that outlines how to do this. You can find it at the following location.

https://liebela.net/cedb2edb.doc

(Note that I editted the old link again - this time we have a direct link to the document - finally!).

-Luis E. Cabrera

Comments

  • Anonymous
    May 10, 2005
    I am getting an Error 403. Can you give access to the document? Thanks.

    Keep blogging for us envious developers not in Vegas. :)

  • Anonymous
    May 11, 2005
    could you please make the document a little more available?

    I tried subscribing to the group but it seems that no-one is watching membership requests.

    If you post a link to a document in a weblog I would expect it to be more or less public available, not hidden behind a membership only group.

    I am very interested in the document so I hope it will become more available soon.

    Regards

    Rutger

  • Anonymous
    May 16, 2005
    Noticed that I changed the link. - this group should let anyone join it to read the document - it does not require approval. We are looking for a better solution to post files like this from the blog.

  • Anonymous
    May 19, 2005
    Hi,

    Still not able to access the document.
    Do you have an alternate solution? Can you make it avilable under the Mobile Solutions Partner Program site?

  • Anonymous
    May 19, 2005
    Ok, I changed the link one more time... this time we have a direct link. Sorry for the previous links.

  • Anonymous
    July 25, 2005

    Looks like who ever designed EDB APIs forgot a BIG requirement.. The ability to manuliate the "dirty" flag for the record.

    Without this ability you can not backup and restore the conents of the database without marking every record as changed and forcing every record to be sent back to the desktop during the desk sync...
    APIs like CeGetReplChangeBitsEx no longer work.

    Would be nice to have a post some where that suggests an alternative workaround...

    Jim R.
    jimtrowii@yahoo.com

  • Anonymous
    August 24, 2005
    Where can I find the FileDB.zip file?

  • Anonymous
    September 27, 2005
    I also would like to see the sample code.

    I'm stuck getting ERROR_INVALID_PARAMETER calling CeCreateDatabaseWithProps

  • Anonymous
    November 11, 2005
    Where can I find the FileDB.zip file?
    It is an object embedded in the Word document at http://liebela.net/cedb2edb.doc . Just double-click where it says FileDB.zip and Voila!

  • Anonymous
    February 23, 2006
    Posted by: Sue Loh
    Apparently I missed this post on the Windows Mobile team blog a long time back. ...

  • Anonymous
    February 26, 2006
    Is CEDB still usable on the current version of WM 5?  I upgraded my project from EVC++ to VS 2005 and updated deprecated functions where I could; however I don't see a replacement for CeOpenDatabaseEx2 - I'm getting a #pragma deprecated error C4995 building with that.

    Is there a way to get this to compile (avoid the pragma error) or a replacement function I should use?  We'll change it over eventually but we need a working app right now as a baseline.

    Dave

  • Anonymous
    February 27, 2006
    Made this change in windbase.h and I can now compile; not sure why it is an error rather than a warning:
    //#pragma warning(error:4995)
    #pragma warning(warning:4995)

  • Anonymous
    April 13, 2006
    Hi Dave,
    CEDB is still usable, however if you can convert to EDB that is the better choice.

    EDB API uses CeOpenDatabaseInSession for opening a database.

  • Anonymous
    June 05, 2006
    I think CEDB is not supported on Windows Mobile 5.0. Since i built the application for Mobile 5.0 successfully. I used "#define EDB" in my evc code as suggested in document in the link provided above. The application was built successfully, though i did not changed the DB function calls. But when tested on the device, it does not create the database. Since it gives errors in DB. I just kept my DB functions as it is. Is it the problem?
       Can anyone tell about it?

  • Anonymous
    June 05, 2006
    Ashok,

    As I mentioned in item 4, the APIs are extremely similar... but their use sometimes changes slightly. You have to be careful on the arguments you pass into the EDB APIs.

    I pasted item 4 below:
    4. Read the description of the EDB API on msdn
    The names of the APIs used for EDB are usually similar to those used for CEDB, but you need to make sure the arguments you pass to them are correct. Let’s take CeOidGetInfoEx2 as an example.  Looking at the documentation for both EDB and CEDB we notice that the signature of this API is the same in both cases:
    BOOL CeOidGetInfoEx2(
     PCEGUID pGuid,
     CEOID oid,
     CEOIDINFO* poidInfo
    );
    Notice that the use is slightly different though. On the EDB version,
    poidInfo->wVersion should be set to CEOIDINFOEX_VERSION. This is not obvious unless you carefully read the description of the parameters and for the EDB version.

  • Anonymous
    June 05, 2006
    The comment has been removed

  • Anonymous
    September 19, 2006
    It has come to my attention that I should call out that ISVs should use CEDB for ActiveSync "Sync Service Providers". CEDB is required for "legacy" SSPs (those not using the Airsync protocol). EDB doesn't support the dirty bit (CeSetReplChangeBitsEx ) used by the ActiveSync Manager, however CEDB does.

    Thanks!
    -Luis

  • Anonymous
    October 03, 2006
    So if you have to #define EDB in order to create/use EDB databases, does this consequently break access to CEDB databases?  How would we then migrate an existing CEDB database volume if we couldn't access them both within the same application?  In looking at windbase.h, it looks like a number of key constants are changed if EDB is #defined, which I would think would tend to break CEDB support.

  • Anonymous
    October 11, 2006
    Hello Is there any sample code available for .NET, for how to access a EDB-Database? Thanks Sven

  • Anonymous
    July 15, 2008
    Hello i have an application running on a SYMBOL PDA with Pocket Pc 2003 and i have to port to a SYMBOL whit Windows Mobile 6.0. This application have the data base control whith ADO CE 3.0 so, i'm trying to porting ADOCE30 to EDB (for windows mobile 6.0). Could you help me? I don't know what i have to do. I'm using the following files: VOConnection.cpp Encapsulates ADO Connection COM Object VOConnection.h Header file for VOConnection class VORecordset.cpp Encapsulates ADO Recordset COM Object VORecordset.h Header file for VORecordset class Thanks.

  • Anonymous
    July 15, 2008
    My e-mail is mawoferty@gmail.com Thanks

  • Anonymous
    August 22, 2008
    Hi, I have ported large Windows CE app from PocketPC 2002 to PocketPC 2003, WM 5.0 and WM6.0 devices. The app uses CEDB (about 80 tables some with cca 20 000 records) and I didnt make any big change in the enviroment settings. Everything seems to be working well, except speed of the app. On PocketPC 2003 is working fast but on WM5.0 is about 5 times slower. There is import/export of the whole DB done quit often and it makes an user angry as on PPC2003 it takes about 2 min while on WM5.0 about 30-40min :o(. Do u have any idea why is the CEDB so slow on WM5.0 and what do you recomend me to do? thanks a lot Miro

  • Anonymous
    February 11, 2009
    Hi, What kind of encryption is applied to EDB when the wszPassword volume option is used? I am interested to know if it complies to any standards. Many Thanks James Davis