On 17 February 2013 11:08, lk <[email protected]> wrote:
> Hello,
>
> While considering using SOCI sql library, I wondered if you could answer
> some of the following questions:
>
> 1. Does SOCI support MsSql and Sybase database types, including support for
> stored procedures? is the ODBC driver useful for Sybase?

ATM, the only option is ODBC for these two databases.
I have successfully run SOCI tests against the SQL Server, but not Sybase.
Looking at the tests, the stored procedures have been tested with
Oracle, PostgreSQL, MySQL.
For ODBC, there is some related implementation but I haven't been
looking into details myself.
One would have to copy and update the test cases (i.e. from Oracle's
test-oracle.cpp)
and see if they run. That would be a first basic check.
(FYI, ODBC support has been considered as 'possibly incomplete',
and it's just recently that Vadim has given it some major updates.)

> 2. Does it utilize native bulk write apis for bulk write

It's specific to backends, whoever implements a backend has freedom to
decide on that matter.
You'd have to scan the sources to see if the API you are interested is
in use in SOCI.

For Oracle, only OCIBindByPos and OCIBindByName is used.
For PostgreSQL, there is specific comment no bulk API is used
currently, but it would be a nice project to add support and use of
PQgetCopydata and PQputCopydata.

> 3. Can you specify a list of companies using SOCI?

I've started slow process of collecting some data lately:

https://github.com/SOCI/soci/wiki/Uses

Apart from that, I've seen some posts from developers at trading
and scientific companies here, but nothing confirmed.

> 4. Licensing, is it possible to change the code? what is the procedure for
> changing the code?

http://www.boost.org/LICENSE_1_0.txt

"Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:"

If you are willing to contribute your changes to SOCI, the simplest procedure
which is convenient for both sides and makes it easy to review contributions is:

1. Fork SOCI repository https://github.com/SOCI/soci
2. Create topic branch
3. Apply your changes in topic branch
4. Publish your topic branch in your GitHub fork
5. Submit pull request back to SOCI

Alternatively, you can post patches to the list, but history shows that such
patches frequently get lost in the archives and are never addressed.

> 5. Can a product use the library without exposing its source code?

Safest answer to give is "ask your lawyer" :)

Here you have in-depth analysis of all the requirements and rights of
Boost Software License

http://www.boost.org/users/license.html

In particular, this point is of your concern:

"[BSL] Must not require that the source code be available for
execution or other binary uses of the library"


> 6. Support, suppose there is some problem, can there be support?

Most common way is to post your problem here.
But, as you have noticed, SOCI is driven by a very small team, so there is
always risk in not receiving help on time, or at all.

Some members of SOCI team may be able to provide commercial support,
so I'd suggest to post your call. Maciej Sobczak, original developer of SOCI,
may be able to do that as well at his company http://inspirel.com/

> 7. Is there a community of users for the library?

There are ~230 human beings subscribed to this list, so yes, there is
a community of users.

> 8. Can the library compile for Solaris, AIX and HP-UX?

Generally, SOCI will work everywhere wherever decent C++ toolset and
database client libraries required by SOCI are available.
We have seen successfull reports as well as bug fixes uses those systems
(there should be findable in the soci-devel and soci-users archives).

> 9. How complicated is it to add support for native sybase ct-lib and MsSql
> ole-db to SOCI?

For someone experienced with native client libraries for Sybse or SQL Server,
it should not be complicated at all.
First step, copy src/backends/empty sources to src/backends/sybase and start
filling implementing the minimal set of methods.
Next, look for more advanced features in other backends and reproduce
for your new backend.

The backend interface is not very complex, overview here:
http://soci.sourceforge.net/doc/backends.html

Looking at inbox archives, I've found patch with prototype of DB2 backend,
Here is related ticked with the patch linked, so you can see what's
the rough extent of work.

https://github.com/SOCI/soci/issues/70

> 10. Does SOCI support CLob/Text types?

This is again, backend specific.
TEXT type is generally supported.
BLOB support available in all backends but MySQL.
CLOB (i.e. SQLT_CLOB type in Oracle) is not supported, but has been
been on TODO list for long time :)

I hope I've managed to answer most of your questions.

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net

------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, 
is your hub for all things parallel software development, from weekly thought 
leadership blogs to news, videos, case studies, tutorials, tech docs, 
whitepapers, evaluation guides, and opinion stories. Check out the most 
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
soci-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/soci-users

Reply via email to