/sqlite3cc

To get this branch, use:
bzr branch http://bzr.ed.am/sqlite3cc

« back to all changes in this revision

Viewing changes to include/sqlite3cc/command.h

  • Committer: edam
  • Date: 2010-07-29 20:56:19 UTC
  • Revision ID: edam@waxworlds.org-20100729205619-a9yo4uzu647nvnsj
- renamed database to connection to better identify what it is (would database_connection be better though?)
- moved basic_statement and basic_transaction to sqlite::detail
- made sqlite::threadsafe() return the threading mode int, not a bool
- renamed row::index() to row_number() so it isn't confused with column index
- added typedef for deferred_transaction
- added early rollback method to transaction_guard
- allowed transaction_guard::~transaction_guard() to throw exceptions, since when it needs to, we're really screwed anyway
- bugfix: query::reset() didn't reset the internal row counter
- added query::num_results()
- added docs/design-notes
- reimplemented query::iterator so that increment() (which performs a step() on the query) now caches the returned row to be returned during dereference() (previously it stashed details and returned new row!?)
- bugfix: resetting active queries during rollbacks would hang!

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
 */
40
40
class command
41
41
        :
42
 
        public basic_statement
 
42
        public detail::basic_statement
43
43
{
44
44
//______________________________________________________________________________
45
45
//                                                                 instantiation
46
46
public:
47
47
 
48
48
        /**
49
 
         * Constructor that provides a database upon which to act and the SQL
 
49
         * Constructor that provides a connection upon which to act and the SQL
50
50
         * command to execute.
51
 
         * @param database a reference to a database
 
51
         * @param connection a reference to a connection
52
52
         * @param sql an SQL statement in UTF-8
53
53
         */
54
54
        explicit command(
55
 
                database &database,
 
55
                connection &connection,
56
56
                const std::string &sql );
57
57
 
58
58
        /**
59
 
         * Constructor that provides a database upon which to act.
60
 
         * @param database a reference to a database
 
59
         * Constructor that provides a connection upon which to act.
 
60
         * @param connection a reference to a connection
61
61
         */
62
62
        explicit command(
63
 
                database &database );
 
63
                connection &connection );
64
64
 
65
65
//______________________________________________________________________________
66
66
//                                                              public interface
142
142
};
143
143
 
144
144
 
145
 
// template specialisations for basic_statement::operator <<()
 
145
namespace detail
 
146
{
 
147
 
 
148
 
 
149
// template specialisations for detail::basic_statement::operator <<()
146
150
template< >
147
151
basic_statement &basic_statement::operator << < detail::exec_t >(
148
152
        const detail::exec_t & );
149
153
 
150
154
 
 
155
} // namespace detail
 
156
 
 
157
 
151
158
} // namespace sqlite
152
159
 
153
160