
On Sun, 16 Apr 2006 19:58:03 +0000 (UTC), Steve Hutton wrote
On 2006-04-15, Reece Dunn <msclrhd@hotmail.com> wrote:
First a question for Reece -- didn't you put together the Boost.Database stuff in the sandbox? It's been awhile since I looked, but is there anything there that could be used to forward a combined proposal?
The tuple idea is interesting. SOCI supports selecting into a generic Row object, which can iterated over, or interrogated by column name:
...snip details
Your suggestion of the use of a RowSet class is interesting. SOCI supports selecting to/from vector<int>, vector<string>, etc. The context in which we added support for these features was to support high performance bulk operations...the fetch() mechanism was already in place as the default way to iterate over a rowset.
But we haven't yet added support for vector<Row> or vector<MyType>. So in these cases there's just the one way to interate over rows in a result set - the fetch() function.
I was planning on adding support for vector<Row> and vector<MyType>, as a performance optimization for bulk operations.
But now I can see that having these two means of iterating over result sets might be a little confusing to users.
Not to make this harder, but I wonder if we need to step back a level. Perhaps an iterator interface that allows users bind the data into an stl collection of their choice? Perhaps allows control over the number of results to pull at a time from the database? In some cases I might want the results in a set or list instead of the other options. As I recall DTL can do this. I'm not precluding the need to have a rowset or some other custom type, but the question of binding to standard collection will surely come up as an issue. Jeff