[odb-users] Question about packaging the generated code for each database into a separate dynamic-link library

Boris Kolpackov boris at codesynthesis.com
Mon Aug 18 07:03:13 EDT 2014


Hi Marcos,

Marcos Gonzalez Menendez <marcos.glez at gmail.com> writes:

> I have the followind doubts:

I am kind of surprised since the above paragraph answers all (well,
most of) these questions directly:


> - Does person.dll contain only person-odb.* code?

Yes: "placing person-odb.cxx and person.cxx into person.dll"


> - Does person.dll export any symbol?

Yes, your executable will use the API provided by person.hxx and
person-odb.hxx, so you have to export their symbols.


> - Does person-sqlite.dll contain only person-odb-sqlite.* code?

Yes: "placing [...], person-odb-sqlite.cxx into person-sqlite.dll"


> - Does person-sqlite.dll export any symbol?

It depends: "Note that in the pure dynamic multi-database support,
person-sqlite.dll and person-pgsql.dll do not export any symbols."
So, if you don't need to "drop down" to static SQLite API, then
you don't need to export any symbols from this DLL.


> - Does person-sqlite.dll ling to person.dll?

Yes: "... person-sqlite.dll and person-pgsql.dll, which both link to
person.dll"


> - Does person.exe need a LoadLibrary call for loading person-sqlite.dll?

Yes.


> Coudl you give me an example of this?

There is an internal test that we use to test various multi-database
setups. You can use it as a reference though note that it has some
extra macros that select a particular configuration that you won't
need (and that may make undestanding what's going on a bit trciky).
The ODB command lines that were used to generate the *-odb files
are in the README file.

http://codesynthesis.com/~boris/tmp/odb/multi-db.zip

Boris



More information about the odb-users mailing list