~ubuntu-branches/ubuntu/wily/sqlite3/wily

« back to all changes in this revision

Viewing changes to c3ref/value_blob.html

  • Committer: Package Import Robot
  • Author(s): Laszlo Boszormenyi (GCS)
  • Date: 2012-06-13 21:43:48 UTC
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: package-import@ubuntu.com-20120613214348-uy14uupdeq0hh04k
Tags: upstream-3.7.13/www
Import upstream version 3.7.13, component www

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
2
<html><head>
 
3
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 
4
<title>Obtaining SQL Function Parameter Values</title>
 
5
<style type="text/css">
 
6
body {
 
7
    margin: auto;
 
8
    font-family: Verdana, sans-serif;
 
9
    padding: 8px 1%;
 
10
}
 
11
 
 
12
a { color: #044a64 }
 
13
a:visited { color: #734559 }
 
14
 
 
15
.logo { position:absolute; margin:3px; }
 
16
.tagline {
 
17
  float:right;
 
18
  text-align:right;
 
19
  font-style:italic;
 
20
  width:300px;
 
21
  margin:12px;
 
22
  margin-top:58px;
 
23
}
 
24
 
 
25
.toolbar {
 
26
  text-align: center;
 
27
  line-height: 1.6em;
 
28
  margin: 0;
 
29
  padding: 0px 8px;
 
30
}
 
31
.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }
 
32
.toolbar a:visited { color: white; }
 
33
.toolbar a:hover { color: #044a64; background: white; }
 
34
 
 
35
.content    { margin: 5%; }
 
36
.content dt { font-weight:bold; }
 
37
.content dd { margin-bottom: 25px; margin-left:20%; }
 
38
.content ul { padding:0px; padding-left: 15px; margin:0px; }
 
39
 
 
40
/* rounded corners */
 
41
.se  { background: url(../images/se.gif) 100% 100% no-repeat #044a64}
 
42
.sw  { background: url(../images/sw.gif) 0% 100% no-repeat }
 
43
.ne  { background: url(../images/ne.gif) 100% 0% no-repeat }
 
44
.nw  { background: url(../images/nw.gif) 0% 0% no-repeat }
 
45
 
 
46
/* Things for "fancyformat" documents start here. */
 
47
.fancy img+p {font-style:italic}
 
48
.fancy .codeblock i { color: darkblue; }
 
49
.fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64}
 
50
.fancy h2 { margin-left: 10px }
 
51
.fancy h3 { margin-left: 20px }
 
52
.fancy h4 { margin-left: 30px }
 
53
.fancy th {white-space:nowrap;text-align:left;border-bottom:solid 1px #444}
 
54
.fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top}
 
55
.fancy #toc a        { color: darkblue ; text-decoration: none }
 
56
.fancy .todo         { color: #AA3333 ; font-style : italic }
 
57
.fancy .todo:before  { content: 'TODO:' }
 
58
.fancy p.todo        { border: solid #AA3333 1px; padding: 1ex }
 
59
.fancy img { display:block; }
 
60
.fancy :link:hover, .fancy :visited:hover { background: wheat }
 
61
.fancy p,.fancy ul,.fancy ol { margin: 1em 5ex }
 
62
.fancy li p { margin: 1em 0 }
 
63
/* End of "fancyformat" specific rules. */
 
64
 
 
65
</style>
 
66
  
 
67
</head>
 
68
<body>
 
69
<div><!-- container div to satisfy validator -->
 
70
 
 
71
<a href="../index.html">
 
72
<img class="logo" src="../images/sqlite370_banner.gif" alt="SQLite Logo"
 
73
 border="0"></a>
 
74
<div><!-- IE hack to prevent disappearing logo--></div>
 
75
<div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
 
76
 
 
77
<table width=100% style="clear:both"><tr><td>
 
78
  <div class="se"><div class="sw"><div class="ne"><div class="nw">
 
79
  <table width=100% style="padding:0;margin:0;cell-spacing:0"><tr>
 
80
  <td width=100%>
 
81
  <div class="toolbar">
 
82
    <a href="../about.html">About</a>
 
83
    <a href="../sitemap.html">Sitemap</a>
 
84
    <a href="../docs.html">Documentation</a>
 
85
    <a href="../download.html">Download</a>
 
86
    <a href="../copyright.html">License</a>
 
87
    <a href="../news.html">News</a>
 
88
    <a href="../support.html">Support</a>
 
89
  </div>
 
90
<script>
 
91
  gMsg = "Search SQLite Docs..."
 
92
  function entersearch() {
 
93
    var q = document.getElementById("q");
 
94
    if( q.value == gMsg ) { q.value = "" }
 
95
    q.style.color = "black"
 
96
    q.style.fontStyle = "normal"
 
97
  }
 
98
  function leavesearch() {
 
99
    var q = document.getElementById("q");
 
100
    if( q.value == "" ) { 
 
101
      q.value = gMsg
 
102
      q.style.color = "#044a64"
 
103
      q.style.fontStyle = "italic"
 
104
    }
 
105
  }
 
106
</script>
 
107
<td>
 
108
    <div style="padding:0 1em 0px 0;white-space:nowrap">
 
109
    <form name=f method="GET" action="http://www.sqlite.org/search">
 
110
      <input id=q name=q type=text
 
111
       onfocus="entersearch()" onblur="leavesearch()" style="width:24ex;padding:1px 1ex; border:solid white 1px; font-size:0.9em ; font-style:italic;color:#044a64;" value="Search SQLite Docs...">
 
112
      <input type=submit value="Go" style="border:solid white 1px;background-color:#044a64;color:white;font-size:0.9em;padding:0 1ex">
 
113
    </form>
 
114
    </div>
 
115
  </table>
 
116
</div></div></div></div>
 
117
</td></tr></table>
 
118
<div class=startsearch></div>
 
119
  
 
120
<a href="intro.html"><h2>SQLite C Interface</h2></a><h2>Obtaining SQL Function Parameter Values</h2><blockquote><pre>const void *sqlite3_value_blob(sqlite3_value*);
 
121
int sqlite3_value_bytes(sqlite3_value*);
 
122
int sqlite3_value_bytes16(sqlite3_value*);
 
123
double sqlite3_value_double(sqlite3_value*);
 
124
int sqlite3_value_int(sqlite3_value*);
 
125
sqlite3_int64 sqlite3_value_int64(sqlite3_value*);
 
126
const unsigned char *sqlite3_value_text(sqlite3_value*);
 
127
const void *sqlite3_value_text16(sqlite3_value*);
 
128
const void *sqlite3_value_text16le(sqlite3_value*);
 
129
const void *sqlite3_value_text16be(sqlite3_value*);
 
130
int sqlite3_value_type(sqlite3_value*);
 
131
int sqlite3_value_numeric_type(sqlite3_value*);
 
132
</pre></blockquote><p>
 
133
The C-language implementation of SQL functions and aggregates uses
 
134
this set of interface routines to access the parameter values on
 
135
the function or aggregate.</p>
 
136
 
 
137
<p>The xFunc (for scalar functions) or xStep (for aggregates) parameters
 
138
to <a href="../c3ref/create_function.html">sqlite3_create_function()</a> and <a href="../c3ref/create_function.html">sqlite3_create_function16()</a>
 
139
define callbacks that implement the SQL functions and aggregates.
 
140
The 3rd parameter to these callbacks is an array of pointers to
 
141
<a href="../c3ref/value.html">protected sqlite3_value</a> objects.  There is one <a href="../c3ref/value.html">sqlite3_value</a> object for
 
142
each parameter to the SQL function.  These routines are used to
 
143
extract values from the <a href="../c3ref/value.html">sqlite3_value</a> objects.</p>
 
144
 
 
145
<p>These routines work only with <a href="../c3ref/value.html">protected sqlite3_value</a> objects.
 
146
Any attempt to use these routines on an <a href="../c3ref/value.html">unprotected sqlite3_value</a>
 
147
object results in undefined behavior.</p>
 
148
 
 
149
<p>These routines work just like the corresponding <a href="../c3ref/column_blob.html">column access functions</a>
 
150
except that  these routines take a single <a href="../c3ref/value.html">protected sqlite3_value</a> object
 
151
pointer instead of a <a href="../c3ref/stmt.html">sqlite3_stmt*</a> pointer and an integer column number.</p>
 
152
 
 
153
<p>The sqlite3_value_text16() interface extracts a UTF-16 string
 
154
in the native byte-order of the host machine.  The
 
155
sqlite3_value_text16be() and sqlite3_value_text16le() interfaces
 
156
extract UTF-16 strings as big-endian and little-endian respectively.</p>
 
157
 
 
158
<p>The sqlite3_value_numeric_type() interface attempts to apply
 
159
numeric affinity to the value.  This means that an attempt is
 
160
made to convert the value to an integer or floating point.  If
 
161
such a conversion is possible without loss of information (in other
 
162
words, if the value is a string that looks like a number)
 
163
then the conversion is performed.  Otherwise no conversion occurs.
 
164
The <a href="../c3ref/c_blob.html">datatype</a> after conversion is returned.</p>
 
165
 
 
166
<p>Please pay particular attention to the fact that the pointer returned
 
167
from <a href="../c3ref/value_blob.html">sqlite3_value_blob()</a>, <a href="../c3ref/value_blob.html">sqlite3_value_text()</a>, or
 
168
<a href="../c3ref/value_blob.html">sqlite3_value_text16()</a> can be invalidated by a subsequent call to
 
169
<a href="../c3ref/value_blob.html">sqlite3_value_bytes()</a>, <a href="../c3ref/value_blob.html">sqlite3_value_bytes16()</a>, <a href="../c3ref/value_blob.html">sqlite3_value_text()</a>,
 
170
or <a href="../c3ref/value_blob.html">sqlite3_value_text16()</a>.</p>
 
171
 
 
172
<p>These routines must be called from the same thread as
 
173
the SQL function that supplied the <a href="../c3ref/value.html">sqlite3_value*</a> parameters.
 
174
</p><p>See also lists of
 
175
  <a href="objlist.html">Objects</a>,
 
176
  <a href="constlist.html">Constants</a>, and
 
177
  <a href="funclist.html">Functions</a>.</p>