blob: 0b99b42ff7a9a2eea3455c8dc724ce3577747177 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.4">
<title>Client Installation Guide</title>
<style>
/**
* @@@ START COPYRIGHT @@@
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
* @@@ END COPYRIGHT @@@
*/
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
/* Remove the comments around the @import statement below when using this as a custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
audio:not([controls]){display:none;height:0}
[hidden],template{display:none}
script{display:none!important}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{margin:0}
a{background:transparent}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif,serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object{max-width:none!important}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
.antialiased,body{-webkit-font-smoothing:antialiased}
img{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#3188ac;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:none}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
/* Defines headings */
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-style:normal;color:#3188ac;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
/* Defines the `text` (passthru) format */
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:bold;color:#3188ac}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ul.no-bullet{list-style:none}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite:before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7;font-weight:bold}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
.clearfix:after,.float-group:after{clear:both}
*:not(pre)>code{font-size:1.0em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
/**:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}*/
pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
.keyseq{color:rgba(51,51,51,.8)}
kbd{display:inline-block;color:rgba(0,0,0,.8);font-size:.75em;line-height:1.4;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:-.15em .15em 0 .15em;padding:.2em .6em .2em .5em;vertical-align:middle;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menu{color:rgba(0,0,0,.8)}
b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
b.button:before{content:"[";padding:0 3px 0 2px}
b.button:after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
#content{margin-top:1.25em}
#content:before{content:none}
/* #header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0} */
#header>h1:first-child{color:#3188ac;margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span:before{content:"\00a0\2013\00a0"}
#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark:before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber:after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#3188ac;font-size:1.2em}
@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
/* Controls width of panel */
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
#footer-text,#footer_nav{color:rgba(255,255,255,.8);line-height:1.44}
#footer a{color: #990000}
.sect1{padding-bottom:.625em}
@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}.sect1+.sect1{border-top:1px solid #efefed}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#990000;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif,serif;font-size:1rem;font-weight:bold}
/* Here */
table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.listingblock>.content{position:relative}
.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
.listingblock:hover code[data-lang]:before{display:block}
.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0}
table.pyhltable td.code{padding-left:.75em;padding-right:0}
pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
pre.pygments .lineno{display:inline-block;margin-right:.25em}
table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
.quoteblock .quoteblock blockquote:before{display:none}
.verseblock{margin:0 1em 1.25em 1em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.05em;color:rgba(0,0,0,.6)}
.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
table.tableblock{max-width:100%;border-collapse:separate}
table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
table.spread{width:100%}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0}
table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0}
table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0}
table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0}
table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0}
table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot{border-width:1px 0}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
td>div.verse{white-space:pre}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
ul.inline>li>*{display:block}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1{padding-right:.75em;font-weight:bold}
td.hdlist1,td.hdlist2{vertical-align:top}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
.colist>table tr>td:last-of-type{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none}
span.footnote,span.footnoteref{vertical-align:super;font-size:.875em}
span.footnote a,span.footnoteref a{text-decoration:none}
span.footnote a:active,span.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
#footnotes .footnote{padding:0 .375em;line-height:1.3;font-size:.875em;margin-left:1.2em;text-indent:-1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background-color:#00fafa}
.black{color:#000}
.black-background{background-color:#000}
.blue{color:#0000bf}
.blue-background{background-color:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background-color:#fa00fa}
.gray{color:#606060}
.gray-background{background-color:#7d7d7d}
.green{color:#006000}
.green-background{background-color:#007d00}
.lime{color:#00bf00}
.lime-background{background-color:#00fa00}
.maroon{color:#600000}
.maroon-background{background-color:#7d0000}
.navy{color:#000060}
.navy-background{background-color:#00007d}
.olive{color:#606000}
.olive-background{background-color:#7d7d00}
.purple{color:#600060}
.purple-background{background-color:#7d007d}
.red{color:#bf0000}
.red-background{background-color:#fa0000}
.silver{color:#909090}
.silver-background{background-color:#bcbcbc}
.teal{color:#006060}
.teal-background{background-color:#007d7d}
.white{color:#bfbfbf}
.white-background{background-color:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background-color:#fafa00}
span.icon>.fa{cursor:default}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]:after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
h1,h2{letter-spacing:-.01em}
dt,th.tableblock,td.content{text-rendering:optimizeLegibility}
p,td.content{letter-spacing:-.01em}
p strong,td.content strong{letter-spacing:-.005em}
p,blockquote,dt,td.content{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@media print{@page{margin:1.25cm .75cm}
*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]:after{content:" (" attr(title) ")"}
pre,blockquote,tr,img{page-break-inside:avoid}
thead{display:table-header-group}
img{max-width:100%!important}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
.sect1{padding-bottom:0!important}
.sect1+.sect1{border:0!important}
#header>h1:first-child{margin-top:1.25rem}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span:before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]:before{display:block}
#footer{background:none!important;padding:0 .9375em}
#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
div.paragraph.indented p {padding-left: 3em;}
div.paragraph.indented2 p {padding-left: 6em;}
div.paragraph.indented3 p {padding-left: 9em;}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
<style>
/* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
/*pre.CodeRay {background-color:#f7f7f8;}*/
.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
table.CodeRay td{vertical-align: top;line-height:1.45}
table.CodeRay td.line-numbers{text-align:right}
table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
table.CodeRay td.code{padding:0 0 0 .5em}
table.CodeRay td.code>pre{padding:0}
.CodeRay .debug{color:#fff !important;background:#000080 !important}
.CodeRay .annotation{color:#007}
.CodeRay .attribute-name{color:#000080}
.CodeRay .attribute-value{color:#700}
.CodeRay .binary{color:#509}
.CodeRay .comment{color:#998;font-style:italic}
.CodeRay .char{color:#04d}
.CodeRay .char .content{color:#04d}
.CodeRay .char .delimiter{color:#039}
.CodeRay .class{color:#458;font-weight:bold}
.CodeRay .complex{color:#a08}
.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
.CodeRay .color{color:#099}
.CodeRay .class-variable{color:#369}
.CodeRay .decorator{color:#b0b}
.CodeRay .definition{color:#099}
.CodeRay .delimiter{color:#000}
.CodeRay .doc{color:#970}
.CodeRay .doctype{color:#34b}
.CodeRay .doc-string{color:#d42}
.CodeRay .escape{color:#666}
.CodeRay .entity{color:#800}
.CodeRay .error{color:#808}
.CodeRay .exception{color:inherit}
.CodeRay .filename{color:#099}
.CodeRay .function{color:#900;font-weight:bold}
.CodeRay .global-variable{color:#008080}
.CodeRay .hex{color:#058}
.CodeRay .integer,.CodeRay .float{color:#099}
.CodeRay .include{color:#555}
.CodeRay .inline{color:#000}
.CodeRay .inline .inline{background:#ccc}
.CodeRay .inline .inline .inline{background:#bbb}
.CodeRay .inline .inline-delimiter{color:#d14}
.CodeRay .inline-delimiter{color:#d14}
.CodeRay .important{color:#555;font-weight:bold}
.CodeRay .interpreted{color:#b2b}
.CodeRay .instance-variable{color:#008080}
.CodeRay .label{color:#970}
.CodeRay .local-variable{color:#963}
.CodeRay .octal{color:#40e}
.CodeRay .predefined{color:#369}
.CodeRay .preprocessor{color:#579}
.CodeRay .pseudo-class{color:#555}
.CodeRay .directive{font-weight:bold}
.CodeRay .type{font-weight:bold}
.CodeRay .predefined-type{color:inherit}
.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
.CodeRay .key{color:#808}
.CodeRay .key .delimiter{color:#606}
.CodeRay .key .char{color:#80f}
.CodeRay .value{color:#088}
.CodeRay .regexp .delimiter{color:#808}
.CodeRay .regexp .content{color:#808}
.CodeRay .regexp .modifier{color:#808}
.CodeRay .regexp .char{color:#d14}
.CodeRay .regexp .function{color:#404;font-weight:bold}
.CodeRay .string{color:#d20}
.CodeRay .string .string .string{background:#ffd0d0}
.CodeRay .string .content{color:#d14}
.CodeRay .string .char{color:#d14}
.CodeRay .string .delimiter{color:#d14}
.CodeRay .shell{color:#d14}
.CodeRay .shell .delimiter{color:#d14}
.CodeRay .symbol{color:#990073}
.CodeRay .symbol .content{color:#a60}
.CodeRay .symbol .delimiter{color:#630}
.CodeRay .tag{color:#008080}
.CodeRay .tag-special{color:#d70}
.CodeRay .variable{color:#036}
.CodeRay .insert{background:#afa}
.CodeRay .delete{background:#faa}
.CodeRay .change{color:#aaf;background:#007}
.CodeRay .head{color:#f8f;background:#505}
.CodeRay .insert .insert{color:#080}
.CodeRay .delete .delete{color:#800}
.CodeRay .change .change{color:#66f}
.CodeRay .head .head{color:#f4f}
</style>
</head>
<body class="book toc2 toc-left">
<div id="header">
<h1>Client Installation Guide</h1>
<div class="details">
<span id="revnumber">version 2.0.0</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#_about_this_document">1. About This Document</a>
<ul class="sectlevel2">
<li><a href="#_intended_audience">1.1. Intended Audience</a></li>
<li><a href="#_new_and_changed_information">1.2. New and Changed Information</a></li>
<li><a href="#_notation_conventions">1.3. Notation Conventions</a></li>
<li><a href="#_publishing_history">1.4. Publishing History</a></li>
<li><a href="#_comments_encouraged">1.5. Comments Encouraged</a></li>
</ul>
</li>
<li><a href="#_trafodion_client_products">2. Trafodion Client Products</a>
<ul class="sectlevel2">
<li><a href="#_client_summary">2.1. Client Summary</a></li>
</ul>
</li>
<li><a href="#_install_windows_odbc_driver">3. Install Windows ODBC Driver</a>
<ul class="sectlevel2">
<li><a href="#_installation_package">3.1. Installation Package</a></li>
<li><a href="#_installation_requirements">3.2. Installation Requirements</a></li>
<li><a href="#_installation_instructions">3.3. Installation Instructions</a>
<ul class="sectlevel3">
<li><a href="#win_odbc_install">3.3.1. Install Windows ODBC Driver</a></li>
<li><a href="#_reinstall_windows_odbc_driver">3.3.2. Reinstall Windows ODBC Driver</a></li>
<li><a href="#win_odbc_uninstall">3.3.3. Uninstalling Windows ODBC Driver</a></li>
<li><a href="#win_odbc_client_env">3.3.4. Set Up Client Environment</a></li>
<li><a href="#_enable_compression">3.3.5. Enable Compression</a></li>
<li><a href="#win_odbc_run_basicsql">3.3.6. Run Sample Program (<code>basicsql</code>)</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_install_linux_odbc_driver">4. Install Linux ODBC Driver</a>
<ul class="sectlevel2">
<li><a href="#_installation_packaged">4.1. Installation Packaged</a></li>
<li><a href="#_installation_requirements_2">4.2. Installation Requirements</a></li>
<li><a href="#_installation_instructions_2">4.3. Installation Instructions</a>
<ul class="sectlevel3">
<li><a href="#_download_linux_odbc_driver">4.3.1. Download Linux ODBC Driver</a></li>
<li><a href="#_install_reinstall_linux_odbc_driver">4.3.2. Install/Reinstall Linux ODBC Driver</a></li>
<li><a href="#_set_up_client_environment">4.3.3. Set Up Client Environment</a></li>
<li><a href="#_enable_compression_2">4.3.4. Enable Compression</a></li>
<li><a href="#_use_third_party_driver_manager">4.3.5. Use Third-Party Driver Manager</a></li>
<li><a href="#_run_sample_program_code_connect_test_code">4.3.6. Run Sample Program (<code>connect_test</code>)</a></li>
<li><a href="#linux_odbc_run_basicsql">4.3.7. Run Sample Program (<code>basicsql</code>)</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_install_jdbc_type_4_driver">5. Install JDBC Type-4 Driver</a>
<ul class="sectlevel2">
<li><a href="#_installation_package_2">5.1. Installation Package</a></li>
<li><a href="#_installation_requirements_3">5.2. Installation Requirements</a>
<ul class="sectlevel3">
<li><a href="#jdbct4_JRE">5.2.1. Install Java Runtime Environment (JRE)</a></li>
</ul>
</li>
<li><a href="#jdbct4_install">5.3. Installation Instructions</a>
<ul class="sectlevel3">
<li><a href="#jdbct4_download">5.3.1. Download JDBC Type-4 Driver</a></li>
<li><a href="#jdbct4_install_zip">5.3.2. Install JDBC Type-4 Driver</a></li>
<li><a href="#_uninstall_jdbc_type_4_driver">5.3.3. Uninstall JDBC Type-4 Driver</a></li>
<li><a href="#_reinstall_jdbc_type_4_driver">5.3.4. Reinstall JDBC Type-4 Driver</a></li>
</ul>
</li>
<li><a href="#jdbct4_setup_env">5.4. Set Up Client Environment</a>
<ul class="sectlevel3">
<li><a href="#_configure_applications">5.4.1. Configure Applications</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_install_trafci">6. Install TrafCI</a>
<ul class="sectlevel2">
<li><a href="#_installation_package_3">6.1. Installation Package</a></li>
<li><a href="#_installation_requirements_4">6.2. Installation Requirements</a>
<ul class="sectlevel3">
<li><a href="#trafci_JRE">6.2.1. Install/Verify Java Runtime Environment</a></li>
<li><a href="#trafci_install_jdbct4">6.2.2. Install/Verify JDBC Type-4 Driver</a></li>
<li><a href="#trafci_perl_python">6.2.3. Install Perl or Python</a></li>
</ul>
</li>
<li><a href="#_installation_instructions_3">6.3. Installation Instructions</a>
<ul class="sectlevel3">
<li><a href="#trafci_download_installer">6.3.1. Download Installer</a></li>
<li><a href="#trafci_run_installer">6.3.2. Run Executable JAR Installer</a></li>
<li><a href="#trafci_uninstall">6.3.3. Uninstall TrafCI</a></li>
</ul>
</li>
<li><a href="#_post_installation_instructions">6.4. Post-Installation Instructions</a>
<ul class="sectlevel3">
<li><a href="#_verify_installed_software_files">6.4.1. Verify Installed Software Files</a></li>
<li><a href="#_test_launching_trafci">6.4.2. Test Launching TrafCI</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_install_odb">7. Install odb</a>
<ul class="sectlevel2">
<li><a href="#_installation_package_4">7.1. Installation Package</a></li>
<li><a href="#_installation_requirements_5">7.2. Installation Requirements</a></li>
<li><a href="#_installation_instructions_4">7.3. Installation Instructions</a>
<ul class="sectlevel3">
<li><a href="#odb_download">7.3.1. Download odb</a></li>
<li><a href="#odb_install">7.3.2. Install odb</a></li>
<li><a href="#odb_uninstall">7.3.3. Uninstall odb</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_configure_dbvisualizer">8. Configure DbVisualizer</a>
<ul class="sectlevel2">
<li><a href="#_prerequisite_software">8.1. Prerequisite Software</a></li>
<li><a href="#_configuration_instructions">8.2. Configuration Instructions</a>
<ul class="sectlevel3">
<li><a href="#_disable_connection_validation_select_option">8.2.1. Disable Connection Validation Select Option</a></li>
<li><a href="#_register_jdbc_type_4_driver">8.2.2. Register JDBC Type-4 Driver</a></li>
<li><a href="#_connect_to_trafodion">8.2.3. Connect to Trafodion</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_configure_squirrel_client">9. Configure SQuirreL Client</a>
<ul class="sectlevel2">
<li><a href="#_prerequisite_software_2">9.1. Prerequisite Software</a></li>
<li><a href="#_configuration_instructions_2">9.2. Configuration Instructions</a>
<ul class="sectlevel3">
<li><a href="#_register_jdbc_type_4_driver_2">9.2.1. Register JDBC Type-4 Driver</a></li>
<li><a href="#_connect_to_trafodion_2">9.2.2. Connect to Trafodion</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_appendix">10. Appendix</a>
<ul class="sectlevel2">
<li><a href="#odbc_sample_program">10.1. <code>basicsql</code> (Sample ODBC Program)</a>
<ul class="sectlevel3">
<li><a href="#__code_basicsql_cpp_code_source_code">10.1.1. <code>basicsql.cpp</code> Source Code</a></li>
<li><a href="#basicsql_build">10.1.2. Windows Build and Run Files for <code>basicsql</code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><strong>License Statement</strong></p>
</div>
<div class="paragraph">
<p>Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
distributed with this work for additional information regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at <a href="http://www.apache.org/licenses/LICENSE-2.0" class="bare">http://www.apache.org/licenses/LICENSE-2.0</a></p>
</div>
<div class="paragraph">
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.</p>
</div>
<div class="paragraph">
<p><strong>Acknowledgements</strong></p>
</div>
<div class="paragraph">
<p>Microsoft® and Windows® are U.S. registered trademarks of Microsoft Corporation. Java® is a registered trademark of Oracle and/or its affiliates. DbVisualizer™ is a trademark of DbVis Software AB.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Version</th>
<th class="tableblock halign-left valign-top">Date</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1.3.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">January, 2016</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
<h2 id="_about_this_document">1. About This Document</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This manual describes how to install and configure client applications that enable you to connect to and use a Trafodion database.</p>
</div>
<div class="sect2">
<h3 id="_intended_audience">1.1. Intended Audience</h3>
<div class="paragraph">
<p>This manual is intended for users who want to connect to and use a Trafodion database.</p>
</div>
</div>
<div class="sect2">
<h3 id="_new_and_changed_information">1.2. New and Changed Information</h3>
<div class="paragraph">
<p>This manual shows updated versions for Trafodion Release 1.3.0. It also provides instructions on how to download and install <a href="#odb">Trafodion odb</a>, a
new multi-threaded, ODBC-based command-line tool for parallel data loading and extracting.</p>
</div>
</div>
<div class="sect2">
<h3 id="_notation_conventions">1.3. Notation Conventions</h3>
<div class="paragraph">
<p>This list summarizes the notation conventions for syntax presentation in this manual.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>UPPERCASE LETTERS</p>
<div class="paragraph">
<p>Uppercase letters indicate keywords and reserved words. Type these items exactly as shown. Items not enclosed in brackets are required.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">SELECT</code></pre>
</div>
</div>
</li>
<li>
<p>lowercase letters</p>
<div class="paragraph">
<p>Lowercase letters, regardless of font, indicate variable items that you supply. Items not enclosed in brackets are required.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">file-name</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
<div class="ulist">
<ul>
<li>
<p>&#91; &#93; Brackets</p>
<div class="paragraph">
<p>Brackets enclose optional syntax items.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DATETIME [start-field TO] end-field</code></pre>
</div>
</div>
<div class="paragraph">
<p>A group of items enclosed in brackets is a list from which you can choose one item or none.</p>
</div>
<div class="paragraph">
<p>The items in the list can be arranged either vertically, with aligned brackets on each side of the list, or horizontally, enclosed in a pair of brackets and separated by vertical lines.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DROP SCHEMA schema [CASCADE]
DROP SCHEMA schema [ CASCADE | RESTRICT ]</code></pre>
</div>
</div>
</li>
<li>
<p>{ } Braces</p>
<div class="paragraph">
<p>Braces enclose required syntax items.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">FROM { grantee [, grantee ] ... }</code></pre>
</div>
</div>
<div class="paragraph">
<p>A group of items enclosed in braces is a list from which you are required to choose one item.</p>
</div>
<div class="paragraph">
<p>The items in the list can be arranged either vertically, with aligned braces on each side of the list, or horizontally, enclosed in a pair of braces and separated by vertical lines.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">INTERVAL { start-field TO end-field }
{ single-field }
INTERVAL { start-field TO end-field | single-field }</code></pre>
</div>
</div>
</li>
<li>
<p>| Vertical Line</p>
<div class="paragraph">
<p>A vertical line separates alternatives in a horizontal list that is enclosed in brackets or braces.</p>
</div>
</li>
</ul>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">{expression | NULL}</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
<div class="ulist">
<ul>
<li>
<p>&#8230; Ellipsis</p>
<div class="paragraph">
<p>An ellipsis immediately following a pair of brackets or braces indicates that you can repeat the enclosed sequence of syntax items any number of times.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">ATTRIBUTE[S] attribute [, attribute] ...
{, sql-expression } ...</code></pre>
</div>
</div>
<div class="paragraph">
<p>An ellipsis immediately following a single syntax item indicates that you can repeat that syntax item any number of times.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
</li>
</ul>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">expression-n ...</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>Punctuation</p>
<div class="paragraph">
<p>Parentheses, commas, semicolons, and other symbols not previously described must be typed as shown.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DAY (datetime-expression)
@script-file</code></pre>
</div>
</div>
<div class="paragraph">
<p>Quotation marks around a symbol such as a bracket or brace indicate the symbol is a required character that you must type as shown.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">&quot;{&quot; module-name [, module-name] ... &quot;}&quot;</code></pre>
</div>
</div>
</li>
<li>
<p>Item Spacing</p>
<div class="paragraph">
<p>Spaces shown between items are required unless one of the items is a punctuation symbol such as a parenthesis or a comma.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DAY (datetime-expression) DAY(datetime-expression)</code></pre>
</div>
</div>
<div class="paragraph">
<p>If there is no space between two items, spaces are not permitted. In this example, no spaces are permitted between the period and any other items:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">myfile.sh</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
<div class="ulist">
<ul>
<li>
<p>Line Spacing</p>
<div class="paragraph">
<p>If the syntax of a command is too long to fit on a single line, each continuation line is indented three spaces and is separated from the preceding line by a blank line.</p>
</div>
<div class="paragraph">
<p>This spacing distinguishes items in a continuation line from items in a vertical list of selections.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">match-value [NOT] LIKE _pattern
[ESCAPE esc-char-expression]</code></pre>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_publishing_history">1.4. Publishing History</h3>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Product Version</th>
<th class="tableblock halign-left valign-top">Publication Date</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion Release 1.3.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">To be announced.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_comments_encouraged">1.5. Comments Encouraged</h3>
<div class="paragraph">
<p>The Trafodion community encourages your comments concerning this document. We are committed to providing documentation that meets your
needs. Send any errors found, suggestions for improvement, or compliments to:</p>
</div>
<div class="paragraph">
<p><a href="mailto:issues@trafodion.incubator.apache.org">issues@trafodion.incubator.apache.org</a></p>
</div>
<div class="paragraph">
<p>Include the document title and any comment, error found, or suggestion for improvement you have concerning this document.
Or, even better, join our community and help us improve our documentation. Please refer to
<a href="http://trafodion.incubator.apache.org/contributing_redirect.html">Trafodion Contributor Guide</a> for details.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_trafodion_client_products">2. Trafodion Client Products</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This manual describes how to install and configure the following client applications, which enable you to connect to and use a Trafodion
database.</p>
</div>
<div class="sect2">
<h3 id="_client_summary">2.1. Client Summary</h3>
<div class="paragraph">
<p>The following table lists the clients supported by Trafodion.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 30%;">
<col style="width: 70%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Client Name</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">Trafodion ODBC Driver for Windows</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock">A driver that enables applications, which were developed for the Microsoft Open Database Connectivity (ODBC) application programming
interface (API) and which run on a Windows workstation, to connect to a Trafodion database.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">Trafodion ODBC Driver for Linux</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock">A driver that enables applications, which were developed for the Microsoft ODBC API and run on a Linux workstation, to connect to a
Trafodion database.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">Trafodion JDBC Type 4 Driver</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock">A driver that enables Java applications that run on a client workstation to connect to a Trafodion database.
</p><p class="tableblock">NOTE: The Trafodion Command Interface (TrafCI), DbVisualizer, and SQuirreL SQL Client require this driver to be installed on the client
workstation.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">Trafodion Command Interface (TrafCI)</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock">A command-line interface that allows you to connect to a Trafodion database and run SQL statements and other commands interactively or from
script files. For more information, see the <a href="http://trafodion.incubator.apache.org/docs/command_interface/index.html"><em>Trafodion Command Interface Guide</em></a>.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">Trafodion odb tool</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock">A multi-threaded, ODBC-based command-line tool for parallel data loading and extracting. For more information, see the
<a href="http://trafodion.incubator.apache.org/docs/odb_user/index.html"><em>Trafodion odb User Guide</em></a>.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">DbVisualizer</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock">A third-party database tool that allows you to connect to a Trafodion database. For more information, see the <a href="http://www.dbvis.com/"><em>DbVisualizer website</em></a>.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">SQuirreL SQL Client</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock">A third-party database tool that allows you to connect to a Trafodion database. For more information, see the
<a href="http://squirrel-sql.sourceforge.net/"><em>SQuirreL SQL Client website</em></a>.</p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_install_windows_odbc_driver">3. Install Windows ODBC Driver</h2>
<div class="sectionbody">
<div class="paragraph">
<p>These installation instructions apply to Trafodion Release 1.3.<strong><em>n</em></strong> and subsequent updates of the product until otherwise indicated.</p>
</div>
<div class="sect2">
<h3 id="_installation_package">3.1. Installation Package</h3>
<div class="paragraph">
<p>The installer file for the Trafodion ODBC Driver for Windows is packaged within the Trafodion clients tar file, <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code>, on the
Trafodion downloads site <a href="http://trafodion.incubator.apache.org/download.html" class="bare">http://trafodion.incubator.apache.org/download.html</a>. Use this installer file to install the Trafodion ODBC Driver for Windows:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Installer File</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Client Operating System</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>TFODBC64-1.3.<strong><em>n</em></strong>.msi</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Windows MSI installer file</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Windows 64-bit</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>By default, a new version of the ODBC driver will be installed in this directory and its folders unless you specify a different directory
during installation:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Default Installation Directory</th>
<th class="tableblock halign-left valign-top">Client Operating System</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>C:\Program Files\Trafodion\TRAF</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ODBC 1.0 Windows 64-bit</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The ODBC client installation file installs or links to multiple client components:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">This client component&#8230;</th>
<th class="tableblock halign-left valign-top">Does this&#8230;</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Microsoft ODBC Driver Manager</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Manages access to ODBC drivers for applications. The driver manager loads and unloads drivers and passes calls for ODBC functions to the
correct driver.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Trafodion ODBC driver</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implements ODBC function calls to enable an ODBC client application to access the Trafodion database.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Microsoft ODBC Administrator</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Adds, configures, and removes ODBC data sources on client workstations.</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="_installation_requirements">3.2. Installation Requirements</h3>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Item</th>
<th class="tableblock halign-left valign-top">Requirement</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Computer</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Windows compatible PC workstation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Memory</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Recommended minimum 32 MB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Disk Space</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Minimum 30 MB additional free space</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Operating System</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">x64 Edition of Microsoft Windows 7, Windows 8, or Windows Server 2008</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Network Software</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TCP/IP</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_installation_instructions">3.3. Installation Instructions</h3>
<div class="sect3">
<h4 id="win_odbc_install">3.3.1. Install Windows ODBC Driver</h4>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
To install the driver on your PC, you must be logged on with a user ID that has administrator privileges.
</td>
</tr>
</table>
</div>
<div class="sect4">
<h5 id="_task_1_download_the_odbc_client_installation_file">Task 1: Download the ODBC client installation file</h5>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Create a download folder on the client workstation.</p>
</li>
<li>
<p>Open a Web browser and navigate to the Trafodion downloads site <a href="http://trafodion.incubator.apache.com/download.html" class="bare">http://trafodion.incubator.apache.com/download.html</a></p>
</li>
<li>
<p>Click on the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> link to start downloading the Trafodion clients tar file to your workstation.</p>
</li>
<li>
<p>Place the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz file</code> into the download folder.</p>
</li>
<li>
<p>Extract the contents of the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> file by using an extract tool like WinZip. The package file contains the
<code>TFODBC64-1.3.<strong><em>n</em></strong>.msi</code> installer file, which is extracted to the clients sub-directory.</p>
</li>
</ol>
</div>
</div>
<div class="sect4">
<h5 id="_task_2_start_the_installshield_wizard">Task 2: Start the InstallShield wizard</h5>
<div class="paragraph">
<p>The InstallShield wizard walks you through the steps to install the client components (Trafodion ODBC 1.0) on your workstation. You can
perform the installation in <em>interactive mode</em>, in which you provide input or accept defaults when prompted as ODBC is installed.
Please refer to <a href="#win_odbc_interactive_mode">Interactive Mode Installation</a> below.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="sect5">
<h6 id="win_odbc_interactive_mode">Interactive Mode Installation</h6>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Double-click the <code>.msi</code> distribution file to start the InstallShield wizard.</p>
</li>
<li>
<p>On the <strong>Welcome</strong> page, click <strong>Next</strong>.</p>
</li>
<li>
<p>On the <strong>Destination Folder</strong> page, click <strong>Next</strong> to select the default location: <code>C:\Program Files\Trafodion\TRAF ODBC 1.0\</code></p>
<div class="paragraph">
<p>This location is the installation directory for ODBC header and help files. All other ODBC files are installed in <code>%SYSTEMROOT%\system32</code>.</p>
</div>
</li>
<li>
<p>On the <strong>Set Certificate Directory</strong> page, click <strong>Next</strong> to accept the default location for the security certificate (<code>SYSTEM_DEFAULT</code>).</p>
</li>
<li>
<p>On the <strong>Ready to Install the Program</strong> page, click <strong>Install</strong>. The installation begins. The <strong>Installing Trafodion ODBC64 1.0</strong> page displays a
progress bar.</p>
</li>
<li>
<p>On the <strong>InstallShield Wizard Completed</strong> page, click <strong>Finish</strong> to exit the wizard. Do not add a new <code>Trafodion ODBC</code> data source to the MS ODBC
Administrator until you have restarted your system.</p>
</li>
</ol>
</div>
</div>
</div>
<div class="sect4">
<h5 id="_task_3_add_a_client_data_source">Task 3: Add a client data source</h5>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Start the Microsoft ODBC Administrator:</p>
<div class="ulist">
<ul>
<li>
<p>On Windows 7: <strong>Start&gt;All Programs&gt;Trafodion ODBC 1.0&gt;MS ODBC Administrator</strong></p>
</li>
<li>
<p>On Windows 8: Right-click the <strong>Trafodion ODBC 1.0</strong> icon on the desktop and select MS ODBC Administrator.</p>
</li>
</ul>
</div>
</li>
<li>
<p>In the <strong>ODBC Data Source Administrator</strong> dialog box, click <strong>Add</strong>.</p>
</li>
<li>
<p>Select <strong>TRAF ODBC 1.0</strong>, and then click <strong>Finish</strong> to start the <strong>Create a New Trafodion ODBC Data Source</strong> wizard.</p>
</li>
<li>
<p>Enter the data source name (for example, <code>Default_DataSource_Schema1</code>) and an optional description, and click <strong>Next</strong>.</p>
</li>
<li>
<p>Enter the <code>IP address</code> or <code>host name</code> for the database platform. Enter the port number as <strong>37800</strong>. Leave the defaults as is, and click <strong>Next</strong>.</p>
</li>
<li>
<p>Enter the schema name. The default schema name is <code>SEABASE</code>. Click <strong>Next</strong>.</p>
</li>
<li>
<p>Enter the translate DLL name and its option, if you have one. If not, leave it blank. Leave the localization defaults as is.</p>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p>The Replacement Character replaces any character that is incompatible for translation when retrieving data. It is one character (one or two
bytes long). The Replacement Character is assumed to be in the character set specified in the Client/Server Character Set Interaction. If it is not specified, <code>?</code> is used as the default.</p>
</div>
<div class="paragraph">
<p>Click <strong>Next</strong>.</p>
</div>
</li>
<li>
<p>Select the trace options, if desired. Change the <strong>Log File Path</strong> to the location you want, or leave the default as is, and click <strong>Finish</strong>.</p>
</li>
<li>
<p>The wizard gives you an opportunity to test the connection. Click <strong>Test Connection</strong> and click <strong>OK</strong>.</p>
</li>
<li>
<p>The server ID and schema are filled in for you. Enter a valid user name and password, and click <strong>OK</strong>.</p>
<div class="paragraph">
<p>The wizard attempts to connect to the data source and displays a message stating whether it was successful or not.</p>
</div>
</li>
<li>
<p>Click <strong>OK</strong> to save the data source, or click <strong>Cancel</strong> <em>twice</em> to quit the <strong>Create Data Source</strong> wizard.</p>
</li>
</ol>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_reinstall_windows_odbc_driver">3.3.2. Reinstall Windows ODBC Driver</h4>
<div class="paragraph">
<p>To reinstall the driver, we recommend that you fully remove your ODBC driver and then install the new version. Please refer to
<a href="#win_odbc_uninstall">Uninstalling the Trafodion ODBC Driver for Windows</a> and then <a href="#win_odbc_install">Installing the Trafodion ODBC Driver for Windows</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="win_odbc_uninstall">3.3.3. Uninstalling Windows ODBC Driver</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Start to remove the ODBC driver:</p>
<div class="ulist">
<ul>
<li>
<p>On Windows 7: <strong>Start&gt;All Programs&gt;Trafodion ODBC 1.0&gt;Remove TRAF ODBC 1.0</strong></p>
</li>
<li>
<p>On Windows 8: Right-click the <strong>Trafodion ODBC 1.0</strong> icon on the desktop and select <strong>Remove TRAF ODBC 1.0</strong>.</p>
</li>
</ul>
</div>
</li>
<li>
<p>When the <strong>Windows Installer</strong> dialog box asks you if you want to uninstall this product, click <strong>Yes</strong>.</p>
</li>
<li>
<p>The <strong>Trafodion ODBC 1.0</strong> dialog box displays the status and asks you to wait while <code>Windows configures Trafodion ODBC 1.0</code> (that is, removes
the Trafodion ODBC Driver from your Windows workstation).</p>
<div class="paragraph">
<p>After this dialog box disappears, Trafodion ODBC 1.0 is no longer on your workstation.</p>
</div>
</li>
</ol>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Uninstalling the ODBC driver does not remove pre-existing data source definitions from the Windows registry.
</td>
</tr>
</table>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="win_odbc_client_env">3.3.4. Set Up Client Environment</h4>
<div class="paragraph">
<p>All client data sources connect to the pre-configured server data source on the database platform, which is <code>Default_DataSource</code>.</p>
</div>
<div class="paragraph">
<p>You can configure one data source only, <code>Default_DataSource</code>, on the database platform, but you can create other data source
definitions on the workstation.</p>
</div>
<div class="paragraph">
<p>For example, if you have more than one schema on the database platform and you want to connect
to each of those schemas on the database platform, you can create a client data source for each of those schemas.</p>
</div>
<div class="paragraph">
<p>Instead of changing the schema definition in the data source definition on the workstation, you can create multiple data source
definitions with different schemas on the workstation. The client data source will use the specified schema but will connect to
<code>Default_DataSource</code> on the database platform.</p>
</div>
<div class="paragraph">
<p>To create a data source on the client workstation, follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Launch the <strong>MS ODBC Administrator</strong>.</p>
<div class="paragraph">
<p>For example, on Windows 7, select <strong>Start&gt;All Programs&gt;Trafodion ODBC 1.0&gt;MS ODBC Administrator</strong>.</p>
</div>
</li>
<li>
<p>In the <strong>ODBC Data Source Administrator</strong> dialog box, select the <strong>User DSN</strong> tab, and click <strong>Add</strong>.</p>
</li>
<li>
<p>Select the <strong>TRAF ODBC 1.0</strong> driver, and then click <strong>Finish</strong>.</p>
<div class="paragraph">
<p>A new dialog box appears, prompting you to create a new data source.</p>
</div>
</li>
<li>
<p>Enter the name of the data source, <code>Default_DataSource</code>, and click <strong>Next</strong> to continue.</p>
</li>
<li>
<p>Enter the IP address and port number of the Trafodion system to which will be connecting. The port number must be <strong>37800</strong>.
Click <strong>Next</strong> to continue.</p>
</li>
<li>
<p>Select the default schema. If you do not select a schema, the default is <code>USR</code>. Click Next to continue.</p>
</li>
<li>
<p>If desired, configure the <strong>translate dll</strong>, which translates data from one character set to another, and configure the localization. By
default, the client error message language is English, and the client’s local character set is used. Click <strong>Next</strong> to continue.</p>
</li>
<li>
<p>If desired, set the trace options and the file path of the trace log. Click <strong>Finish</strong>.</p>
<div class="paragraph">
<p>The <strong>Test Trafodion ODBC Connection</strong> dialog box appears, allowing you to test the connection using the data source that you created.</p>
</div>
</li>
<li>
<p>Click <strong>Test Connection</strong>.</p>
</li>
<li>
<p>When prompted, enter your user name and password, and click <strong>OK</strong>.</p>
<div class="paragraph">
<p>If the connection is successful, you will see <code>Connected Successfully</code> in the <strong>Test Trafodion ODBC Connection</strong> dialog box.</p>
</div>
</li>
</ol>
</div>
</div>
<div class="sect3">
<h4 id="_enable_compression">3.3.5. Enable Compression</h4>
<div class="paragraph">
<p>When compression is enabled in the ODBC driver, the ODBC driver can send and receive large volumes of data quickly and efficiently to and from
the Trafodion Database Connectivity Services (DCS) server over a TCP/IP network. By default, compression is disabled.</p>
</div>
<div class="paragraph">
<p>To enable compression in the ODBC driver or to change the compression setting, follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Launch the MS ODBC Administrator. For example, on Windows 7, select <strong>Start&gt;All Programs&gt;Trafodion ODBC 1.0&gt;MS ODBC Administrator</strong>.</p>
</li>
<li>
<p>In the <strong>ODBC Data Source Administrator</strong> dialog box, select the <strong>User DSN</strong> tab, select the name of your data source under
<strong>User Data Sources</strong>, and click <strong>Configure</strong>. If you did not create a data source, please refer to
<a href="#win_odbc_client_env">Setting Up the Client Environment</a>.</p>
<div class="paragraph">
<p>A new dialog box appears, showing the configuration of your data source.</p>
</div>
</li>
<li>
<p>Select the <strong>Network</strong> tab, and then select one of these values for <strong>Compression</strong>:</p>
<div class="ulist">
<ul>
<li>
<p><code>SYSTEM_DEFAULT</code>, which is the same as no compression</p>
</li>
<li>
<p><code>no compression</code></p>
</li>
<li>
<p><code>best speed</code></p>
</li>
<li>
<p><code>best compression</code></p>
</li>
<li>
<p><code>balance</code></p>
</li>
<li>
<p>An integer from 0 to 9, with 0 being no compression and 9 being the
maximum available compression</p>
</li>
</ul>
</div>
</li>
<li>
<p>Click <strong>OK</strong> to accept the change.</p>
</li>
<li>
<p>Click <strong>OK</strong> to exit the <strong>ODBC Data Source Administrator</strong> dialog box.</p>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="win_odbc_run_basicsql">3.3.6. Run Sample Program (<code>basicsql</code>)</h4>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The Basic SQL sample program is not currently bundled with the ODBC Windows driver. To obtain the source code and the build and run
files for this program, please refer to <a href="#odbc_sample_program">ODBC Sample Program</a>.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>To build and run the executable file, follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Open a Visual Studio x64 Win64 Command Prompt. Make sure to select the x64 version of the command prompt. For example, on Windows 7, select
<strong>Start&gt;All Programs&gt;Microsoft Visual Studio 2010&gt;Visual Studio Tools&gt;Visual Studio x64 Win64 Command Prompt</strong>.</p>
</li>
<li>
<p>At the command prompt, move to the directory where you put the <code>basicsql.cpp</code> and build files.</p>
</li>
<li>
<p>Run build at the command prompt. You will see <code>basicsql.exe</code> created in the same directory as the source file.</p>
</li>
<li>
<p>Before running the sample program, create a Trafodion data source named <code>Default_DataSource</code> on the client workstation using MS ODBC
Administrator. For instructions, please refer to <a href="#win_odbc_client_env">Set Up Client Environment</a>.</p>
</li>
<li>
<p>From the command prompt, run the sample program by entering either run or this command:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">basicsql DefaultDataSource &lt;username&gt; &lt;password&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>If the sample program executes successfully, you should see this output:</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Using Connect String: DSN=Default_DataSource;UID=user1;PWD=pwd1;
Successfully connected using SQLDriverConnect.
Drop sample table if it exists...
Creating sample table TASKS...
Table TASKS created using SQLExecDirect.
Inserting data using SQLBindParameter, SQLPrepare, SQLExecute
Data inserted.
Fetching data using SQLExecDirect, SQLFetch, SQLGetData
Data selected: 1000 CREATE REPORTS 2014-3-22
Basic SQL ODBC Test Passed!</code></pre>
</div>
</div>
</li>
</ol>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_install_linux_odbc_driver">4. Install Linux ODBC Driver</h2>
<div class="sectionbody">
<div class="paragraph">
<p>These installation instructions apply to Trafodion Release 1.3.<strong><em>n</em></strong> and subsequent updates of the product until otherwise indicated.</p>
</div>
<div class="sect2">
<h3 id="_installation_packaged">4.1. Installation Packaged</h3>
<div class="paragraph">
<p>The distribution file for the Trafodion ODBC Driver for Linux is packaged within the Trafodion clients tar file,
<code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code>, on the Trafodion downloads site <a href="http://trafodion.incubator.apache.org/download.html" class="bare">http://trafodion.incubator.apache.org/download.html</a>.</p>
</div>
<div class="paragraph">
<p><code>TRAF_ODBC_Linux_Driver_64.tar.gz</code> is used to install the Trafodion ODBC Driver for Linux. It contains the following files:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">connect_test.cpp
install.sh
libicudataNv44.so.44
libicuucNv44.so.44
libtrafodbc_l64.so
libtrafodbc_l64_drvr.so
LICENSE
license.txt
MD5SUM
TRAFDSN</code></pre>
</div>
</div>
<div class="paragraph">
<p>By default, a new version of the Trafodion ODBC driver will be installed in the following directories unless you specify a different directory
during installation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>/usr/lib64</code></p>
</li>
<li>
<p><code>/etc/odbc</code></p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The following header files are not packaged with the Trafodion ODBC driver:
</td>
</tr>
</table>
</div>
<div class="ulist">
<ul>
<li>
<p><code>sql.h</code></p>
</li>
<li>
<p><code>sqlext.h</code></p>
</li>
<li>
<p><code>sqltypes.h</code></p>
</li>
<li>
<p><code>sqlucode.h</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To install those header files, <a href="#win_odbc_client_env">Setting Up the Client Environment</a>..</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="_installation_requirements_2">4.2. Installation Requirements</h3>
<div class="paragraph">
<p>The driver for Linux requires <code>libgcc 3.4.3</code> and <code>libstd++ 6.0</code>.</p>
</div>
<div class="paragraph">
<p>If you are building ODBC applications, please use the preferred build platform, RedHat 6.4 or CentOS 6.4.</p>
</div>
</div>
<div class="sect2">
<h3 id="_installation_instructions_2">4.3. Installation Instructions</h3>
<div class="sect3">
<h4 id="_download_linux_odbc_driver">4.3.1. Download Linux ODBC Driver</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Create a download folder on the client workstation.</p>
</li>
<li>
<p>Open a Web browser and navigate to <a href="http://trafodion.incubator.apache.org/download.html" class="bare">http://trafodion.incubator.apache.org/download.html</a>.</p>
</li>
<li>
<p>Click on the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> link to start downloading the Trafodion clients tar file to your workstation.</p>
</li>
<li>
<p>Place the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> file into the download folder.</p>
</li>
<li>
<p>Unpack the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> file.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">tar -xzf clients-1.3.0.tar.gz</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>The package file contains the Trafodion ODBC distribution file, <code>TRAF_ODBC_Linux_Driver_64.tar.gz</code>, which is extracted to the clients subdirectory.</p>
</div>
</div>
<div class="sect3">
<h4 id="_install_reinstall_linux_odbc_driver">4.3.2. Install/Reinstall Linux ODBC Driver</h4>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
You must have root access to install the Trafodion ODBC Driver for Linux at the default system location.
</td>
</tr>
</table>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Change the directory to the clients subdirectory, and decompress the <code>.tar.gz</code> distribution file:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">gunzip TRAF_ODBC_Linux_Driver_64.tar.gz</code></pre>
</div>
</div>
</li>
<li>
<p>Extract the contents of the <code>.tar</code> file. A directory called <code>PkgTmp</code> is created.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">tar –xvf TRAF_ODBC_Linux_Driver_64.tar</code></pre>
</div>
</div>
</li>
<li>
<p>Install the product by entering these commands:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd PkgTmp
./install.sh</code></pre>
</div>
</div>
<div class="paragraph">
<p>Except for the sample file, the <code>install.sh</code> script saves a copy (<code>.SAV</code>) of your previous installation files if they exist.</p>
</div>
</li>
<li>
<p>Accept the terms of the license agreement by entering <strong>yes</strong>.</p>
</li>
<li>
<p>Enter a directory for the library files, or press Enter to use the default directory (<code>/usr/lib64</code>).</p>
</li>
<li>
<p>Enter a directory for the data-source template file, or press <strong>Enter</strong> to use the default directory (<code>/etc/odbc</code>).</p>
</li>
<li>
<p>Enter a directory for the sample program, or press <strong>Enter</strong> to use the default directory (<code>/etc/odbc</code>).</p>
</li>
</ol>
</div>
</div>
<div class="sect3">
<h4 id="_set_up_client_environment">4.3.3. Set Up Client Environment</h4>
<div class="paragraph">
<p>If you selected default options during installation, ensure that:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The libraries are located in the <code>/usr/lib64</code> directory.</p>
</li>
<li>
<p>A <code>TRAFDSN</code> file is in the <code>/etc/odbc</code> directory.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If you select non-default locations during installation, ensure that the files are installed in the directories that you specified during
installation.</p>
</div>
<div class="paragraph">
<p>The driver expects the <code>TRAFDSN</code> file to be present in either the default location (<code>/etc/odbc</code>) or the current working directory (<code>CWD</code>) of the
application.</p>
</div>
<div class="paragraph">
<p>If you are building ODBC applications, you will need to install these header files in your build environment:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>sql.h</code></p>
</li>
<li>
<p><code>sqlext.h</code></p>
</li>
<li>
<p><code>sqltypes.h</code></p>
</li>
<li>
<p><code>sqlucode.h</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To install those header files from the latest packages, run this <code>yum</code> command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">yum install libiodbc libiodbc-devel</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>yum</code> command automatically installs the header files in the <code>/usr/include</code> and <code>/usr/include/libiodbc</code> directories.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_enable_compression_2">4.3.4. Enable Compression</h4>
<div class="paragraph">
<p>When compression is enabled in the ODBC driver, the ODBC driver can send and receive large volumes of data quickly and efficiently to and from
the Trafodion Database Connectivity Services (DCS) server over a TCP/IP network. By default, compression is disabled.</p>
</div>
<div class="paragraph">
<p>To enable compression in the ODBC driver or to change the compression setting, follow these steps:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If you are using the Trafodion ODBC driver manager, add</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Compression = compression-level</code></pre>
</div>
</div>
<div class="paragraph">
<p>to the <code>DSN</code> section of <code>TRAFDSN</code> file.</p>
</div>
</li>
<li>
<p>If you are using a third-party driver manager, such as unixODBC, add</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Compression = compression-level</code></pre>
</div>
</div>
<div class="paragraph">
<p>to the <code>DSN</code> section of the <code>odbc.ini</code> file.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The <code><em>compression-level</em></code> is one of these values:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>SYSTEM_DEFAULT</code>, which is the same as no compression</p>
</li>
<li>
<p><code>no compression</code></p>
</li>
<li>
<p><code>best speed</code></p>
</li>
<li>
<p><code>best compression</code></p>
</li>
<li>
<p><code>balance</code></p>
</li>
<li>
<p>An integer from <code>0</code> to <code>9</code>, with <code>0</code> being <code>no compression</code> and <code>9</code> being the <code>maximum available compression</code></p>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_use_third_party_driver_manager">4.3.5. Use Third-Party Driver Manager</h4>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For better performance, we recommend that you use at least version <code>2.3.<em>x</em></code> of unixODBC.
</td>
</tr>
</table>
</div>
<div class="ulist">
<ul>
<li>
<p>If you are using an external driver manager, you must point to <code>libtrafodbc_drvr64.so</code> and not to <code>libtrafodbc64.so</code>.</p>
</li>
<li>
<p>The driver, <code>libtrafodbc_l64_drvr.so</code>, has been verified with iODBC and unixODBC driver managers.</p>
</li>
<li>
<p>These driver managers, as well as documentation, can be found at these Web sites:</p>
</li>
<li>
<p><a href="http://www.iodbc.org/" class="bare">http://www.iodbc.org/</a></p>
</li>
<li>
<p><a href="http://www.unixodbc.org/" class="bare">http://www.unixodbc.org/</a></p>
</li>
<li>
<p>For information on the necessary data-source configuration options, you will need to add to the respective configuration files (for example,
to <code>odbc.ini</code>).</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_run_sample_program_code_connect_test_code">4.3.6. Run Sample Program (<code>connect_test</code>)</h4>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The examples after each step assume that you have default installation directories.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>If you have a previous version of the Trafodion ODBC driver installed, you need to re-link your existing application to ensure that you pick up
the correct version of the driver. If you are unsure of the version, check the version of your application with this command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">ldd object-file</code></pre>
</div>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Move to the directory where you installed the sample program:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd /etc/odbc</code></pre>
</div>
</div>
</li>
<li>
<p>Set the environment variable <code>LD_LIBRARY_PATH</code>:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">export LD_LIBRARY_PATH=&lt;path-to-odbc-library-files or /usr/lib64&gt;</code></pre>
</div>
</div>
</li>
<li>
<p>In the <code>/etc/odbc/TRAFDSN</code> file, add the correct IP address to the <code>Server</code> parameter for the <code>Default_DataSource</code>.</p>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">[Default_DataSource]
Description = Default Data Source
Catalog = TRAFODION
Schema = SEABASE
DataLang = 0
FetchBufferSize = SYSTEM_DEFAULT
Server = TCP:1.2.3.4:37800 &lt;- _Set IP Address_
SQL_ATTR_CONNECTION_TIMEOUT = SYSTEM_DEFAULT
SQL_LOGIN_TIMEOUT = SYSTEM_DEFAULT
SQL_QUERY_TIMEOUT = NO_TIMEOUT</code></pre>
</div>
</div>
</li>
<li>
<p>Compile the sample program.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">g++ -g connect_test.cpp -L/usr/lib64 -I/usr/include/odbc -ltrafodbc64 -o connect_test</code></pre>
</div>
</div>
</li>
<li>
<p>Run the sample program:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">./connect_test -d Default_DataSource -u username -p password</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>If the sample program runs successfully, you should see output similar to the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Using Connect String: DSN=Default_DataSource;UID=username;PWD=****;
Connect Test Passed...</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="linux_odbc_run_basicsql">4.3.7. Run Sample Program (<code>basicsql</code>)</h4>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The Basic SQL sample program is not currently bundled with the ODBC Linux driver. To obtain the source code for this program, see
<a href="#odbc_sample_program"><code>basicsql</code> (Sample ODBC Program)</a>.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>If you have a previous version of the Trafodion ODBC driver installed, you need to re-link your existing application to ensure that you pick up
the correct version of the driver. If you are unsure of the version, check the version of your application with this command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">ldd object-file</code></pre>
</div>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Move to the directory where you put the <code>basicsql.cpp</code> file.</p>
</li>
<li>
<p>Set the environment variable <code>LD_LIBRARY_PATH</code>:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">export LD_LIBRARY_PATH=&lt;path-to-odbc-driver-dlls&gt;</code></pre>
</div>
</div>
</li>
<li>
<p>In the <code>/etc/odbc/TRAFDSN</code> file, add the correct IP address to the <code>Server</code> parameter for the <code>Default_DataSource</code>. For example:</p>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">[Default_DataSource]
Description = Default Data Source
Catalog = TRAFODION
Schema = SEABASE
DataLang = 0
FetchBufferSize = SYSTEM_DEFAULT
Server = TCP:1.2.3.4:37800
SQL_ATTR_CONNECTION_TIMEOUT = SYSTEM_DEFAULT
SQL_LOGIN_TIMEOUT = SYSTEM_DEFAULT
SQL_QUERY_TIMEOUT = NO_TIMEOUT</code></pre>
</div>
</div>
</li>
<li>
<p>Compile the sample program.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">g++ -g basicsql.cpp -L. -I. -ltrafodbc64 -o basicsql</code></pre>
</div>
</div>
</li>
<li>
<p>Run the sample program:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">basicsql Default_DataSource &lt;username&gt; &lt;password&gt;</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>If the sample program runs successfully, you should see output similar to the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Using Connect String: DSN=Default_DataSource;UID=user1;PWD=pwd1;
Successfully connected using SQLDriverConnect.
Drop sample table if it exists... Creating sample table TASKS...
Table TASKS created using SQLExecDirect.
Inserting data using SQLBindParameter, SQLPrepare, SQLExecute Data
Data inserted.
Fetching data using SQLExecDirect, SQLFetch, SQLGetData
Data selected: 1000 CREATE REPORTS 2014-3-22
Basic SQL ODBC Test Passed!</code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_install_jdbc_type_4_driver">5. Install JDBC Type-4 Driver</h2>
<div class="sectionbody">
<div class="paragraph">
<p>These installation instructions apply to Trafodion Release 1.3.<strong><em>n</em></strong> and subsequent updates of the product until otherwise indicated.</p>
</div>
<div class="sect2">
<h3 id="_installation_package_2">5.1. Installation Package</h3>
<div class="paragraph">
<p>The distribution file for the Trafodion JDBC Type 4 Driver is packaged within the Trafodion clients tar file, <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code>,
on the Trafodion downloads site <a href="http://trafodion.incubator.apache.org/download.html" class="bare">http://trafodion.incubator.apache.org/download.html</a>.</p>
</div>
<div class="paragraph">
<p>Use this distribution file to install the Trafodion JDBC Type 4 Driver:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 35%;">
<col style="width: 35%;">
<col style="width: 30%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Distribution File</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Client Operating System</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>JDBCT4.zip</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Zip file</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Windows or Linux</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>By default, a new version of the JDBC Type 4 driver will be installed in this directory and its folders unless you specify a
different directory during installation:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 65%;">
<col style="width: 35%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Default Installation Directory</th>
<th class="tableblock halign-left valign-top">Client Operating System</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>&lt;user-specified directory&gt;</em> (For example: /usr/local/jdbc)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Windows or Linux</p></td>
</tr>
</tbody>
</table>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 30%;">
<col style="width: 25%;">
<col style="width: 45%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Installation Folder</th>
<th class="tableblock halign-left valign-top">Files</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>/lib</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>jdbcT4.jar</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Product JAR file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>/samples</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>t4jdbc.properties</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Properties file that you can configure for your application environment.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>README</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that explains how to use the common sample set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>/samples/common</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>sampleUtils.java</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample source code for creating, populating, and dropping sample tables.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>/samples/DBMetaSample</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>DBMetaSample.java</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample source code for getting metadata about the sample tables.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>README</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that explains how to use this sample set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>/samples/PreparedStatementSample</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>PreparedStatementSample.java</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample code for simple or parameterized SELECT statements that are prepared.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>README</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that explains how to use this sample set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>/samples/ResultSetSample</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>README</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that explains how to use this sample set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>ResultSetSample.java</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample source code for fetching rows from a result set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>/samples/StatementSample</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>README</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that explains how to use this sample set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>StatementSample.java</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample source code for fetching rows from a simple SELECT statement.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_installation_requirements_3">5.2. Installation Requirements</h3>
<div class="paragraph">
<p>The Trafodion JDBC Type 4 Driver requires a Java-enabled platform that supports the Java Development Kit (JDK) 1.7 or higher.</p>
</div>
<div class="paragraph">
<p>To determine the Java version that you have installed on your client workstation and to install a supported version, please refer to
<a href="#jdbct4_JRE">Install Java Runtime Environment (JRE)</a> below.</p>
</div>
<div class="sect3">
<h4 id="jdbct4_JRE">5.2.1. Install Java Runtime Environment (JRE)</h4>
<div class="paragraph">
<p>The Trafodion JDBC Type 4 Driver requires that a compatible Java version be installed on the client workstation and that the Java path be set to
the correct location. The supported Java version is 1.7 or higher.</p>
</div>
<div class="sect4">
<h5 id="_verify_java_version">Verify Java Version</h5>
<div class="paragraph">
<p>To display the Java version of the client workstation on the screen, enter:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -version</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">C:\&gt; java -version
java version &quot;1.7.0_45&quot; # This is the version you need to check
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode, sharing)
C:\&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The Java version should be <strong>1.7</strong> or higher. If the returned version is not supported, please refer to
<a href="#jdbct4_install_java">Installing a Supported Java Version</a> below.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p>If you see this message:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">'java' is not recognized as an internal or external command, operable program or batch file.`</code></pre>
</div>
</div>
<div class="paragraph">
<p>It indicates that the Java PATH is not set. Follow one of these sets of instructions, depending on the operating system of your client
workstation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#jdbct4_path_windows">Setting the PATH to a Supported Java Version on Windows</a></p>
</li>
<li>
<p><a href="#jdbct4_path_linux">Setting the PATH to a Supported Java Version on Linux</a></p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="jdbct4_install_java">Install Supported Java Version</h5>
<div class="paragraph">
<p>The supported Java version is 1.7 or higher. To install one of the supported Java versions on the client workstation,
go to this link: <a href="http://www.java.com/en/download" class="bare">http://www.java.com/en/download</a></p>
</div>
<div class="paragraph">
<p>After installing the Java version, proceed with setting the Java path. Follow one of these sets of instructions, depending on the operating
system of your client workstation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#jdbct4_path_windows">Setting the PATH to a Supported Java Version on Windows</a></p>
</li>
<li>
<p><a href="#jdbct4_path_linux">Setting the PATH to a Supported Java Version on Linux</a></p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="jdbct4_path_windows">Set Windows PATH Variable</h5>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Right-click the <strong>Computer</strong> icon on your desktop, and then select <strong>Properties</strong>. The <strong>Control Panel &gt; System and Security &gt; System</strong> window
appears.</p>
</li>
<li>
<p>In the left navigation bar, click the <strong>Advanced</strong> system settings link.</p>
</li>
<li>
<p>In the <strong>System Properties</strong> dialog box, click the <strong>Environment Variables</strong> button.</p>
</li>
<li>
<p>Under <strong>System</strong> variables, select the variable named <strong>Path</strong>, and then click <strong>Edit</strong>:</p>
<div class="paragraph">
<p><span class="image"><img src="images/path2.jpg" alt="image"></span></p>
</div>
</li>
<li>
<p>Place the cursor at the start of the <strong>Variable</strong> value field and enter the path of the Java bin directory, ending with a semicolon (;):</p>
<div class="paragraph">
<p><span class="image"><img src="images/varval2.jpg" alt="image"></span></p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">&quot;C:\Program Files (x86)\Java\jre7\bin&quot;;</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Check that no space exists after the semicolon (;) in the path. If there are spaces in the directory name, delimit the entire directory
path in double quotes (") before the semicolon.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>Click <strong>OK</strong>.</p>
</li>
<li>
<p>Verify that the updated <strong>Path</strong> appears under <strong>System</strong> variables, and click <strong>OK</strong>.</p>
</li>
<li>
<p>In the <strong>System Properties</strong> dialog box, click <strong>OK</strong> to accept the changes.</p>
</li>
</ol>
</div>
</div>
<div class="sect4">
<h5 id="jdbct4_path_linux">Set Linux PATH Variable</h5>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Open the user profile (<code>.profile</code> or <code>.bash_profile</code> for the Bash shell) in the <code>$HOME</code> directory.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd $HOME
vi .profile</code></pre>
</div>
</div>
</li>
<li>
<p>In the user profile, set the <code>PATH</code> environment variable to include the path of the Java bin
directory.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">export PATH=/opt/java1.7/jre/bin:$PATH</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Place the path of the Java bin directory before <code>$PATH</code>, and check that no space exists after the colon (:) in the path. In the C shell,
use the setenv command instead of export.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>To activate the changes, either log out and log in again or execute the user profile.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">. .profile</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="jdbct4_install">5.3. Installation Instructions</h3>
<div class="sect3">
<h4 id="jdbct4_download">5.3.1. Download JDBC Type-4 Driver</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Create a download folder on the client workstation.</p>
</li>
<li>
<p>Open a Web browser and navigate to the Trafodion downloads site <a href="http://trafodion.incubator.apache.org/download.html" class="bare">http://trafodion.incubator.apache.org/download.html</a>.</p>
</li>
<li>
<p>Click on the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> link to start downloading the Trafodion clients tar file to your workstation.</p>
</li>
<li>
<p>Place the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> file into the download folder.</p>
</li>
<li>
<p>Unpack the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> file.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">tar -xzf clients-1.3.0.tar.gz</code></pre>
</div>
</div>
<div class="paragraph">
<p>The package file contains the <code>JDBCT4.zip</code> distribution file, which is extracted to the clients subdirectory.</p>
</div>
</li>
<li>
<p>Proceed with <a href="#jdbct4_install_zip">Installing the Trafodion JDBC Type 4 Driver From the Zip File</a> below.</p>
</li>
</ol>
</div>
</div>
<div class="sect3">
<h4 id="jdbct4_install_zip">5.3.2. Install JDBC Type-4 Driver</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Change the directory to the clients subdirectory.</p>
</li>
<li>
<p>Extract the contents of the <code>JDBCT4.zip</code> file by using the unzip command (or the WinZip extract tool):</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">unzip JDBCT4.zip</code></pre>
</div>
</div>
<div class="paragraph">
<p>The command creates these subdirectories:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>lib</code>, which contains the <code>jdbcT4.jar</code> file</p>
</li>
<li>
<p><code>samples</code>, which contains sample programs</p>
</li>
</ul>
</div>
</li>
<li>
<p>Set up the client environment. See <a href="#jdbct4_setup_env">Set Up Client Environment</a>.</p>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_uninstall_jdbc_type_4_driver">5.3.3. Uninstall JDBC Type-4 Driver</h4>
<div class="paragraph">
<p>Run one of these sets of commands to remove the Trafodion JDBC Type 4 Driver:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>On Linux:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rm -rf &lt;jdbc-installation-directory&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rm -rf /usr/local/jdbc</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
<div class="ulist">
<ul>
<li>
<p>On Windows:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">del &lt;jdbc-installation-directory&gt;
rmdir &lt;jdbc-installation-directory&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>Windows uninstall</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">C:\&gt;del /s JDBC
C:\JDBC\, Are you sure (Y/N)? Y
C:\JDBC\install\*, Are you sure (Y/N)? Y
Deleted file - C:\JDBC\install\t4jdbcSanityCheck.class
Deleted file - C:\JDBC\install\t4jdbcUninstall.class
Deleted file - C:\JDBC\install\product.contents
C:\JDBC\lib\*, Are you sure (Y/N)? Y
Deleted file - C:\JDBC\lib\jdbcT4.jar
C:\JDBC\samples\*, Are you sure (Y/N)? Y
Deleted file - C:\JDBC\samples\t4jdbc.properties
Deleted file - C:\JDBC\samples\README
C:\JDBC\samples\common\*, Are you sure (Y/N)? Y
Deleted file - C:\JDBC\samples\common\sampleUtils.java
C:\JDBC\samples\DBMetaSample\*, Are you sure (Y/N)? Y
Deleted file - C:\JDBC\samples\DBMetaSample\DBMetaSample.java
Deleted file - C:\JDBC\samples\DBMetaSample\README
C:\JDBC\samples\PreparedStatementSample\*, Are you sure (Y/N)? Y
Deleted file - C:\JDBC\samples\PreparedStatementSample\PreparedStatementSample.java
Deleted file - C:\JDBC\samples\PreparedStatementSample\README
C:\JDBC\samples\ResultSetSample\*, Are you sure (Y/N)? Y
Deleted file - C:\JDBC\samples\ResultSetSample\README
Deleted file - C:\JDBC\samples\ResultSetSample\ResultSetSample.java
C:\JDBC\samples\StatementSample\*, Are you sure (Y/N)? Y
Deleted file - C:\JDBC\samples\StatementSample\README
Deleted file - C:\JDBC\samples\StatementSample\StatementSample.java
C:\&gt;rmdir /s JDBC
JDBC, Are you sure (Y/N)? Y
C:\&gt;</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_reinstall_jdbc_type_4_driver">5.3.4. Reinstall JDBC Type-4 Driver</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Close all applications running on the workstation, except the Web browser.</p>
</li>
<li>
<p>In the browser, navigate to the download site and download the client package file. For more information, please refer to
<a href="#jdbct4_download">Downloading the Trafodion JDBC Type 4 Driver</a>.</p>
</li>
<li>
<p>Extract the contents of the zip file by following these instructions: <a href="#jdbct4_install_zip">Installing the Trafodion JDBC Type 4 Driver From the Zip File</a>.</p>
</li>
<li>
<p>Set up the client environment. Please refer to: <a href="#jdbct4_setup_env">Setting Up the Client Environment</a>.</p>
</li>
</ol>
</div>
</div>
</div>
<div class="sect2">
<h3 id="jdbct4_setup_env">5.4. Set Up Client Environment</h3>
<div class="paragraph">
<p>Check that you have a supported Java version installed on the client workstation. The supported Java version is 1.7 or higher. For more
information, see <a href="#jdbct4_JRE">Installing and Verifying the Java Runtime</a>.</p>
</div>
<div class="paragraph">
<p>If you plan to write and run Java applications that use the Trafodion JDBC Type 4 Driver to connect to a Trafodion database, set these
environment variables on the client workstation, replacing <code><em>jdk-directory</em></code> with the location of your Java Development Kit and
replacing <code><em>jdbc-installation-directory</em></code> with the name of the directory where you downloaded the JDBC Type 4 driver:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 20%;">
<col style="width: 40%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Environment Variable</th>
<th class="tableblock halign-left valign-top">On Windows</th>
<th class="tableblock halign-left valign-top">On Linux</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>JAVA_HOME</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>set JAVA_HOME=<em>jdk-directory</em></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>export JAVA_HOME=<em>jdk-directory</em></pre></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>PATH</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>set PATH=%PATH%;%JAVA_HOME%\bin</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>export PATH=$PATH:$JAVA_HOME/bin</pre></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>CLASSPATH</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>set CLASSPATH=%CLASSPATH%;_jdbc-installation-directory_\lib\jdbcT4.jar;</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>export CLASSPATH=$CLASSPATH:_jdbc-installation-directory_/lib/jdbcT4.jar:</pre></div></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
<div class="sect3">
<h4 id="_configure_applications">5.4.1. Configure Applications</h4>
<div class="paragraph">
<p>Edit the <code>t4jdbc.properties</code> file. Set these values for your environment:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>catalog</em>: Specify a catalog that exists in the database.</p>
</li>
<li>
<p><em>schema</em>: Specify a schema that exists in the database.</p>
</li>
<li>
<p><em>user</em>: Specify the name of a user who will be accessing the database.</p>
</li>
<li>
<p><em>password</em>: Specify the password of a user who will be accessing the database.</p>
</li>
<li>
<p><em>url</em>: Specify this string: <em>jdbc:t4jdbc://_host-name</em>:_port-number_/:_</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><em>host-name</em> is the IP address or host name of the database platform, and <em>port-number</em> is the location where the
Trafodion Database Connectivity Service (DCS) is running, which is 37800 by default.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">catalog = &lt;your-catalog&gt; schema = &lt;your-schema&gt; user = &lt;user-name&gt;
password = &lt;password&gt;
url = jdbc:t4jdbc://&lt;host-name&gt;:&lt;port-number&gt;/:</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The driver’s class name is <code>org.trafodion.jdbc.t4.T4Driver</code>.
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_install_trafci">6. Install TrafCI</h2>
<div class="sectionbody">
<div class="paragraph">
<p>These installation instructions apply to Trafodion Release 1.3.<strong><em>n</em></strong> and subsequent updates of the product until otherwise indicated.</p>
</div>
<div class="sect2">
<h3 id="_installation_package_3">6.1. Installation Package</h3>
<div class="paragraph">
<p>The distribution file for the Trafodion Command Interface (TrafCI) is packaged within the Trafodion clients tar file,
<code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code>, on the Trafodion downloads site <a href="http://trafodion.incubator.apache.org/download.html" class="bare">http://trafodion.incubator.apache.org/download.html</a>.
Use this distribution file to install TrafCI:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 35%;">
<col style="width: 35%;">
<col style="width: 30%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Distribution File</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Client Operating System</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafci.zip</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Zip file</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Windows or Linux</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The distribution zip file contains this installer file: <code>trafciInstaller.jar</code>, an executable JAR file.</p>
</div>
</div>
<div class="sect2">
<h3 id="_installation_requirements_4">6.2. Installation Requirements</h3>
<div class="paragraph">
<p>The Trafodion Command Interface (TrafCI) runs on Windows and Linux. Before installing TrafCI on the client workstation, follow these
instructions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#trafci_JRE">Install Java Runtime Environment</a></p>
</li>
<li>
<p><a href="#trafci_install_jdbct4">Install JDBC Type-4 Driver</a></p>
</li>
<li>
<p><a href="#trafci_perl_python">Install Perl or Python</a></p>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="trafci_JRE">6.2.1. Install/Verify Java Runtime Environment</h4>
<div class="paragraph">
<p>TrafCI and the Trafodion JDBC Type 4 Driver require that a compatible Java version be installed on the client workstation and that the Java
path be set to the correct location. The supported Java version is 1.7 or higher.</p>
</div>
<div class="paragraph">
<p>To determine the Java version that you have installed on your client workstation and to install a supported version, see
<a href="#jdbct4_JRE">Install Java Runtime Environment (JRE)</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="trafci_install_jdbct4">6.2.2. Install/Verify JDBC Type-4 Driver</h4>
<div class="paragraph">
<p>TrafCI requires a compatible version of the Trafodion JDBC Type 4 Driver to be installed on the client workstation before you install TrafCI.</p>
</div>
<div class="sect4">
<h5 id="_install_jdbc_type_4_driver_2">Install JDBC Type-4 Driver</h5>
<div class="paragraph">
<p>To install and use the JDBC driver, see <a href="#jdbct4_JRE">Install Java Runtime Environment (JRE)</a>.</p>
</div>
</div>
<div class="sect4">
<h5 id="_verify_jdbc_type_4_driver">Verify JDBC Type-4 Driver</h5>
<div class="paragraph">
<p>To display the version of the JDBC driver that is already installed on the client workstation:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Change the directory to the lib directory, which contains the JDBC driver JAR file:</p>
<div class="ulist">
<ul>
<li>
<p>On Windows, enter this command:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd jdbc-installation-directory\lib</code></pre>
</div>
</div>
<div class="paragraph">
<p><code><em>jdbc-installation-directory</em></code> is the directory where you installed the JDBC driver.</p>
</div>
</li>
<li>
<p>On Linux, enter this command:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd jdbc-installation-directory/lib</code></pre>
</div>
</div>
<div class="paragraph">
<p><code><em>jdbc-installation-directory</em></code> is the directory where you installed the JDBC driver.</p>
</div>
</li>
</ul>
</div>
</li>
<li>
<p>Enter this command to return version information:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -jar jdbcT4.jar</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">C:\&gt; cd &quot;\&lt;user-specified directory&gt;\lib&quot;
C:\&lt;user-specified directory&gt;\lib&gt; java -jar jdbcT4.jar
Traf_JDBC_Type4_Build_40894
C:\&lt;user-specified directory&gt;\lib&gt;</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>If the JAR file is inaccessible or the returned version is not supported, see <a href="#trafci_install_jdbct4">Install/Verify JDBC Type-4 Driver</a>.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect3">
<h4 id="trafci_perl_python">6.2.3. Install Perl or Python</h4>
<div class="paragraph">
<p>If you plan to use Perl or Python scripts with TrafCI, verify that you have Perl or Python installed on the client workstation. TrafCI supports
these versions of Perl and Python:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Perl version 5.8.8</p>
</li>
<li>
<p>Python version 2.3.4</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If you do not have Perl or Python, download it from any open source software provider. You can perform this installation procedure anytime
before or after installing TrafCI.</p>
</div>
<div class="paragraph">
<p>If you plan to run the sample scripts provided with TrafCI, verify that you have the Perl JavaServer and Jython (Java implementation of Python)
installed on your client workstation. Use the TrafCI Installation Wizard to automatically download and install both the Perl JavaServer and
Jython open source extensions. To download them manually, see the <code>README</code> in the samples directory.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_installation_instructions_3">6.3. Installation Instructions</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Before following the installation procedures, you must install the Trafodion JDBC Type 4 Driver on the client workstation. For more
information, see <a href="#trafci_install_jdbct4">Install JDBC Type-4 Driver</a>.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Follow these instructions to download and install TrafCI on the client workstation.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#trafci_download_installer">Download Installer</a></p>
</li>
<li>
<p><a href="#trafci_run_installer">Run Executable JAR Installer</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To uninstall TrafCI, see <a href="#trafci_uninstall">Uninstall_TrafCI</a>.</p>
</div>
<div class="sect3">
<h4 id="trafci_download_installer">6.3.1. Download Installer</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Create a download folder on the client workstation.</p>
</li>
<li>
<p>Open a Web browser and navigate to the Trafodion downloads site <a href="http://trafodion.incubator.apache.org/download/html" class="bare">http://trafodion.incubator.apache.org/download/html</a></p>
</li>
<li>
<p>Click on the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> link to start downloading the Trafodion clients tar file to your workstation.</p>
</li>
<li>
<p>Place the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> file into the download folder.</p>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>Unpack the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> file.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">tar -xzf clients-1.3.0.tar.gz</code></pre>
</div>
</div>
<div class="paragraph">
<p>The package file contains the trafci.zip distribution file, which is extracted to the clients subdirectory.</p>
</div>
</li>
<li>
<p>Change the directory to the clients subdirectory.</p>
</li>
<li>
<p>Extract the contents of the <code>trafci.zip</code> file to a location on your client workstation by using the unzip command (or the WinZip extract
tool):</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">unzip trafci.zip</code></pre>
</div>
</div>
<div class="paragraph">
<p>The command extracts these files:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>README</code></p>
</li>
<li>
<p><code>trafciInstaller.jar</code></p>
</li>
</ul>
</div>
</li>
<li>
<p>Proceed with <a href="#trafci_run_installer">Run Executable JAR Installer</a>.</p>
</li>
</ol>
</div>
</div>
<div class="sect3">
<h4 id="trafci_run_installer">6.3.2. Run Executable JAR Installer</h4>
<div class="paragraph">
<p>When using the executable JAR file, trafciInstaller.jar, to install TrafCI, you have a choice of running the installer from the Installer
Wizard Graphical User Interface (GUI) or from the command line:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#trafci_wizard_install">Installer Wizard Steps</a></p>
</li>
<li>
<p><a href="#trafci_cmd_install">Command-Line Installation Steps</a></p>
</li>
</ul>
</div>
<div class="sect4">
<h5 id="trafci_wizard_install">Installer Wizard Steps</h5>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
On Linux, to run the Installer Wizard, you must have the X Window system installed on the client workstation. If the client workstation
does not have the X Window system, see <a href="#trafci_cmd_install">Command-Line Installation Steps</a>.
</td>
</tr>
</table>
</div>
<div style="page-break-after: always;"></div>
<div class="sect5">
<h6 id="_launching_the_installer_wizard">Launching the Installer Wizard</h6>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Locate the <code>trafciInstaller.jar</code> file in the folder where you extracted the contents of the distribution (<code>.zip</code>) file.</p>
</li>
<li>
<p>Verify that the <code>trafciInstaller.jar</code> file appears as an executable JAR File. If not, skip the next two steps and go to Step 5.</p>
</li>
<li>
<p>Double-click the <code>trafciInstaller.jar</code> file to launch the Installer Wizard.</p>
</li>
<li>
<p>Proceed to <a href="#trafci_using_wizard">Using the Installer Wizard</a>.</p>
</li>
<li>
<p>At a command prompt, change to the directory where you extracted the installer files:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cd installer-directory</code></pre>
</div>
</div>
<div class="paragraph">
<p><code><em>installer-directory</em></code> is the directory where you extracted the installer file, <code>trafciInstaller.jar</code>.</p>
</div>
</li>
<li>
<p>Launch the Installer Wizard by entering:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -jar trafciInstaller.jar</code></pre>
</div>
</div>
</li>
<li>
<p>Proceed to <a href="#trafci_using_wizard">Using the Installer Wizard</a>.</p>
</li>
</ol>
</div>
</div>
<div class="sect5">
<h6 id="trafci_using_wizard">Using the Installer Wizard</h6>
<div class="paragraph">
<p>When you execute <code>trafciInstaller.jar</code>, the Installer Wizard appears:</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/InstallerWizardWelcome.jpg" alt="image"></span></p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Click one of these buttons for the type of installation that you would like to perform:</p>
<div class="ulist">
<ul>
<li>
<p><strong>Standard Installation</strong> to start the Installer Wizard, which guides you through installing both the core TrafCI components and the optional open
source extensions</p>
</li>
<li>
<p><strong>Core Components</strong> for a quick installation of the core TrafCI files</p>
</li>
<li>
<p><strong>Optional Components</strong> if you have already installed the core TrafCI files but want to install only the optional open source extensions</p>
</li>
</ul>
</div>
</li>
<li>
<p>After you have selected the components you wish to install, browse and select the JDBC JAR file and then specify an installation directory
where you will install TrafCI.</p>
<div class="paragraph">
<p><span class="image"><img src="images/InstallerWizardPaths.jpg" alt="image"></span></p>
</div>
</li>
<li>
<p>To locate the JDBC driver JAR file, click <strong>Browse</strong> next to the <strong>JDBC Type 4 Driver JAR File</strong>.</p>
</li>
<li>
<p>In the <strong>Select JDBC Type 4 Driver JAR File</strong> dialog box, navigate to and select the lib folder of the Trafodion JDBC driver, and then click <strong>Open</strong>.</p>
</li>
<li>
<p>Select <code>jdbcT4.jar</code> so that it appears in the <strong>File Name</strong> box, and then click <strong>Select</strong>.</p>
<div class="paragraph">
<p>The Installer Wizard now displays the path of the JDBC driver JAR file.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/JDBC_JAR_Path.jpg" alt="image"></span></p>
</div>
</li>
<li>
<p>To install in the default location, proceed to Step 9. To install in your own preferred location, proceed to Step 7.</p>
</li>
<li>
<p>To find an installation location for TrafCI, click <strong>Browse</strong> next to the <strong>Trafodion Command Interface</strong> installation directory.</p>
</li>
<li>
<p>In the <strong>Select Trafodion Command Interface Installation Directory</strong> dialog box, select the folder where you want to install TrafCI so that
the directory path appears in the <strong>File Name</strong> box, and then click <strong>Select</strong>.</p>
<div class="paragraph">
<p>The Installer Wizard displays the directory where TrafCI is installed.</p>
</div>
</li>
<li>
<p>Click <strong>Next</strong> to review the open-source legal disclaimer.</p>
</li>
<li>
<p>If you agree to the terms and conditions, select the check box, and click <strong>Next</strong>.</p>
<div class="paragraph">
<p>The Installer Wizard dialog box shows which components are available for you to download and install.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/OptionalComponents.jpg" alt="image"></span></p>
</div>
</li>
<li>
<p>Select the optional components to be downloaded and installed. Each optional component is installed if the component box is checked.</p>
<div class="paragraph">
<p>If you want to change the download URL for the extensions, click <strong>Edit URL</strong>, and this dialog box appears:</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/PerlJavaServerURL.jpg" alt="image"></span></p>
</div>
<div class="paragraph">
<p>Type a new path, and click <strong>OK</strong>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Perl and Python must be installed for the respective extensions to work.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>If you do not require a proxy server, proceed to Step 15.</p>
</li>
<li>
<p>If you require a proxy server, select <strong>Use the following proxy settings</strong> and enter the proxy server and port for downloading the open
source extensions.</p>
<div class="paragraph">
<p><span class="image"><img src="images/ProxySettings.jpg" alt="image"></span></p>
</div>
</li>
<li>
<p>Click <strong>Detect Proxy Server(s)</strong> to try to auto-detect your proxy settings. If TrafCI detects one or more proxy servers, it displays
them in a drop-down menu next to the <strong>Detect Proxy Server(s)</strong> button.</p>
</li>
<li>
<p>Click <strong>Install</strong> to start the installation.</p>
</li>
<li>
<p>After the core TrafCI files are installed, the <strong>Installation Status</strong> dialog box appears indicating how many files were extracted to the
installation directory:</p>
<div class="paragraph">
<p><span class="image"><img src="images/Extracted_Files.jpg" alt="image"></span></p>
</div>
<div class="paragraph">
<p>Click <strong>OK</strong> to continue the installation.</p>
</div>
</li>
<li>
<p>If you chose to install the optional components, the installer attempts to download and install them. The progress bar indicates the
download progress of each file. In addition, an installation log provides details about the status of the download and installation of
the components.</p>
<div class="paragraph">
<p><span class="image"><img src="images/InstallComplete.jpg" alt="image"></span></p>
</div>
</li>
<li>
<p>After all TrafCI files are installed, the Installer Wizard completes.</p>
</li>
<li>
<p>Click <strong>Exit</strong>.</p>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect4">
<h5 id="trafci_cmd_install">Command-Line Installation Steps</h5>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>At a command prompt, change to the directory where you extracted the contents of the distribution (.zip) file:</p>
<div class="exampleblock">
<div class="content">
<div class="paragraph">
<p><strong>cd <em>installer-directory</em></strong></p>
</div>
</div>
</div>
<div class="paragraph">
<p><code><em>installer-directory</em></code> is the directory where you extracted the installer files.</p>
</div>
</li>
<li>
<p>Before launching the command-line installer, see the command options below:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -jar trafciInstaller.jar -help
Usage: java -jar &lt;installer jar&gt; [ -help] | &lt;-cm|-silent&gt;
[-jdbcFile &lt;jdbc filename&gt;] [-installDir &lt;install dir&gt;] ]</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>-silent</code> option installs the client without prompting you for options.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -jar trafciInstaller.jar -silent -jdbcFile &quot;C:\JDBC\lib\jdbcT4.jar&quot; -installDir C:\TRAFCI</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>-jdbcFile</em> and <em>-installDir</em> are optional parameters. If you do not specify those parameters, you will be prompted to enter them during
installation.</p>
</div>
</li>
<li>
<p>Launch the command-line installer by entering this command:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">java -jar trafciInstaller.jar cm</code></pre>
</div>
</div>
<div class="paragraph">
<p>The command-line installer starts and prompts you to enter the type of installation:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">/home/myname/trafcitemp&gt;java -jar trafciInstaller.jar cm
********************************************************************
**** **
**** Welcome to Trafodion Command Interface Installer **
**** **
**** NOTE: The installer requires a the JDBC Type 4 **
**** Driver to be installed a on your workstation. **
********************************************************************
Type Y for a standard installation, or N for optional components only.
Standard Installation [Y]:</code></pre>
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>For a standard installation, type <strong>Y</strong> and press <strong>Enter</strong>.</p>
</li>
<li>
<p>To install the optional components only, type <strong>N</strong>, press <strong>Enter</strong>, and proceed to Step 7.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
All items in square brackets are default values. Press Enter to accept the default value.
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
</li>
<li>
<p>Enter the full directory path and file name of the JDBC driver JAR file, <code>jdbcT4.jar</code>, which is located in the JDBC driver lib directory:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">JDBC Type 4 Driver JAR File
--------------------------------
Enter the location and file name:</code></pre>
</div>
</div>
</li>
<li>
<p>Enter an existing directory where you would like to install TrafCI:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Trafodion Command Interface
--------------------------------
Enter the installation directory:</code></pre>
</div>
</div>
<div class="paragraph">
<p>The installation status appears, indicating how many files are installed in the installation directory:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Extracted 18 files from the
/home/myname/trafcitemp/trafciInstaller.jar archive into the
/usr/local/trafci directory.
Core TRAFCI files installed.
Do you want to install the optional components? [Y]:</code></pre>
</div>
</div>
</li>
<li>
<p>If you do not wish to download and install the optional components, type <strong>N</strong> at the prompt and press Enter, and your installation
is complete. Otherwise, type <strong>Y</strong>, press <strong>Enter</strong>, and proceed through the remainder of the installation.</p>
</li>
<li>
<p>Type <strong>Y</strong> and press <strong>Enter</strong> if you agree to the terms. If you are doing an optional install only, you are prompted to enter a valid TrafCI
installation directory:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Do you agree to these terms? (Y or N): Y
Enter your installation directory:</code></pre>
</div>
</div>
</li>
<li>
<p>If you do not require a proxy server, type <strong>N</strong>, press <strong>Enter</strong>, and proceed to Step 10. Otherwise, type <strong>Y</strong>, press <strong>Enter</strong>,
and proceed to Step 9.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Use a proxy server? [N]:</code></pre>
</div>
</div>
</li>
<li>
<p>When prompted to auto-detect proxy servers, type <strong>Y</strong> and press <strong>Enter</strong> to direct TrafCI to detect your proxy settings.
If TrafCI finds proxy servers, it displays them. If you type <strong>N</strong> and press <strong>Enter</strong>, TrafCI prompts you to enter the proxy server and port:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Use a proxy server? [Y]: Y
Attempt to auto-detect proxy server(s)? [Y]: N
Enter the proxy server (do not include the port): myproxyserver.com
Enter the proxy port: 8080</code></pre>
</div>
</div>
</li>
<li>
<p>You are prompted to select which optional components you wish to download and install. You can also change the download URL.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Install Perl JavaServer extensions? [Y]: Y
Perl JavaServer requires 3 files: Java.pm, JavaArray.pm, and JavaServer.jar
http://search.cpan.org/src/METZZO/Java-4.7/[URL of the folder which contains these files [http://search.cpan.org/src/METZZO/Java-4.7/]:]
Install Perl XML SAX Module? [Y]: Y
Perl SAX XML Module URL (PerlSAX.pm)
Install Jython, a Java implementation of Python? [Y]: Y
Jython URL (jython_installer-2.2.jar)</code></pre>
</div>
</div>
</li>
<li>
<p>The setup proceeds to download and install the optional open-source components. As each component is retrieved, dots (.) are printed to
indicate the progress of the download.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">Downloading Perl JavaServer [1 of 3] - Java.pm
......................... 100%
Downloading Perl JavaServer [2 of 3] - JavaArray.pm1
......................... 100%
Downloading Perl JavaServer [3 of 3] - JavaServer.jar
......................... 100%
Successfully added settings.pl
Downloading Perl XML SAX Module [1 of 1] - PerlSAX.pm
......................... 100%
Downloading Jython [1 of 1] - jython_installer-2.2.jar
......................... 100%
Successfully Installed Jython. Successfully added settings.py
Trafodion Command Interface Installation Complete.
/home/myname/trafcitemp&gt;</code></pre>
</div>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect3">
<h4 id="trafci_uninstall">6.3.3. Uninstall TrafCI</h4>
<div class="paragraph">
<p>If you used the executable JAR file, <code>trafciInstaller.jar</code>, to install TrafCI, delete the entire
<code>Trafodion Command Interface</code> folder to uninstall TrafCI.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_post_installation_instructions">6.4. Post-Installation Instructions</h3>
<div class="sect3">
<h4 id="_verify_installed_software_files">6.4.1. Verify Installed Software Files</h4>
<div class="paragraph">
<p>After downloading and running the installer file, verify that the TrafCI software files are installed in the correct locations:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 15%;">
<col style="width: 20%;">
<col style="width: 65%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Folder</th>
<th class="tableblock halign-left valign-top">Files</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>bin</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafci</pre></div></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafci.cmd</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Windows launch file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafci.pl</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Perl wrapper script. <em>trafci-perl.pl</em> is renamed <em>trafci.pl</em>. To run this script, see the
<a href="http://trafodion.incubator.apache.com/docs/command_interface/index.html"><em>Trafodion Command Interface Guide</em></a>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafci.py</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Python wrapper script. trafci-python.py is renamed as trafci.py. To run this script, see the
<a href="http://trafodion.incubator.apache.com/docs/command_interface/index.html"><em>Trafodion Command Interface Guide</em></a>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafci.sh</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Linux launch file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafci-perl.pl</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Perl wrapper script. This script has been modified to invoke trafci.pl. This script is retained for backward compatibility.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafci-python.py</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Python wrapper script. This script has been modified to invoke trafci.py. This script is retained for backward compatibility.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>lib</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafci.jar</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Product JAR file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>lib/perl</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>Session.pm</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Product file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>lib/python</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>Session.py</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Product file.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>samples</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>README</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Readme file that describes how to use the sample scripts.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>arrayDML.pl</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Perl program that executes DML statements and returns results in an array format.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>sample.pl</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Perl program that supports multiple sessions in one script.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>sample.sql</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample SQL script.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>sampleDDL.py</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Python file that uses Jython to execute DDL statements.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>sampleDML.py</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Python file that uses Jython to execute DML statements.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>sampleTables.pl</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Perl file that lists all tables and respective row counts. The file accepts a wild-card argument on the command line.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre></pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>sampleTables.py</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample Python file that lists all tables and respective row counts. The file accepts a wild-card argument on the command line.</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_test_launching_trafci">6.4.2. Test Launching TrafCI</h4>
<div class="paragraph">
<p>Before launching TrafCI, make sure that you have set the Java path to the correct location. For more information, see:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#jdbct4_path_windows">Setting the PATH to a Supported</a></p>
</li>
<li>
<p><a href="#jdbct4_path_linux">Setting the PATH to a Supported Java Version on Linux</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If you did not set the Java path on your client workstation and you try to launch TrafCI, you might see the following error message appear
momentarily in the TrafCI window before the TrafCI window disappears:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">'java' is not recognized as an internal or external command, operable program or batch file.</code></pre>
</div>
</div>
<div class="paragraph">
<p>For information about setting up the client, such as choosing the look and feel of the interface or presetting launch parameters, see the
<a href="http://trafodion.incubator.apache.com/docs/command_interface/index.html"><em>Trafodion Command Interface Guide</em></a>.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_install_odb">7. Install odb</h2>
<div class="sectionbody">
<div class="paragraph">
<p>These installation instructions apply to Trafodion Release 1.3.<strong><em>n</em></strong> and subsequent updates of the product until otherwise indicated.</p>
</div>
<div class="sect2">
<h3 id="_installation_package_4">7.1. Installation Package</h3>
<div class="paragraph">
<p>The distribution file for odb is packaged within the Trafodion clients tar file, <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code>,
on the Trafodion downloads site <a href="http://trafodion.incubator.apache.org/download.html" class="bare">http://trafodion.incubator.apache.org/download.html</a>.
Use this distribution file to install odb:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 35%;">
<col style="width: 35%;">
<col style="width: 30%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Distribution File</th>
<th class="tableblock halign-left valign-top">File Contents</th>
<th class="tableblock halign-left valign-top">Client Operating System</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>odb64_linux.tar.gz</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>README<br>
/bin/odb64luo</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">64-bit Linux</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_installation_requirements_5">7.2. Installation Requirements</h3>
<div class="paragraph">
<p>The odb tool runs on 64-bit Linux. On a Linux workstation, odb requires <code>pthread</code> libraries, which are usually installed by default. It also
requires the unixODBC Driver Manager to be installed and configured on the client workstation. For more information, see the
<a href="http://trafodion.apache.org/docs/odb_user/index.html"><em>Trafodion odb User Guide</em></a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="_installation_instructions_4">7.3. Installation Instructions</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Before following these installation instructions, please make sure to install and configure unixODBC on the client workstation. For more
information, see the <a href="http://trafodion.apache.org/docs/odb_user/index.html"><em>Trafodion odb User Guide</em></a>.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Follow these instructions to download and install odb on the client workstation.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#odb_download">Downloading odb</a></p>
</li>
<li>
<p><a href="#odb_install">Installing odb</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To uninstall odb, please refer to <a href="#odb_uninstall">Uninstalling odb</a>.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="sect3">
<h4 id="odb_download">7.3.1. Download odb</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Create a download folder on the client workstation.</p>
</li>
<li>
<p>Open a Web browser and navigate to the Trafodion downloads site <a href="http://trafodion.incubator.apache.org/download.html" class="bare">http://trafodion.incubator.apache.org/download.html</a></p>
</li>
<li>
<p>Click on the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> link to start downloading the Trafodion clients tar file to your workstation.</p>
</li>
<li>
<p>Place the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> file into the download folder.</p>
</li>
<li>
<p>Unpack the <code>clients-1.3.<strong><em>n</em></strong>.tar.gz</code> file.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">tar -xzf clients-1.3.0.tar.gz</code></pre>
</div>
</div>
<div class="paragraph">
<p>The package file contains the <code>odb64_linux.tar.gz</code> distribution file, which is extracted to the clients subdirectory.</p>
</div>
</li>
<li>
<p>Proceed with <a href="#odb_install">Installing odb</a>.</p>
</li>
</ol>
</div>
</div>
<div class="sect3">
<h4 id="odb_install">7.3.2. Install odb</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Change the directory to the clients subdirectory.</p>
</li>
<li>
<p>Unpack the contents of the <code>odb64_linux.tar.gz</code> file to a location on your client workstation:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">tar -xzf odb64_linux.tar.gz</code></pre>
</div>
</div>
<div class="paragraph">
<p>The command extracts these files:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>README</code></p>
</li>
<li>
<p><code>/bin/odb64luo</code> <code>odb64luo</code> is the odb executable.</p>
</li>
</ul>
</div>
</li>
<li>
<p>You are now ready to run the odb executable. For more information, see the <a href="http://trafodion.apache.org/docs/odb_user/index.html"><em>Trafodion odb User Guide</em></a>.</p>
</li>
</ol>
</div>
</div>
<div class="sect3">
<h4 id="odb_uninstall">7.3.3. Uninstall odb</h4>
<div class="paragraph">
<p>To uninstall odb, delete the <code>README</code> and <code>/bin/odb64luo</code> files from their installed location.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">rm -rf odb-installation-directory</code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_configure_dbvisualizer">8. Configure DbVisualizer</h2>
<div class="sectionbody">
<div class="paragraph">
<p>These configuration instructions apply to Trafodion Release 1.3.<strong><em>n</em></strong> and subsequent updates of Trafodion until otherwise indicated.</p>
</div>
<div class="sect2">
<h3 id="_prerequisite_software">8.1. Prerequisite Software</h3>
<div class="paragraph">
<p>Make sure that you have this software installed on your workstation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Java Runtime Environment (JRE) 1.7 or higher.</p>
<div class="paragraph">
<p>See <a href="#jdbct4_JRE">Install Java Runtime Environment (JRE)</a>.</p>
</div>
<div class="paragraph">
<p>In addition, see DbVisualizer’s FAQ “How to” page:
<a href="http://confluence.dbvis.com/pages/viewpage.action?pageId=3146120"><em>How do I change the Java version that DbVisualizer uses?</em></a></p>
</div>
</li>
<li>
<p>Trafodion JDBC Type-4 Driver. See <a href="#jdbct4_install">JDBC Type-4 Installation</a>.</p>
</li>
<li>
<p>DbVisualizer 9.x.x. See the <a href="http://www.dbvis.com/"><em>DbVisualizer website</em></a>.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_configuration_instructions">8.2. Configuration Instructions</h3>
<div class="sect3">
<h4 id="_disable_connection_validation_select_option">8.2.1. Disable Connection Validation Select Option</h4>
<div class="sect4">
<h5 id="_dbvisualizer_9_1_or_an_earlier_version">DbVisualizer 9.1 (or an earlier version)</h5>
<div class="paragraph">
<p>Edit the <code><em>DbVisualizer-Install-Dir</em>\resources\dbvis-custom.prefs</code> file and
disable the <code>ConnectionValidationSelect</code> option as shown below:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">dbvis.generic.-ConnectionValidationSelect=disabled</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="_dbvisualizer_9_2_or_a_later_version">DbVisualizer 9.2 (or a later version)</h5>
<div class="paragraph">
<p>Set the <strong>Physical Connection</strong> property to keep your connections alive. Follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>For the database connection, select the <strong>Properties</strong> tab.</p>
</li>
<li>
<p>In the left navigation tree, expand the <strong>Generic</strong> connection properties, and select <strong>Physical Connection</strong>.</p>
</li>
<li>
<p>Under <strong>Validation SQL</strong>, enter <code>values(current_timestamp)</code>.</p>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><span class="image"><img src="images/Physical_Connection.jpg" alt="DbVisualizer Physical Connection" width="600" height="600"></span></p>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect3">
<h4 id="_register_jdbc_type_4_driver">8.2.2. Register JDBC Type-4 Driver</h4>
<div class="paragraph">
<p>Use the DbVisualizer Driver Manager and register the Trafodion JDBC Type-4 Driver.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/DbVisualizer_Driver_Manager.jpg" alt="image"></span></p>
</div>
<div class="ulist">
<ul>
<li>
<p>Use the Open File icon and locate the Trafodion JDBC Type-4 Driver.</p>
</li>
<li>
<p>Use the JDBC URL format:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">jdbc:t4jdbc://&lt;host-name or ip-address&gt;:37800/:</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_connect_to_trafodion">8.2.3. Connect to Trafodion</h4>
<div class="paragraph">
<p>Create a new connection by selecting the Trafodion JDBC Type-4 Driver and filling in the connection parameters. Edit the database URL to match
your Trafodion system’s host name and port number: <code>jdbc:t4jdbc://&lt;host-name or ip-address&gt;:37800/:</code></p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/Database_Connection_in_DbVisualizer.jpg" alt="image"></span></p>
</div>
<div class="paragraph">
<p>Once you have connected successfully, execute a query using SQL Commander to confirm the connection.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_configure_squirrel_client">9. Configure SQuirreL Client</h2>
<div class="sectionbody">
<div class="paragraph">
<p>These configuration instructions apply to Trafodion Release 1.3.<strong><em>n</em></strong> and subsequent updates of Trafodion until otherwise indicated.</p>
</div>
<div class="sect2">
<h3 id="_prerequisite_software_2">9.1. Prerequisite Software</h3>
<div class="paragraph">
<p>Make sure that you have this software installed on your workstation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Java Runtime Environment (JRE) 1.7 or higher. See <a href="#jdbct4_JRE">Install Java Runtime Environment (JRE)</a>.</p>
</li>
<li>
<p>Trafodion JDBC Type-4 Driver. See <a href="#jdbct4_install">JDBC Type-4 Installation</a>.</p>
</li>
<li>
<p>SQuirreL SQL Client 3.5.0. See the <a href="http://squirrel-sql.sourceforge.net/"><em>SQuirreL SQL Client website</em></a>.</p>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="_configuration_instructions_2">9.2. Configuration Instructions</h3>
<div class="sect3">
<h4 id="_register_jdbc_type_4_driver_2">9.2.1. Register JDBC Type-4 Driver</h4>
<div class="paragraph">
<p>Use the <strong>Add Driver</strong> function and register the Trafodion JDBC Type-4 Driver:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Click on the <strong>Add</strong> button and locate the Trafodion JDBC Type-4 Driver.</p>
</li>
<li>
<p>Click on the <strong>List Drivers</strong> button to find the JDBC Driver Class Name.</p>
</li>
<li>
<p>Set the properties as shown below:</p>
<div class="paragraph">
<p><span class="image"><img src="images/Add_Driver_SQuirreL.jpg" alt="SQuirreL Add Driver Dialog Box"></span></p>
</div>
<div class="ulist">
<ul>
<li>
<p>Name: <code>Trafodion</code></p>
</li>
<li>
<p>Example URL: <code>jdbc:t4jdbc://<em>host-name or ip-address</em>:37800/:</code></p>
</li>
</ul>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_connect_to_trafodion_2">9.2.2. Connect to Trafodion</h4>
<div class="paragraph">
<p>Use the Add Alias dialog box and create an alias for your Trafodion System:</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="images/Add_Alias_SQuirreL.jpg" alt="SQuirreL Add Alias Dialog Box"></span></p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Edit the connection <strong>URL</strong> to match your Trafodion system&#8217;s host name and port number:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">jdbc:t4jdbc://&lt;host-name or ip-address&gt;:37800/:</code></pre>
</div>
</div>
</li>
<li>
<p>Click on the <strong>Properties</strong> button for the alias.</p>
<div style="page-break-after: always;"></div>
</li>
<li>
<p>In the <strong>Schemas</strong> tab, select the option <strong>Load all and cache all Schemas</strong>.</p>
<div class="paragraph">
<p><span class="image"><img src="images/Properties_for_Alias_SQuirreL.jpg" alt="SQuirreL Properties Dialog Box" width="400" height="400"></span></p>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>Once you have a successful connection, use the SQL tab and run a query to confirm the connection.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_appendix">10. Appendix</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="odbc_sample_program">10.1. <code>basicsql</code> (Sample ODBC Program)</h3>
<div class="paragraph">
<p>This appendix provides the source code for the ODBC sample program, <code>basicsql,</code> which is not currently bundled with the ODBC drivers.</p>
</div>
<div class="paragraph">
<p>This appendix also provides the code for the script files that are needed to build and run the sample program on Windows. See
<a href="#basicsql_build">Windows Build and Run Files for 'basicsql'</a>.</p>
</div>
<div class="paragraph">
<p>Copy and paste the code from this appendix into the recommended files. To build and run the sample program, see these instructions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>On Windows: <a href="#win_odbc_run_basicsql">Run Sample Program (<code>basicsql</code>)</a>.</p>
</li>
<li>
<p>On Linux: <a href="#linux_odbc_run_basicsql">Run Sample Program (<code>basicsql</code>)</a>.</p>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="__code_basicsql_cpp_code_source_code">10.1.1. <code>basicsql.cpp</code> Source Code</h4>
<div class="paragraph">
<p>You can download the <code>basicsql.cpp</code> example from
<a href="http://trafodion.incubator.apache.org/docs/latest/client_install/resources/source/basicsql.cpp" class="bare">http://trafodion.incubator.apache.org/docs/latest/client_install/resources/source/basicsql.cpp</a>.</p>
</div>
<div class="paragraph">
<p>Alternatively, copy and paste the following code into a file named <code>basicsql.cpp</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cplusplus"><span class="comment">// @@@ START COPYRIGHT @@@</span>
<span class="comment">//</span>
<span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span>
<span class="comment">// or more contributor license agreements. See the NOTICE file</span>
<span class="comment">// distributed with this work for additional information</span>
<span class="comment">// regarding copyright ownership. The ASF licenses this file</span>
<span class="comment">// to you under the Apache License, Version 2.0 (the</span>
<span class="comment">// &quot;License&quot;); you may not use this file except in compliance</span>
<span class="comment">// with the License. You may obtain a copy of the License at</span>
<span class="comment">//</span>
<span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="comment">//</span>
<span class="comment">// Unless required by applicable law or agreed to in writing,</span>
<span class="comment">// software distributed under the License is distributed on an</span>
<span class="comment">// &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span>
<span class="comment">// KIND, either express or implied. See the License for the</span>
<span class="comment">// specific language governing permissions and limitations</span>
<span class="comment">// under the License.</span>
<span class="comment">//</span>
<span class="comment">// @@@ END COPYRIGHT @@@</span>
<span class="preprocessor">#ifdef</span> __linux
<span class="preprocessor">#include</span> <span class="include">&lt;unistd.h&gt;</span>
<span class="preprocessor">#else</span>
<span class="preprocessor">#include</span> <span class="include">&lt;windows.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;tchar.h&gt;</span>
<span class="preprocessor">#endif</span>
<span class="comment">//#include &lt;stdarg.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;stdio.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;string.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;stdlib.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;assert.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;sql.h&gt;</span>
<span class="preprocessor">#include</span> <span class="include">&lt;sqlext.h&gt;</span>
SQLHENV henv;
SQLHDBC hdbc;
SQLHSTMT hstmt;
SQLHWND hWnd;
<span class="preprocessor">#define</span> MAX_SQLSTRING_LEN <span class="integer">1000</span>
<span class="preprocessor">#define</span> STATE_SIZE <span class="integer">6</span>
<span class="preprocessor">#define</span> MAX_CONNECT_STRING <span class="integer">256</span>
<span class="preprocessor">#define</span> TRUE <span class="integer">1</span>
<span class="preprocessor">#define</span> FALSE <span class="integer">0</span>
<span class="preprocessor">#define</span> ARGS <span class="string"><span class="delimiter">&quot;</span><span class="content">d:u:p:</span><span class="delimiter">&quot;</span></span>
<span class="directive">const</span> <span class="predefined-type">char</span> *SqlRetText(<span class="predefined-type">int</span> rc)
{
<span class="directive">static</span> <span class="predefined-type">char</span> buffer[<span class="integer">80</span>];
<span class="keyword">switch</span> (rc)
{
<span class="keyword">case</span> SQL_SUCCESS:
<span class="keyword">return</span>(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQL_SUCCESS</span><span class="delimiter">&quot;</span></span>);
<span class="keyword">case</span> SQL_SUCCESS_WITH_INFO:
<span class="keyword">return</span>(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQL_SUCCESS_WITH_INFO</span><span class="delimiter">&quot;</span></span>);
<span class="keyword">case</span> SQL_NO_DATA:
<span class="keyword">return</span>(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQL_NO_DATA</span><span class="delimiter">&quot;</span></span>);
<span class="keyword">case</span> SQL_ERROR:
<span class="keyword">return</span>(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQL_ERROR</span><span class="delimiter">&quot;</span></span>);
<span class="keyword">case</span> SQL_INVALID_HANDLE:
<span class="keyword">return</span>(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQL_INVALID_HANDLE</span><span class="delimiter">&quot;</span></span>);
<span class="keyword">case</span> SQL_STILL_EXECUTING:
<span class="keyword">return</span>(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQL_STILL_EXECUTING</span><span class="delimiter">&quot;</span></span>);
<span class="keyword">case</span> SQL_NEED_DATA:
<span class="keyword">return</span>(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQL_NEED_DATA</span><span class="delimiter">&quot;</span></span>);
}
sprintf(buffer,<span class="string"><span class="delimiter">&quot;</span><span class="content">SQL Error %d</span><span class="delimiter">&quot;</span></span>,rc);
<span class="keyword">return</span>(buffer);
}
<span class="directive">void</span> CleanUp()
{
printf(<span class="string"><span class="delimiter">&quot;</span><span class="char">\n</span><span class="content">Connect Test FAILED!!!</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
<span class="keyword">if</span>(hstmt != SQL_NULL_HANDLE)
SQLFreeHandle(SQL_HANDLE_STMT,hstmt);
<span class="keyword">if</span>(hdbc != SQL_NULL_HANDLE)
{
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
}
<span class="keyword">if</span>(henv != SQL_NULL_HANDLE)
SQLFreeHandle(SQL_HANDLE_ENV,henv);
exit(EXIT_FAILURE);
}
<span class="directive">void</span> LogDiagnostics(<span class="directive">const</span> <span class="predefined-type">char</span> *sqlFunction, SQLRETURN rc, <span class="predefined-type">bool</span> exitOnError=<span class="predefined-constant">true</span>)
{
SQLRETURN diagRC = SQL_SUCCESS;
SQLSMALLINT recordNumber;
SQLINTEGER nativeError;
SQLCHAR messageText[SQL_MAX_MESSAGE_LENGTH];
SQLCHAR sqlState[<span class="integer">6</span>];
<span class="predefined-type">int</span> diagsPrinted = <span class="integer">0</span>;
<span class="predefined-type">bool</span> printedErrorLogHeader = <span class="predefined-constant">false</span>;
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Function %s returned %s</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>, sqlFunction, SqlRetText(rc));
<span class="comment">/* Log any henv Diagnostics */</span>
recordNumber = <span class="integer">1</span>;
<span class="keyword">do</span>
{
diagRC = SQLGetDiagRec( SQL_HANDLE_ENV
, henv
, recordNumber
, sqlState
, &amp;nativeError
, messageText
, <span class="keyword">sizeof</span>(messageText)
, <span class="predefined-constant">NULL</span>
);
<span class="keyword">if</span>(diagRC==SQL_SUCCESS)
{
<span class="keyword">if</span>(!printedErrorLogHeader)
{
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Diagnostics associated with environment handle:</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
printedErrorLogHeader = <span class="predefined-constant">true</span>;
}
printf(<span class="string"><span class="delimiter">&quot;</span><span class="char">\n</span><span class="char">\t</span><span class="content">SQL Diag %d</span><span class="char">\n</span><span class="char">\t</span><span class="content">Native Error: %ld</span><span class="char">\n</span><span class="char">\t</span><span class="content">SQL State: %s</span><span class="char">\n</span><span class="char">\t</span><span class="content">Message: %s</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>,
recordNumber,nativeError,sqlState,messageText);
}
recordNumber++;
} <span class="keyword">while</span> (diagRC==SQL_SUCCESS);
<span class="comment">/* Log any hdbc Diagnostics */</span>
recordNumber = <span class="integer">1</span>;
printedErrorLogHeader = <span class="predefined-constant">false</span>;
<span class="keyword">do</span>
{
diagRC = SQLGetDiagRec( SQL_HANDLE_DBC
, hdbc
, recordNumber
, sqlState
, &amp;nativeError
, messageText
, <span class="keyword">sizeof</span>(messageText)
, <span class="predefined-constant">NULL</span>
);
<span class="keyword">if</span>(diagRC==SQL_SUCCESS)
{
<span class="keyword">if</span>(!printedErrorLogHeader)
{
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Diagnostics associated with connection handle:</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
printedErrorLogHeader = <span class="predefined-constant">true</span>;
}
printf(<span class="string"><span class="delimiter">&quot;</span><span class="char">\n</span><span class="char">\t</span><span class="content">SQL Diag %d</span><span class="char">\n</span><span class="char">\t</span><span class="content">Native Error: %ld</span><span class="char">\n</span><span class="char">\t</span><span class="content">SQL State: %s</span><span class="char">\n</span><span class="char">\t</span><span class="content">Message: %s</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>,
recordNumber,nativeError,sqlState,messageText);
}
recordNumber++;
} <span class="keyword">while</span> (diagRC==SQL_SUCCESS);
<span class="comment">/* Log any hstmt Diagnostics */</span>
recordNumber = <span class="integer">1</span>;
printedErrorLogHeader = <span class="predefined-constant">false</span>;
<span class="keyword">do</span>
{
diagRC = SQLGetDiagRec( SQL_HANDLE_STMT
, hstmt
, recordNumber
, sqlState
, &amp;nativeError
, messageText
, <span class="keyword">sizeof</span>(messageText)
, <span class="predefined-constant">NULL</span>
);
<span class="keyword">if</span>(diagRC==SQL_SUCCESS)
{
<span class="keyword">if</span>(!printedErrorLogHeader)
{
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Diagnostics associated with statmement handle:</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
printedErrorLogHeader = <span class="predefined-constant">true</span>;
}
printf(<span class="string"><span class="delimiter">&quot;</span><span class="char">\n</span><span class="char">\t</span><span class="content">SQL Diag %d</span><span class="char">\n</span><span class="char">\t</span><span class="content">Native Error: %ld</span><span class="char">\n</span><span class="char">\t</span><span class="content">SQL State: %s</span><span class="char">\n</span><span class="char">\t</span><span class="content">Message: %s</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>,
recordNumber,nativeError,sqlState,messageText);
}
recordNumber++;
} <span class="keyword">while</span> (diagRC==SQL_SUCCESS);
<span class="keyword">if</span>(exitOnError &amp;&amp; rc!=SQL_SUCCESS_WITH_INFO)
CleanUp();
}
<span class="comment">// Main Program</span>
<span class="predefined-type">int</span> main (<span class="predefined-type">int</span> argc, <span class="predefined-type">char</span> *argv[])
{
<span class="predefined-type">unsigned</span> <span class="predefined-type">char</span> dsnName[<span class="integer">20</span>];
<span class="predefined-type">unsigned</span> <span class="predefined-type">char</span> user[<span class="integer">20</span>];
<span class="predefined-type">unsigned</span> <span class="predefined-type">char</span> password[<span class="integer">20</span>];
SQLRETURN returnCode;
<span class="predefined-type">bool</span> testPassed = <span class="predefined-constant">true</span>;
SQLCHAR InConnStr[MAX_CONNECT_STRING];
SQLCHAR OutConnStr[MAX_CONNECT_STRING];
SQLSMALLINT ConnStrLength;
<span class="predefined-type">int</span> errflag = <span class="integer">0</span>;
<span class="comment">//optarg = NULL;</span>
<span class="keyword">if</span> (argc != <span class="integer">4</span>)
errflag++;
<span class="keyword">if</span> (!errflag )
{
strcpy ((<span class="predefined-type">char</span> *)dsnName, argv[<span class="integer">1</span>]);
strcpy ((<span class="predefined-type">char</span> *)dsnName, argv[<span class="integer">1</span>]);
strcpy ((<span class="predefined-type">char</span> *)user, argv[<span class="integer">2</span>]);
strcpy ((<span class="predefined-type">char</span> *)password, argv[<span class="integer">3</span>]);
}
<span class="keyword">if</span> (errflag)
{
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Command line error.</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Usage: %s &lt;datasource&gt; &lt;userid&gt; &lt;password&gt;</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>, argv[<span class="integer">0</span>] );
<span class="keyword">return</span> FALSE;
}
<span class="comment">// Initialize handles to NULL</span>
henv = SQL_NULL_HANDLE;
hstmt = SQL_NULL_HANDLE;
hdbc = SQL_NULL_HANDLE;
<span class="comment">// Allocate Environment Handle</span>
returnCode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &amp;henv);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &amp;henv)</span><span class="delimiter">&quot;</span></span>,returnCode);
<span class="comment">// Set ODBC version to 3.0</span>
returnCode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (<span class="directive">void</span>*)SQL_OV_ODBC3, <span class="integer">0</span>);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics( <span class="string"><span class="delimiter">&quot;</span><span class="content">SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0)</span><span class="delimiter">&quot;</span></span>
, returnCode
, <span class="predefined-constant">false</span>
);
<span class="comment">// Allocate Connection handle</span>
returnCode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &amp;hdbc);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLAllocHandle(SQL_HANDLE_DBC, henv, &amp;hdbc)</span><span class="delimiter">&quot;</span></span>, returnCode);
<span class="comment">//Connect to the database</span>
sprintf((<span class="predefined-type">char</span>*)InConnStr,<span class="string"><span class="delimiter">&quot;</span><span class="content">DSN=%s;UID=%s;PWD=%s;%c</span><span class="delimiter">&quot;</span></span>,(<span class="predefined-type">char</span>*)dsnName, (<span class="predefined-type">char</span>*)user, (<span class="predefined-type">char</span>*)password,<span class="char">'\0'</span>);
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Using Connect String: %s</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>, InConnStr);
returnCode = SQLDriverConnect( hdbc
, hWnd
, InConnStr
, SQL_NTS
, OutConnStr
, <span class="keyword">sizeof</span>(OutConnStr)
, &amp;ConnStrLength
, SQL_DRIVER_NOPROMPT
);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLDriverConnect</span><span class="delimiter">&quot;</span></span>,returnCode);
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Successfully connected using SQLDriverConnect.</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
<span class="comment">//Allocate Statement handle</span>
returnCode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &amp;hstmt);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &amp;hstmt)</span><span class="delimiter">&quot;</span></span>, returnCode);
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Drop sample table if it exists...</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
<span class="comment">//Drop the test table if it exists</span>
<span class="comment">//DROP IF EXISTS TASKS;</span>
returnCode = SQLExecDirect(hstmt, (SQLCHAR*)<span class="string"><span class="delimiter">&quot;</span><span class="content">DROP TABLE IF EXISTS TASKS</span><span class="delimiter">&quot;</span></span>, SQL_NTS);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLExecDirect of DROP</span><span class="delimiter">&quot;</span></span>, returnCode);
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Creating sample table TASKS...</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
<span class="comment">//Create a test table in default schema</span>
<span class="comment">//CREATE TABLE TASKS (ID INT NOT NULL, TASK VARCHAR(10), LAST_UPDATE TIMESTAMP, PRIMARY KEY (C1));</span>
returnCode =
SQLExecDirect
( hstmt
, (SQLCHAR*)<span class="string"><span class="delimiter">&quot;</span><span class="content">CREATE TABLE TASKS (ID INT NOT NULL, TASK CHAR(20), COMPLETED DATE, PRIMARY KEY (ID))</span><span class="delimiter">&quot;</span></span>
, SQL_NTS
);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLExecDirect of CREATE</span><span class="delimiter">&quot;</span></span>, returnCode);
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Table TASKS created using SQLExecDirect.</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Inserting data using SQLBindParameter, SQLPrepare, SQLExecute</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
<span class="comment">//Insert few rows into test table using bound parameters</span>
<span class="comment">//INSERT INTO TASKS VALUES (?, ?, ?);</span>
SQLINTEGER intID;
SQLLEN cbID = <span class="integer">0</span>, cbTask = SQL_NTS, cbCompleted = <span class="integer">0</span>;
SQLCHAR strTask[<span class="integer">200</span>];
SQL_DATE_STRUCT dsCompleted;
returnCode = SQLBindParameter( hstmt
, <span class="integer">1</span>
, SQL_PARAM_INPUT
, SQL_C_SHORT
, SQL_INTEGER
, <span class="integer">0</span>
, <span class="integer">0</span>
, &amp;intID
, <span class="integer">0</span>
, &amp;cbID
);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLBindParameter 1</span><span class="delimiter">&quot;</span></span>, returnCode);
returnCode = SQLBindParameter(hstmt, <span class="integer">2</span>, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, <span class="integer">0</span>, <span class="integer">0</span>, &amp;strTask, <span class="integer">0</span>, &amp;cbTask);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLBindParameter 2</span><span class="delimiter">&quot;</span></span>, returnCode);
returnCode = SQLBindParameter( hstmt
, <span class="integer">3</span>
, SQL_PARAM_INPUT
, SQL_C_TYPE_DATE
, SQL_DATE
, <span class="keyword">sizeof</span>(dsCompleted)
, <span class="integer">0</span>
, &amp;dsCompleted
, <span class="integer">0</span>
, &amp;cbCompleted
);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLBindParameter 3</span><span class="delimiter">&quot;</span></span>, returnCode);
returnCode = SQLPrepare(hstmt, (SQLCHAR*)<span class="string"><span class="delimiter">&quot;</span><span class="content">INSERT INTO TASKS VALUES (?, ?, ?)</span><span class="delimiter">&quot;</span></span>, SQL_NTS);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLPrepare of INSERT</span><span class="delimiter">&quot;</span></span>, returnCode);
intID = <span class="integer">1000</span>;
strcpy ((<span class="predefined-type">char</span>*)strTask, <span class="string"><span class="delimiter">&quot;</span><span class="content">CREATE REPORTS</span><span class="delimiter">&quot;</span></span>);
dsCompleted.year = <span class="integer">2014</span>;
dsCompleted.month = <span class="integer">3</span>;
dsCompleted.day = <span class="integer">22</span>;
returnCode = SQLExecute(hstmt);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLExecute</span><span class="delimiter">&quot;</span></span>, returnCode);
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Data inserted.</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
<span class="comment">//Select rows from test table and fetch the data</span>
<span class="comment">//SELECT * from TASKS WHERE TASK LIKE '%REPORT%'</span>
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Fetching data using SQLExecDirect, SQLFetch, SQLGetData</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
returnCode = SQLExecDirect(hstmt, (SQLCHAR*)<span class="string"><span class="delimiter">&quot;</span><span class="content">SELECT ID, TASK, COMPLETED FROM TASKS</span><span class="delimiter">&quot;</span></span>, SQL_NTS);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLExecDirect of SELECT</span><span class="delimiter">&quot;</span></span>, returnCode);
<span class="comment">//loop thru resultset</span>
<span class="keyword">while</span> (TRUE)
{
returnCode = SQLFetch(hstmt);
<span class="keyword">if</span> (returnCode == SQL_ERROR || returnCode == SQL_SUCCESS_WITH_INFO)
{
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLFetch</span><span class="delimiter">&quot;</span></span>, returnCode);
}
<span class="keyword">if</span> (returnCode == SQL_SUCCESS || returnCode == SQL_SUCCESS_WITH_INFO)
{
SQLGetData(hstmt, <span class="integer">1</span>, SQL_C_SHORT, &amp;intID, <span class="integer">0</span>, &amp;cbID);
SQLGetData(hstmt, <span class="integer">2</span>, SQL_C_CHAR, strTask, <span class="integer">20</span>, &amp;cbTask);
SQLGetData(hstmt, <span class="integer">3</span>, SQL_C_TYPE_DATE, &amp;dsCompleted, <span class="keyword">sizeof</span>(dsCompleted), &amp;cbCompleted);
printf( <span class="string"><span class="delimiter">&quot;</span><span class="content">Data selected: %d %s %d-%d-%d</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>
, intID
, strTask
, dsCompleted.year
, dsCompleted.month
, dsCompleted.day
);
}
<span class="keyword">else</span>
<span class="keyword">break</span>;
}
<span class="comment">//Free Statement handle</span>
returnCode = SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLFreeHandle(SQL_HANDLE_STMT, hstmt)</span><span class="delimiter">&quot;</span></span>, returnCode);
hstmt = SQL_NULL_HANDLE;
<span class="comment">//Disconnect</span>
returnCode = SQLDisconnect(hdbc);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLDisconnect(hdbc)</span><span class="delimiter">&quot;</span></span>, returnCode);
<span class="comment">//Free Connection handle</span>
returnCode = SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLFreeHandle(SQL_HANDLE_DBC, hdbc)</span><span class="delimiter">&quot;</span></span>, returnCode);
hdbc = SQL_NULL_HANDLE;
<span class="comment">//Free Environment handle</span>
returnCode = SQLFreeHandle(SQL_HANDLE_ENV, henv);
<span class="keyword">if</span> (!SQL_SUCCEEDED(returnCode))
LogDiagnostics(<span class="string"><span class="delimiter">&quot;</span><span class="content">SQLFreeHandle(SQL_HANDLE_ENV, henv)</span><span class="delimiter">&quot;</span></span>, returnCode);
henv = SQL_NULL_HANDLE;
printf(<span class="string"><span class="delimiter">&quot;</span><span class="content">Basic SQL ODBC Test Passed!</span><span class="char">\n</span><span class="delimiter">&quot;</span></span>);
exit(EXIT_SUCCESS);
}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="basicsql_build">10.1.2. Windows Build and Run Files for <code>basicsql</code></h4>
<div class="paragraph">
<p>The script files that are needed to build and run the sample program on Windows are not currently bundled with the ODBC driver.
Copy and paste the code from this appendix into the recommended files. To build and run the sample program on Windows,
see the instructions in <a href="#win_odbc_run_basicsql">Run Sample Program (<code>basicsql</code>)</a>.</p>
</div>
<div class="sect4">
<h5 id="__code_build_bat_code_build_script"><code>build.bat</code> (Build Script)</h5>
<div class="paragraph">
<p>You can download the <code>build.bat</code> example from
<a href="http://trafodion.incubator.apache.org/docs/latest/client_install/resources/source/build.bat" class="bare">http://trafodion.incubator.apache.org/docs/latest/client_install/resources/source/build.bat</a>.</p>
</div>
<div class="paragraph">
<p>Alternatively, copy and paste the following code into a file named <code>build.bat</code>, which is used to build the sample program on Windows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>@echo off
REM @@@ START COPYRIGHT @@@
REM
REM Licensed to the Apache Software Foundation (ASF) under one
REM or more contributor license agreements. See the NOTICE file
REM distributed with this work for additional information
REM regarding copyright ownership. The ASF licenses this file
REM to you under the Apache License, Version 2.0 (the
REM "License"); you may not use this file except in compliance
REM with the License. You may obtain a copy of the License at
REM
REM http://www.apache.org/licenses/LICENSE-2.0
REM
REM Unless required by applicable law or agreed to in writing,
REM software distributed under the License is distributed on an
REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
REM KIND, either express or implied. See the License for the
REM specific language governing permissions and limitations
REM under the License.
REM
REM @@@ END COPYRIGHT @@@
CL /c /Zi /nologo /W3 /WX- /O2 /D "NDEBUG" /D "_CRT_SECURE_NO_DEPRECATE" /D "_MBCS" /Gm /EHsc /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"./" /Gd /errorReport:queue basicsql.cpp
link /OUT:"./basicsql.exe" /NOLOGO "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X64 /ERRORREPORT:QUEUE basicsql.obj</pre>
</div>
</div>
<div class="paragraph">
<p>To build the sample program on Windows, see the instructions in <a href="#win_odbc_run_basicsql">Run Sample Program (<code>basicsql</code>)</a>.</p>
</div>
</div>
<div class="sect4">
<h5 id="_run_code_run_bat_code">Run <code>run.bat</code></h5>
<div class="paragraph">
<p>You can download the <code>run.bat</code> example from
<a href="http://trafodion.incubator.apache.org/docs/latest/client_install/resources/source/run.bat" class="bare">http://trafodion.incubator.apache.org/docs/latest/client_install/resources/source/run.bat</a>.</p>
</div>
<div class="paragraph">
<p>Alternatively, copy and paste the following code into a file named <code>run.bat</code>, which is used to run the sample program on Windows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>@echo off
REM @@@ START COPYRIGHT @@@
REM
REM Licensed to the Apache Software Foundation (ASF) under one
REM or more contributor license agreements. See the NOTICE file
REM distributed with this work for additional information
REM regarding copyright ownership. The ASF licenses this file
REM to you under the Apache License, Version 2.0 (the
REM "License"); you may not use this file except in compliance
REM with the License. You may obtain a copy of the License at
REM
REM http://www.apache.org/licenses/LICENSE-2.0
REM
REM Unless required by applicable law or agreed to in writing,
REM software distributed under the License is distributed on an
REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
REM KIND, either express or implied. See the License for the
REM specific language governing permissions and limitations
REM under the License.
REM
REM @@@ END COPYRIGHT @@@
basicsql.exe Default_Datasource user1 pwd1</pre>
</div>
</div>
<div class="paragraph">
<p>To run the sample program on Windows, see the instructions in <a href="#win_odbc_run_basicsql">Run Sample Program (<code>basicsql</code>)</a>.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Version 2.0.0<br>
Last updated 2016-02-24 18:39:33 UTC
</div>
</div>
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount','UA-72491210-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>