_______ .__ .__ .__ .__ \ \ ____ __ __ _______ |__|| | | | |__| ____ ____ / | \ _/ __ \ | | \\_ __ \| || | | | | | / _ \ / \ / | \\ ___/ | | / | | \/| || |__| |__| |( <_> )| | \ \____|__ / \___ >|____/ |__| |__||____/|____/|__| \____/ |___| / =========\/======\/=================================================\/== 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 uses the legacy "sqlite3_exec" function to execute SQL statements -- and if there is any return from the statements (ie: a SELECT) ... then a callback function is called for each. simple_v2a uses the default Xql3 callback_out which puts the header and result data information into the std::vector of strings in the Xql3 class. simple_v2b has a new class, Xql4, that extends Xql3 and then overrides the callback_out method. This callback puts header and data results into Xql4 class vector of string variables "h" and "d" -- respectively. The point of this, is that Xql4 didn't have to put the values into a vector, but could have done something else. It's probably also possible to register a different callback via the standard sqlite3 API, but this was only meant to be a simple test. Enjoy! Scott