blob: 6f9ff8860d72eefcf98bc0139543efc520c88ec1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!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/html; charset=UTF-8" />
<title>DB_STREAM->write()</title>
<link rel="stylesheet" href="apiReference.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
<link rel="start" href="index.html" title="Berkeley DB C API Reference" />
<link rel="up" href="blob.html" title="Chapter 13. Binary Large Objects" />
<link rel="prev" href="dbstream_size.html" title="DB_STREAM->size()" />
<link rel="next" href="envget_blob_dir.html" title="DB_ENV->get_blob_dir()" />
</head>
<body>
<div xmlns="" class="navheader">
<div class="libver">
<p>Library Version 12.1.6.1</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">DB_STREAM->write()</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="dbstream_size.html">Prev</a> </td>
<th width="60%" align="center">Chapter 13.
Binary Large Objects
</th>
<td width="20%" align="right"> <a accesskey="n" href="envget_blob_dir.html">Next</a></td>
</tr>
</table>
<hr />
</div>
<div class="sect1" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a id="dbstream_write"></a>DB_STREAM->write()</h2>
</div>
</div>
</div>
<pre class="programlisting">#include <db.h>
int
DB_STREAM->write(DB_STREAM *dbs, DBT *data, db_off_t offset,
u_int32_t flags); </pre>
<p>
The <code class="methodname">DB_STREAM->write()</code> method writes data
to an existing BLOB object in the database. This method writes
data contained in the <a class="link" href="dbt.html" title="Chapter 4. The DBT Handle">DBT</a>
<span class="bold"><strong>data</strong></span> to the BLOB stream. Data is
written into the stream starting at the position indicated by
<span class="bold"><strong>offset</strong></span>. The amount of data
written is determined by the <code class="literal">size</code> field in the
DBT.
</p>
<p>
If this method writes data in the middle of the BLOB, it will
overwrite existing data, instead of shifting it. If this method
writes data to the end of the BLOB, the data is appended to the
existing BLOB. You can determine how large a BLOB is using
<a class="xref" href="dbstream_size.html" title="DB_STREAM->size()">DB_STREAM->size()</a>.
</p>
<p>
To open a stream, use <a class="xref" href="dbstream.html" title="DBC->db_stream()">DBC->db_stream()</a>.
</p>
<p>
Unless otherwise specified, the
<code class="methodname">DB_STREAM->write()</code> <span>
<span>
method returns a non-zero error value on failure and 0 on success.
</span>
</span>
</p>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp4854344"></a>Parameters</h3>
</div>
</div>
</div>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp4859328"></a>data</h4>
</div>
</div>
</div>
<p>
The <span class="bold"><strong>data</strong></span> parameter is
the <a class="link" href="dbt.html" title="Chapter 4. The DBT Handle">DBT</a> containing the
data to be written to the BLOB. The amount of data to be
written is determined by the DBT's
<code class="literal">size</code> field.
</p>
</div>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp4865264"></a>offset</h4>
</div>
</div>
</div>
<p>
The <span class="bold"><strong>offset</strong></span> parameter
identifies the position in the BLOB where the write
operation will begin.
</p>
</div>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp4852528"></a>flags</h4>
</div>
</div>
</div>
<p>
The <span class="bold"><strong>flags</strong></span> parameter must be set to 0
or the following value:
</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p><a id="blobstream_DB_STREAM_SYNC_WRITE"></a>
<code class="literal">DB_STREAM_SYNC_WRITE</code>
</p>
<p>
A sync to disk operation is performed on the
stream at the end of the write operation. By
default, the sync is performed only when the
stream is closed using <a class="xref" href="dbstream_close.html" title="DB_STREAM->close()">DB_STREAM->close()</a>. Note that
this flag can also be specified when the stream is
created using <a class="xref" href="dbstream.html" title="DBC->db_stream()">DBC->db_stream()</a>, in which case the sync
behavior becomes the default behavior for this
stream instance.
</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp4873752"></a>Errors</h3>
</div>
</div>
</div>
<p>
The <code class="methodname">DB_STREAM->write()</code> <span>
<span>
method may fail and return one of the following non-zero errors:
</span>
</span>
</p>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp4860016"></a>EINVAL</h4>
</div>
</div>
</div>
<p>
An invalid flag value or parameter was specified; or if the
stream is read-only; or if the input DBT was
configured with
<a class="link" href="dbt.html#dbt_DB_DBT_PARTIAL">DB_DBT_PARTIAL</a>.
</p>
</div>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp4880040"></a>Class</h3>
</div>
</div>
</div>
<p>
<a class="link" href="blob.html" title="Chapter 13. Binary Large Objects">DB_STREAM</a>
</p>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp4872616"></a>See Also</h3>
</div>
</div>
</div>
<p>
<a class="xref" href="blob.html#bloblist" title="BLOBs and Related Methods">BLOBs and Related Methods</a>
</p>
</div>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="dbstream_size.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="blob.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="envget_blob_dir.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">DB_STREAM->size() </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> DB_ENV->get_blob_dir()</td>
</tr>
</table>
</div>
</body>
</html>
|