tags:

views:

605

answers:

3

Is there a good ORM (object relational manager) solution that can use the same database from C++, C#, Python?

It could also be multiple solutions, e.g. one per language, as long as they can can access the same database and use the same schema.

Multi platform support is also needed.

Clarification:

The idea is to have one database and access this from software written in several different programming languages. Ideally this would be provided by one ORM having APIs (or bindings) in all of these languages.

One other solution is to have a different ORM in each language, that use compatible schemas. However I believe that schema migration will be very hard in this setting.

+1  A: 

With SQLAlchemy, you can use reflection to get the schema, so it should work with any of the supported engines.

I've used this to migrate data from an old SQLite to Postgres.

Matthew Schinckel
Not really what I was looking for. I don't want to migrate to a different DB, rather I would like to access one schema from several programming languages using ORM(s)
Ber
@Ber: is this a clarification to your question? Please EDIT your question to add these new facts.
S.Lott
@Ber: The point was that SQLAlchemy can give you a class and table definition for the existing schema, so you don't have to declare it again in the code (or change it whenever the schema changes). Granted, C# and C++ don't have metaclasses, so for them you'll have to define the schema yourself.
Nikhil Chelliah
@Ber: ie, SqlAlchemy's just a good suggestion on the Python end of things. If you can interface from Python to the other languages, that would be the best choice.
Nikhil Chelliah
Thanks Nikhil - the migration was just an example: the point was that it was built on a pre-existing DB, and was just a reflection of the schema.
Matthew Schinckel
A: 

We have an O/RM that has C++ and C# (actually COM) bindings (in FOST.3) and we're putting together the Python bindings which are new in version 4 together with Linux and Mac support.

+1  A: 

I know DataAbstract for Pascal, C# and soon for objective C for Mac and Iphone but no Python support.

Hugues Van Landeghem