_______ .__ .__ .__ .__ \ \ ____ __ __ _______ |__|| | | | |__| ____ ____ / | \ _/ __ \ | | \\_ __ \| || | | | | | / _ \ / \ / | \\ ___/ | | / | | \/| || |__| |__| |( <_> )| | \ \____|__ / \___ >|____/ |__| |__||____/|____/|__| \____/ |___| / =========\/======\/=================================================\/== v0.01 04/JUL/2007 (C) Copyright 2007-2007 Scott D. Yelich SOME RIGHTS RESERVED .,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.-*~'`^`'~*-,._.,-*~'`^`'~*-,. The software is released under Creative Commons - Attribution 3.0 unported see: http://creativecommons.org/licenses/by/3.0/legalcode See "LICENSE" for text, URL above for latest version. See "INSTALL" for information on installation (and usage). See "TODO" for ideas about what could be done in a next version. The Xql3 here implements its own "exec" -- that is similar, but not exactly the same as the legacy exec. This is the third version of simple class to facilitate working with sqlite3 from C++. The first verion used the convenience function sqlite3_get_table which kept the entire result set in memory. The second version used the legacy "exec" and a "two-step" double callback with the first being a static member function receiving a passed in void* pointer that was static cast to Xql3 and then called a virtual callback. Wow, fugly. Buried in the docs, it states that use of "prepare" plus "step" is the new and preferred method of accessing the sqlite3 system, so although the legacy exec did just this, there were a few other legacy dependencies and if those were changed, it would probably break some code. Therefore, this class will implement an "exec" that is similar to the legacy exec. This exec will call a virtual callback that if not overridden, simply returns (ie: returned results are ignored). This version of the class handles multi-part SQL statements. Enjoy! Scott