-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathhello.erl
130 lines (112 loc) · 6.93 KB
/
hello.erl
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
%%%-------------------------------------------------------------------------%%%
%%% File : examples/hello.erl %%%
%%% Version : 0.3/beta %%%
%%% Description : Erlang VoltDB driver minimal 'Hello, world!' example file %%%
%%% Copyright : VoltDB, LLC - http://www.voltdb.com %%%
%%% Production : Eonblast Corporation - http://www.eonblast.com %%%
%%% Author : H. Diedrich <hd2012@eonblast.com> %%%
%%% License : MIT %%%
%%% Created : 28 Apr 2012 %%%
%%% Changed : 02 Feb 2013 %%%
%%%-------------------------------------------------------------------------%%%
%%% %%%
%%% This driver is being contributed to VoltDB by Eonblast Corporation. %%%
%%% %%%
%%%-------------------------------------------------------------------------%%%
%%% %%%
%%% Erlvolt 0.3/beta - Erlang VoltDB client API. %%%
%%% %%%
%%% This file is part of VoltDB. %%%
%%% Copyright (C) 2008-2013 VoltDB, LLC http://www.voltdb.com %%%
%%% Author H. Diedrich <hd2012@eonblast.com> http://www.eonblast.com %%%
%%% %%%
%%% Permission is hereby granted, free of charge, to any person obtaining %%%
%%% a copy of this software and associated documentation files (the %%%
%%% "Software"), to deal in the Software without restriction, including %%%
%%% without limitation the rights to use, copy, modify, merge, publish, %%%
%%% distribute, sublicense, and/or sell copies of the Software, and to %%%
%%% permit persons to whom the Software is furnished to do so, subject to %%%
%%% the following conditions: %%%
%%% %%%
%%% The above copyright notice and this permission notice shall be %%%
%%% included in all copies or substantial portions of the Software. %%%
%%% %%%
%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, %%%
%%% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF %%%
%%% MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. %%%
%%% IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR %%%
%%% OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, %%%
%%% ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR %%%
%%% OTHER DEALINGS IN THE SOFTWARE. %%%
%%% %%%
%%%-------------------------------------------------------------------------%%%
%%% %%%
%%% USAGE %%%
%%% %%%
%%% You can run this sample using the 'Hello' tutorial-server discussed %%%
%%% in the VoltDB manual and present in every VoltDB distribution. %%%
%%% %%%
%%% Start that server from your voltdb installation with: %%%
%%% %%%
%%% $ cd voltdb/doc/tutorial/helloworld %%%
%%% $ ./run.sh %%%
%%% %%%
%%% Then run this hello world example, using make from the driver root: %%%
%%% %%%
%%% $ make hello-barebones # note the 'barebones' %%%
%%% or %%%
%%% $ make %%%
%%% $ cd examples %%%
%%% $ erlc -I ../include -o ../ebin +debug_info hello.erl %%%
%%% $ erl -pa ../ebin -s hello run -s init stop -noshell %%%
%%% %%%
%%% You will see this response, 'Hello, world!' in Swedish: %%%
%%% %%%
%%% Hej världen! %%%
%%% %%%
%%% For a slightly more comples example see examples/hello_plus.erl. %%%
%%% %%%
%%%-------------------------------------------------------------------------%%%
%%% %%%
%%% See README.md or .html for instructions, examples/ for more examples. %%%
%%% See doc/BENCHMARKS.md or .html for a description of driver benchmarks. %%%
%%% %%%
%%% For getting started with VoltDB,see: voltdb/doc/GettingStarted.pdf or %%%
%%% online: http://voltdb.com/downloads/documentation/GettingStarted.pdf. %%%
%%% %%%
%%%-------------------------------------------------------------------------%%%
-module(hello).
-export([run/0]).
-include("erlvolt.hrl").
-author("H. Diedrich <hd2010@eonblast.com>").
run() ->
%%%
%%% Start driver
%%%
crypto:start(),
application:start(erlvolt),
%%%
%%% Connect
%%%
erlvolt:add_pool(hello_pool, [{"localhost", 21212}]),
%%%
%%% Load sample data into the database
%%%
erlvolt:call_procedure(hello_pool, "Insert", ["Swedish", "Hej", "världen"]),
%%%
%%% Query
%%%
Result = erlvolt:call_procedure(hello_pool, "Select", ["Swedish"]),
%% note: the stored procedure is called 'Select'.
%%%
%%% Result
%%%
Table = erlvolt:get_table(Result, 1),
Row = erlvolt:get_row(Table, 1),
Hello = erlvolt:get_string(Row, Table, "HELLO"),
World = erlvolt:get_string(Row, Table, "WORLD"),
io:format("~n~s ~s!~n~n", [Hello, World]),
%%%
%%% Close
%%%
erlvolt:close_pool(hello_pool).