-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsqlite_blob.cpp
71 lines (52 loc) · 1.54 KB
/
sqlite_blob.cpp
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
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <sqlite3.h>
#include <string.h>
static int callback ( void* NotUsed, int argc, char** argv, char** azColName )
{
int i;
fprintf ( stderr, "callback called\n" );
for ( i = 0; i < argc; i++ )
{
printf ( "%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL" );
}
printf ( "\n" );
return 0;
}
int main ( int argc, char* argv[] )
{
sqlite3* db;
char* zErrMsg = 0;
int rc;
char* sql;
sqlite3_stmt* stmt = NULL;
sqlite3_open ( "test.db", &db );
#if 0
//sql = "UPDATE COMPANY set SALARY = 28000 where ID = 1;";
sql = "create table bList(fileName varchar(16) primary key, binData blob);";
sqlite3_exec ( db, sql, callback, NULL, &zErrMsg );
#else
sql = "insert into bList values ('hex2',?);";
uint8_t hex[16] = { 10, 11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
sqlite3_prepare ( db, sql, -1, &stmt, NULL );
sqlite3_bind_blob ( stmt, 1, hex, 16, NULL );
sqlite3_step ( stmt );
sqlite3_finalize ( stmt );
#endif
#if 0
uint8_t buffer[16] = { 0 };
char* data = NULL;
sql = "select binData from bList where fileName='hex';";
sqlite3_prepare ( db, sql, -1, &stmt, NULL );
sqlite3_step ( stmt );
data = ( char* ) sqlite3_column_blob ( stmt, 0 );
int iLen = sqlite3_column_bytes ( stmt, 0 );
sqlite3_finalize ( stmt );
memmove ( buffer, data, iLen );
for ( auto& c : buffer )
printf ( "%02x ", c );
#endif
sqlite3_close ( db );
return 0;
}