rendered paste body/* gcc sqlite_binary_test.c -ldbi -g -o test */#include <dbi/dbi.h>#include <stdio.h>#include <string.h>dbi_conn DB_conn; dbi_inst DB_instance; const char SCHEMA[] = {"CREATE TABLE mytable ( \id BIGINT PRIMARY KEY, \data BLOB, \summary TEXT \) "};const char BINARY[] = { "close your eyes, this is binary" };int main(int argc, char **argv){ const char *errormsg; int rv; char *quote; int length; dbi_result result; dbi_initialize_r(NULL, &DB_instance); DB_conn = dbi_conn_new_r("sqlite", DB_instance); dbi_conn_set_option(DB_conn, "host" ,"localhost"); dbi_conn_set_option(DB_conn, "encoding" , "UTF-8"); dbi_conn_set_option(DB_conn, "dbname" ,"test.sql"); dbi_conn_set_option(DB_conn, "sqlite_dbdir","/tmp"); rv = dbi_conn_connect(DB_conn); dbi_conn_error(DB_conn,&errormsg); printf("dbi_conn_connect: rv = %i: %s\n",rv,errormsg); result = dbi_conn_query(DB_conn,SCHEMA); dbi_result_free(result); dbi_conn_error(DB_conn,&errormsg); printf("dbi_conn_query: %s\n",errormsg); quote = NULL; dbi_conn_quote_binary_copy(DB_conn,BINARY,strlen(BINARY),(unsigned char **) "e); //printf("quote = %s\n",quote); result = dbi_conn_queryf(DB_conn,"INSERT INTO mytable (id,data) VALUES(0,%s)",quote); dbi_result_free(result); free(quote); result = dbi_conn_query(DB_conn,"SELECT data FROM mytable WHERE id=0"); dbi_result_first_row(result); length = dbi_result_get_field_length_idx(result,1); quote = dbi_result_get_binary_copy_idx(result,1); printf("data = %s\n",quote); dbi_conn_close(DB_conn); dbi_shutdown_r(DB_instance); return 0;}