
Hi, Beman Dawes wrote:
In general, providing two different interfaces to do the same thing is considered poor software design. But if divergent use case needs, performance, or other important considerations are present, having two different interfaces may be viewed as a real plus.
There is a lot of place for debating here. For example, std::copy might be considered to be just duplicating std::transform (with identity), but very few people would agree to drop it. But I get your point. SOCI provides a couple of seemingly unrelated ways of interfacing, but each of them has some rationale, from performance to distinction between static and dynamic bindings. In principle the library would go with just single-row-at-a-time dynamic bindings, but that would not allow us to exploit the ultimate performance that some servers can provide with direct binary data transport. I'm very confident that the interface will be thoroughly scrutinized here. ;-) -- Maciej Sobczak : http://www.msobczak.com/ Programming : http://www.msobczak.com/prog/