1 | // |
2 | // Binding.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/SQL/Session.h" |
13 | #include "Poco/SQL/SQLite/Connector.h" |
14 | #include <vector> |
15 | #include <iostream> |
16 | |
17 | |
18 | using namespace Poco::SQL::Keywords; |
19 | using Poco::SQL::Session; |
20 | using Poco::SQL::Statement; |
21 | |
22 | |
23 | struct Person |
24 | { |
25 | std::string name; |
26 | std::string address; |
27 | int age; |
28 | }; |
29 | |
30 | |
31 | int main(int argc, char** argv) |
32 | { |
33 | // create a session |
34 | Session session("SQLite" , "sample.db" ); |
35 | |
36 | // drop sample table, if it exists |
37 | session << "DROP TABLE IF EXISTS Person" , now; |
38 | |
39 | // (re)create table |
40 | session << "CREATE TABLE Person (Name VARCHAR(30), Address VARCHAR, Age INTEGER(3))" , now; |
41 | |
42 | // insert some rows |
43 | Person person = |
44 | { |
45 | "Bart Simpson" , |
46 | "Springfield" , |
47 | 12 |
48 | }; |
49 | |
50 | Statement insert(session); |
51 | insert << "INSERT INTO Person VALUES(?, ?, ?)" , |
52 | use(person.name), |
53 | use(person.address), |
54 | use(person.age); |
55 | |
56 | insert.execute(); |
57 | |
58 | person.name = "Lisa Simpson" ; |
59 | person.address = "Springfield" ; |
60 | person.age = 10; |
61 | |
62 | insert.execute(); |
63 | |
64 | // a simple query |
65 | Statement select(session); |
66 | select << "SELECT Name, Address, Age FROM Person" , |
67 | into(person.name), |
68 | into(person.address), |
69 | into(person.age), |
70 | range(0, 1); // iterate over result set one row at a time |
71 | |
72 | while (!select.done()) |
73 | { |
74 | select.execute(); |
75 | std::cout << person.name << " " << person.address << " " << person.age << std::endl; |
76 | } |
77 | |
78 | // another query - store the result in a container |
79 | std::vector<std::string> names; |
80 | session << "SELECT Name FROM Person" , |
81 | into(names), |
82 | now; |
83 | |
84 | for (std::vector<std::string>::const_iterator it = names.begin(); it != names.end(); ++it) |
85 | { |
86 | std::cout << *it << std::endl; |
87 | } |
88 | |
89 | return 0; |
90 | } |
91 | |