summaryrefslogtreecommitdiff
path: root/tests/sqlite/test2.cpp
blob: 06566e553fdd728e7e9788ceda6ca705b49c7716 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <sstream>
#include <stdio.h>

#include "sqlite3xx/sqlite3xx"

using namespace sqlite3xx;
using namespace std;

int main( ) {
	try {
		//connection c( "dbname=test" );
		connection c( "test2.db" );

		//c.trace( stdout );

		work t( c, "test_transaction" );

		t.exec( "create table test( a integer, b integer)" );
		c.prepare( "insertTestStmt",
			"insert into test(a,b) values($1,$2)" )	
			 ( "integer", prepare::treat_direct )	
			 ( "integer", prepare::treat_direct );
		for( int i = 0; i < 1000; i++ ) {
			t.prepared( "insertTestStmt" )(i)(i).exec( );
		}

		result r( t.exec( "select * from test" ) );
		cout << "a\tb" << endl;
		for( result::size_type i = 0; i < r.size( ); i++ ) {
			cout << r[i]["a"] << "\t" << r[i]["b"] << endl;
		}

		t.exec( "drop table test" );

		t.commit( );
	} catch( sql_error& e ) {
		cerr << e.what( ) << ": " << e.query( ) << endl;
	}

	return 0;
}