<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SQLite BLOB mit NULL-Werten]]></title><description><![CDATA[<p>Hallo Leute</p>
<p>Ich habe eine Binärdatei, die ich als BLOB in eine SQLite Datenbank schreiben möchte. Leider wird nur bis zum ersten auftauchen eines NULL-Charakters (0x00) in die DB geschrieben, der Rest wird abgeschnitten. Leider beinhaltet die Binärdatei viele NULL-Werte und es sollte eigentlich laut diesem Posting funktionieren:<br />
<a href="http://stackoverflow.com/questions/404879/sqlite3-insert-blob-with-null-characters-in-c" rel="nofollow">http://stackoverflow.com/questions/404879/sqlite3-insert-blob-with-null-characters-in-c</a></p>
<p>Mein Beispiel:</p>
<pre><code class="language-cpp">char blobData[1024]
// ... hier Daten in blobData schreiben und blobSize setzen
const char* sql = &quot;INSERT INTO test VALUES (?)&quot;, *tail = 0;
sqlite3_stmt* stmt = 0;
sqlite3* dbs = 0;
sqlite3_open(&quot;out.db&quot;, &amp;dbs);
sqlite3_prepare_v2(dbs, sql, strlen(sql)+1, &amp;stmt, &amp;tail);
sqlite3_bind_blob(stmt, 1, blobData, blobSize, SQLITE_TRANSIENT);
if (sqlite3_step(stmt) != SQLITE_DONE)
	printf(&quot;Error message: %s\n&quot;, sqlite3_errmsg(dbs));
sqlite3_finalize(stmt);
</code></pre>
<p>Hat sich einer von euch schonmal damit beschäftigt oder ein ähnliches Problem gehabt? Bin echt am verzweifeln!!!</p>
<p>Danke</p>
<p>Gruß Bernd88</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249489/sqlite-blob-mit-null-werten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 12:10:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249489.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Sep 2009 10:53:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SQLite BLOB mit NULL-Werten on Tue, 08 Sep 2009 10:53:27 GMT]]></title><description><![CDATA[<p>Hallo Leute</p>
<p>Ich habe eine Binärdatei, die ich als BLOB in eine SQLite Datenbank schreiben möchte. Leider wird nur bis zum ersten auftauchen eines NULL-Charakters (0x00) in die DB geschrieben, der Rest wird abgeschnitten. Leider beinhaltet die Binärdatei viele NULL-Werte und es sollte eigentlich laut diesem Posting funktionieren:<br />
<a href="http://stackoverflow.com/questions/404879/sqlite3-insert-blob-with-null-characters-in-c" rel="nofollow">http://stackoverflow.com/questions/404879/sqlite3-insert-blob-with-null-characters-in-c</a></p>
<p>Mein Beispiel:</p>
<pre><code class="language-cpp">char blobData[1024]
// ... hier Daten in blobData schreiben und blobSize setzen
const char* sql = &quot;INSERT INTO test VALUES (?)&quot;, *tail = 0;
sqlite3_stmt* stmt = 0;
sqlite3* dbs = 0;
sqlite3_open(&quot;out.db&quot;, &amp;dbs);
sqlite3_prepare_v2(dbs, sql, strlen(sql)+1, &amp;stmt, &amp;tail);
sqlite3_bind_blob(stmt, 1, blobData, blobSize, SQLITE_TRANSIENT);
if (sqlite3_step(stmt) != SQLITE_DONE)
	printf(&quot;Error message: %s\n&quot;, sqlite3_errmsg(dbs));
sqlite3_finalize(stmt);
</code></pre>
<p>Hat sich einer von euch schonmal damit beschäftigt oder ein ähnliches Problem gehabt? Bin echt am verzweifeln!!!</p>
<p>Danke</p>
<p>Gruß Bernd88</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774448</guid><dc:creator><![CDATA[Bernd88]]></dc:creator><pubDate>Tue, 08 Sep 2009 10:53:27 GMT</pubDate></item><item><title><![CDATA[Reply to SQLite BLOB mit NULL-Werten on Tue, 08 Sep 2009 12:02:58 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie hast du <em>blobSize</em> bestimmt?</p>
<p>MfG,</p>
<p>Probe-Nutzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774515</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 08 Sep 2009 12:02:58 GMT</pubDate></item><item><title><![CDATA[Reply to SQLite BLOB mit NULL-Werten on Tue, 08 Sep 2009 12:59:44 GMT]]></title><description><![CDATA[<p>Relativ einfach mit</p>
<pre><code class="language-cpp">std::ifstream file(&quot;binary.data&quot;, std::ifstream::in | std::ifstream::binary);

file.seekg(0, std::ios::end);
int blobSize = file.tellg();
file.seekg(0, std::ios::beg);

char* blobData = new char[blobSize];
...
</code></pre>
<p>Und das ist auch der Fehler. Denn wenn ich ein statisches Array nehme</p>
<pre><code class="language-cpp">char blobData[] = {16, 61, 22, 16, 0, 0, 0, 32};
int blobSize = sizeof(blobData);
sqlite3_bind_blob(stmt, 1, blobData, sizeof(blobdata), SQLITE_TRANSIENT);
</code></pre>
<p>und dieses dann übergebe, so funktioniert der Prozess. Bei meiner ersten Variante mit dynamischem Speicher hingegen klappt es nicht. Ich muss noch mal genau drüber schauen, das kann eigentlich nicht sein. Hmm...</p>
<p>Bernd</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774563</guid><dc:creator><![CDATA[Bernd88]]></dc:creator><pubDate>Tue, 08 Sep 2009 12:59:44 GMT</pubDate></item></channel></rss>