Unfortunately CoreData is closed source and is distributed as part of the Mac OS X SDK so there is no way to update it.
2014-06-05 13:33 GMT+02:00 RSmith <rsm...@rsweb.co.za>: > > On 2014/06/05 13:21, Lasse Jansen wrote: > >> Hi, >> >> we have a Mac app that uses CoreData which internally uses SQLite. Some of >> the queries are not expressible within CoreData, so we send them manually >> using the sqlite library that comes with Mac OS X. Now some of our users >> have reported that their database file got corrupted and after some >> researching I think it's because of multiple copies of SQLite being linked >> into the same application as described here: >> >> http://www.sqlite.org/howtocorrupt.html >> >> Even though we link CoreData to our application and CoreData uses sqlite >> internally we still have to explicitly link libsqlite as the CoreData >> version of sqlite is inaccessible due to the usage of >> two-level-namespacing. >> >> So I have two questions: >> 1. Can this be solved without dropping CoreData? >> 2. If not, is there a workaround that we could use until we replaced >> CoreData with something of our own? >> >> I'm thinking of this: >> As the problem seems to occur due to calling close() and we only use >> libsqlite for read-only access, would just not closing the read-only >> database connection prevent the corruption? >> > > Closing the DB is not optional, it is implicit. Calling "Close()" simply > closes it prematurely, but if you do not call close, it will close anyway > when the program/thread terminates. > > If I may suggest, in stead of trying trickery or dropping some part of the > system, is it not possible to rather update both to the latest release? > That way you get to keep everything with all the functionality and all the > goodness and without any corruption. > > Not sure if you are linking Coredata statically or compiling it as linked > code into your app, also I am not that familiar with Coredata, but either > way I am sure you can get the latest coredata or if you compile it, link in > the latest SQLite. > > Trying to dance around the old version is never a good idea but sometimes > needed where you cannot control the code that access it... but you seem to > not have that problem. > > Maybe someone else here already did this with Coredata. Anyone? > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users