  | | | -none- | -none- 2007-09-04 - By Warren Young
Back Yassin wrote: >> In MySQL++ v2.3, the Result object must outlive the Row objects that >> come from it, but with storein(), the Result object only lasts as long >> as the storein() call. > > Can you explain me why?
MySQL++ is open source, and its code is pretty easy to read these days. Hint, hint.
If you had looked for references to Result in lib/row.cpp, you would have found that there are several places where calling a method on a Row delegates part of the function back to the Result object that created it. This was done for efficiency and simplicity: why make each Row carry extra copies of data its parent Result holds when it can just keep a pointer back to its parent and ask it when it needs the info?
The new Row code in v3.0 gets around this without a huge speed and space penalty by using a much more complex memory management scheme. (See recent posts to the list about reference counted smart pointers.) If I were the original authors of MySQL++, I wouldn't have wanted to make the memory management complex at such an early stage of development, either. It's only a sign of the increasing maturity of MySQL++ that we can do such things.
-- MySQL++ Mailing List For list archives: http://lists.mysql.com/plusplus To unsubscribe: http://lists.mysql.com/plusplus?unsub=mysql@(protected)
|
|
 |