All pastes #2026862 Raw Edit

vikky

public c v1 · immutable
#2026862 ·published 2010-12-23 03:31 UTC
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 **) &quote);	//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;}