SQLiteCpp/doc/html/_column_8h_source.html
2013-03-10 20:57:10 +01:00

309 lines
42 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>SQLiteC++: src/Column.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">SQLiteC++
&#160;<span id="projectnumber">0.5.0</span>
</div>
<div id="projectbrief">SQLiteC++ is a smart and easy to use C++ SQLite3 wrapper.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_column_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Macros</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Column.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_column_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * @file Column.h</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * @brief Encapsulation of a Column in a row of the result pointed by the prepared SQLite::Statement.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (c) 2012-2013 Sebastien Rombauts (sebastien.rombauts@gmail.com)</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * or copy at http://opensource.org/licenses/MIT)</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;sqlite3.h&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_exception_8h.html" title="Encapsulation of the error message from SQLite3 on a std::runtime_error.">Exception.h</a>&quot;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_statement_8h.html" title="A prepared SQLite Statement is a compiled SQL query ready to be executed, pointing to a row of result...">Statement.h</a>&quot;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span>SQLite</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * @brief Encapsulation of a Column in a row of the result pointed by the prepared Statement.</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * A Column is a particular field of SQLite data in the current row of result</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * of the Statement : it points to a single cell.</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Its value can be expressed as a text, and, when applicable, as a numeric</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * (integer or floting point) or a binary blob.</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html"> 29</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_q_lite_1_1_column.html" title="Encapsulation of a Column in a row of the result pointed by the prepared Statement.">Column</a></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * @brief Encapsulation of a Column in a Row of the result.</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * @param[in] aStmtPtr Shared pointer to the prepared SQLite Statement Object.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> * @param[in] aIndex Index of the column in the row of result</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_s_q_lite_1_1_column.html#a5a6ec4d7c6bab4b2f0468b5fbef1aa3e" title="Encapsulation of a Column in a Row of the result.">Column</a>(<a class="code" href="class_s_q_lite_1_1_statement_1_1_ptr.html" title="Shared pointer to the sqlite3_stmt SQLite Statement Object.">Statement::Ptr</a>&amp; aStmtPtr, <span class="keywordtype">int</span> aIndex) <span class="keywordflow">throw</span>(); <span class="comment">// nothrow</span><span class="comment"></span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> /// @brief Simple destructor</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="class_s_q_lite_1_1_column.html#a2a351af1cc9fe272738db8fb5494ef42" title="Simple destructor.">~Column</a>(<span class="keywordtype">void</span>) <span class="keywordflow">throw</span>(); <span class="comment">// nothrow</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// default copy constructor and assignment operator are perfectly suited :</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// they copy the Statement::Ptr which in turn increments the reference counter.</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment"></span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> /// @brief Return the integer value of the column.</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="class_s_q_lite_1_1_column.html#a9f2bf4183ef6f273e247abb41bb57371" title="Return the integer value of the column.">getInt</a> (<span class="keywordtype">void</span>) <span class="keyword">const</span> <span class="keywordflow">throw</span>(); <span class="comment">// nothrow</span><span class="comment"></span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> /// @brief Return the 64bits integer value of the column.</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"></span> sqlite3_int64 <a class="code" href="class_s_q_lite_1_1_column.html#a49661dced8faf120b30484539f7e11b7" title="Return the 64bits integer value of the column.">getInt64</a> (<span class="keywordtype">void</span>) <span class="keyword">const</span> <span class="keywordflow">throw</span>(); <span class="comment">// nothrow</span><span class="comment"></span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> /// @brief Return the double (64bits float) value of the column.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"></span> <span class="keywordtype">double</span> <a class="code" href="class_s_q_lite_1_1_column.html#a7310c46d8de11abc230899268cfcfe9a" title="Return the double (64bits float) value of the column.">getDouble</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> <span class="keywordflow">throw</span>(); <span class="comment">// nothrow</span><span class="comment"></span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * @brief Return a pointer to the text value (NULL terminated string) of the column.</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> * @warning The value pointed at is only valid while the statement is valid (ie. not finalized),</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> * thus you must copy it before using it beyond its scope (to a std::string for instance).</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_s_q_lite_1_1_column.html#a1c540ec3c571ed1e0392e79be60682bf" title="Return a pointer to the text value (NULL terminated string) of the column.">getText</a> (<span class="keywordtype">void</span>) <span class="keyword">const</span> <span class="keywordflow">throw</span>(); <span class="comment">// nothrow</span><span class="comment"></span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> * @brief Return a pointer to the binary blob value of the column.</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> * @warning The value pointed at is only valid while the statement is valid (ie. not finalized),</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> * thus you must copy it before using it beyond its scope (to a std::string for instance).</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="class_s_q_lite_1_1_column.html#a0d1f116da88b8c33dcf825e75dfcf6b2" title="Return a pointer to the binary blob value of the column.">getBlob</a> (<span class="keywordtype">void</span>) <span class="keyword">const</span> <span class="keywordflow">throw</span>(); <span class="comment">// nothrow</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment"></span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> * @brief Return the type of the value of the column</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> * Return either SQLITE_INTEGER, SQLITE_FLOAT, SQLITE_TEXT, SQLITE_BLOB, or SQLITE_NULL.</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> * @warning After a type conversion (by a call to a getXxx on a Column of a Yyy type),</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> * the value returned by sqlite3_column_type() is undefined.</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_s_q_lite_1_1_column.html#afe0a75cb971cd90d4c13fb4741344575" title="Return the type of the value of the column.">getType</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> <span class="keywordflow">throw</span>(); <span class="comment">// nothrow</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment"></span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> /// @brief Test if the column is an integer type value (meaningfull only before any conversion)</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#aad8ff15f760491dccded0852eb96b07b"> 77</a></span>&#160;<span class="comment"></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="class_s_q_lite_1_1_column.html#aad8ff15f760491dccded0852eb96b07b" title="Test if the column is an integer type value (meaningfull only before any conversion)">isInteger</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> throw() <span class="comment">// nothrow</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> (SQLITE_INTEGER == <a class="code" href="class_s_q_lite_1_1_column.html#afe0a75cb971cd90d4c13fb4741344575" title="Return the type of the value of the column.">getType</a>());</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> /// @brief Test if the column is a floting point type value (meaningfull only before any conversion)</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#a6d5b1205fb9f5d8b973834b733c0dec8"> 82</a></span>&#160;<span class="comment"></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="class_s_q_lite_1_1_column.html#a6d5b1205fb9f5d8b973834b733c0dec8" title="Test if the column is a floting point type value (meaningfull only before any conversion)">isFloat</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> throw() <span class="comment">// nothrow</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> (SQLITE_FLOAT == <a class="code" href="class_s_q_lite_1_1_column.html#afe0a75cb971cd90d4c13fb4741344575" title="Return the type of the value of the column.">getType</a>());</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> /// @brief Test if the column is a text type value (meaningfull only before any conversion)</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#a8ca26d47a8b770f971fc9ed4da5126d9"> 87</a></span>&#160;<span class="comment"></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="class_s_q_lite_1_1_column.html#a8ca26d47a8b770f971fc9ed4da5126d9" title="Test if the column is a text type value (meaningfull only before any conversion)">isText</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> throw() <span class="comment">// nothrow</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> (SQLITE_TEXT == <a class="code" href="class_s_q_lite_1_1_column.html#afe0a75cb971cd90d4c13fb4741344575" title="Return the type of the value of the column.">getType</a>());</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"> /// @brief Test if the column is a binary blob type value (meaningfull only before any conversion)</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#a1309055a5c086234db93c3cd75e51e60"> 92</a></span>&#160;<span class="comment"></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="class_s_q_lite_1_1_column.html#a1309055a5c086234db93c3cd75e51e60" title="Test if the column is a binary blob type value (meaningfull only before any conversion)">isBlob</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> throw() <span class="comment">// nothrow</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> (SQLITE_BLOB == <a class="code" href="class_s_q_lite_1_1_column.html#afe0a75cb971cd90d4c13fb4741344575" title="Return the type of the value of the column.">getType</a>());</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> /// @brief Test if the column is NULL (meaningfull only before any conversion)</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#a0feac2c180e1ea78c4ca73e385eb1b66"> 97</a></span>&#160;<span class="comment"></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="class_s_q_lite_1_1_column.html#a0feac2c180e1ea78c4ca73e385eb1b66" title="Test if the column is NULL (meaningfull only before any conversion)">isNull</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> throw() <span class="comment">// nothrow</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> (SQLITE_NULL == <a class="code" href="class_s_q_lite_1_1_column.html#afe0a75cb971cd90d4c13fb4741344575" title="Return the type of the value of the column.">getType</a>());</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> * @brief Return the number of bytes used by the text (or blob) value of the column</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> * Return either :</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"> * - size in bytes (not in characters) of the string returned by getText() without the &#39;\0&#39; terminator</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"> * - size in bytes of the string representation of the numerical value (integer or double)</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> * - size in bytes of the binary blob returned by getBlob()</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"> * - 0 for a NULL value</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_s_q_lite_1_1_column.html#a7fb4c7c6c2c31810082e9a95ea7dded9" title="Return the number of bytes used by the text (or blob) value of the column.">getBytes</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> throw();</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"> /// @brief Alias returning the number of bytes used by the text (or blob) value of the column</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#a562171b81e80302a299a52693fa890d9"> 114</a></span>&#160;<span class="comment"></span> inline <span class="keywordtype">int</span> <a class="code" href="class_s_q_lite_1_1_column.html#a562171b81e80302a299a52693fa890d9" title="Alias returning the number of bytes used by the text (or blob) value of the column.">size</a>(<span class="keywordtype">void</span>) const throw()</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_q_lite_1_1_column.html#a7fb4c7c6c2c31810082e9a95ea7dded9" title="Return the number of bytes used by the text (or blob) value of the column.">getBytes</a> ();</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> /// @brief Inline cast operator to int</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#a3410d918065201fef494308dd25cbccd"> 120</a></span>&#160;<span class="comment"></span> <span class="keyword">inline</span> <span class="keyword">operator</span> int()<span class="keyword"> const</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_q_lite_1_1_column.html#a9f2bf4183ef6f273e247abb41bb57371" title="Return the integer value of the column.">getInt</a>();</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> /// @brief Inline cast operator to 64bits integer</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#a7eaf3ecbe60ee95960e18af4290c3173"> 125</a></span>&#160;<span class="comment"></span> <span class="keyword">inline</span> <span class="keyword">operator</span> sqlite3_int64()<span class="keyword"> const</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_q_lite_1_1_column.html#a49661dced8faf120b30484539f7e11b7" title="Return the 64bits integer value of the column.">getInt64</a>();</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> /// @brief Inline cast operator to double</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#aa5f127dd9ffad16767421e05ca425032"> 130</a></span>&#160;<span class="comment"></span> <span class="keyword">inline</span> <span class="keyword">operator</span> double()<span class="keyword"> const</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_q_lite_1_1_column.html#a7310c46d8de11abc230899268cfcfe9a" title="Return the double (64bits float) value of the column.">getDouble</a>();</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> * @brief Inline cast operator to char*</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> * @see getText </span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#af573607d5fbdc2644520ed929f4e1acf"> 139</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">operator</span> <span class="keyword">const</span> <span class="keywordtype">char</span>*() <span class="keyword">const</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_q_lite_1_1_column.html#a1c540ec3c571ed1e0392e79be60682bf" title="Return a pointer to the text value (NULL terminated string) of the column.">getText</a>();</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> * @brief Inline cast operator to void*</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"> * @see getBlob</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#ad7a44aaa9db3818dd86dd992b408accf"> 148</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">operator</span> <span class="keyword">const</span> <span class="keywordtype">void</span>*() <span class="keyword">const</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_q_lite_1_1_column.html#a0d1f116da88b8c33dcf825e75dfcf6b2" title="Return a pointer to the binary blob value of the column.">getBlob</a>();</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor">#ifdef __GNUC__</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor"></span> <span class="comment">// NOTE : the following is required by GCC to cast a Column result in a std::string</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// (error: conversion from SQLite::Column to non-scalar type std::string {aka std::basic_string&lt;char&gt;} requested)</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// but is not working under Microsoft Visual Studio 2010 and 2012</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// (error C2440: &#39;initializing&#39; : cannot convert from &#39;SQLite::Column&#39; to &#39;std::basic_string&lt;_Elem,_Traits,_Ax&gt;&#39;</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// [...] constructor overload resolution was ambiguous)</span><span class="comment"></span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> /// Inline cast operator to std::string</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"></span> <span class="keyword">inline</span> <span class="keyword">operator</span> <span class="keyword">const</span> std::string()<span class="keyword"> const</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_q_lite_1_1_column.html#a1c540ec3c571ed1e0392e79be60682bf" title="Return a pointer to the text value (NULL terminated string) of the column.">getText</a>();</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor"></span><span class="comment"></span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> /// @brief Return UTF-8 encoded English language explanation of the most recent error.</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="code" href="class_s_q_lite_1_1_column.html#aade4c9a24d32eb316af27808644e1a48"> 166</a></span>&#160;<span class="comment"></span> <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_s_q_lite_1_1_column.html#aade4c9a24d32eb316af27808644e1a48" title="Return UTF-8 encoded English language explanation of the most recent error.">errmsg</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> sqlite3_errmsg(mStmtPtr);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="class_s_q_lite_1_1_statement_1_1_ptr.html" title="Shared pointer to the sqlite3_stmt SQLite Statement Object.">Statement::Ptr</a> mStmtPtr; <span class="comment">//!&lt; Shared Pointer to the prepared SQLite Statement Object</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment"></span> <span class="keywordtype">int</span> mIndex; <span class="comment">//!&lt; Index of the column in the row of result</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment"></span>};</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"> * @brief Standard std::ostream text inserter</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> * Insert the text value of the Column object, using getText(), into the provided stream.</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> * @param[in] aStream Stream to use</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"> * @param[in] aColumn Column object to insert into the provided stream</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> * @return Reference to the stream used</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;std::ostream&amp; <a class="code" href="namespace_s_q_lite.html#a3b9f699287807cc8a4c71f5dcdad9ddc" title="Standard std::ostream text inserter.">operator&lt;&lt;</a>(std::ostream&amp; aStream, <span class="keyword">const</span> Column&amp; aColumn);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;} <span class="comment">// namespace SQLite</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_column_8h.html">Column.h</a></li>
<li class="footer">Generated on Sun Mar 10 2013 18:17:21 for SQLiteC++ by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
</ul>
</div>
</body>
</html>