1//
2// Tuple.cpp
3//
4// This sample demonstrates the Data library.
5//
6// Copyright (c) 2008, Applied Informatics Software Engineering GmbH.
7// and Contributors.
8//
9// SPDX-License-Identifier: BSL-1.0
10
11
12#include "Poco/SharedPtr.h"
13#include "Poco/Tuple.h"
14#include "Poco/SQL/SessionFactory.h"
15#include "Poco/SQL/Session.h"
16#include "Poco/SQL/SQLite/Connector.h"
17#include <vector>
18#include <iostream>
19
20
21using namespace Poco::SQL::Keywords;
22using Poco::SQL::Session;
23using Poco::SQL::Statement;
24
25
26int main(int argc, char** argv)
27{
28 typedef Poco::Tuple<std::string, std::string, int> Person;
29 typedef std::vector<Person> People;
30
31 // create a session
32 Session session("SQLite", "sample.db");
33
34 // drop sample table, if it exists
35 session << "DROP TABLE IF EXISTS Person", now;
36
37 // (re)create table
38 session << "CREATE TABLE Person (Name VARCHAR(30), Address VARCHAR, Age INTEGER(3))", now;
39
40 // insert some rows
41 People people;
42 people.push_back(Person("Bart Simpson", "Springfield", 12));
43 people.push_back(Person("Lisa Simpson", "Springfield", 10));
44
45 Statement insert(session);
46 insert << "INSERT INTO Person VALUES(:name, :address, :age)",
47 use(people), now;
48
49 people.clear();
50
51 // a simple query
52 Statement select(session);
53 select << "SELECT Name, Address, Age FROM Person",
54 into(people),
55 now;
56
57 for (People::const_iterator it = people.begin(); it != people.end(); ++it)
58 {
59 std::cout << "Name: " << it->get<0>() <<
60 ", Address: " << it->get<1>() <<
61 ", Age: " << it->get<2>() <<std::endl;
62 }
63
64 return 0;
65}
66