您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ sqlite3_column_blob函数代码示例

51自学网 2021-06-03 08:15:01
  C++
这篇教程C++ sqlite3_column_blob函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中sqlite3_column_blob函数的典型用法代码示例。如果您正苦于以下问题:C++ sqlite3_column_blob函数的具体用法?C++ sqlite3_column_blob怎么用?C++ sqlite3_column_blob使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了sqlite3_column_blob函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: create_from_stmt

/* creates a new dir_info from that statement passed */static inline struct mp3_info* create_from_stmt( sqlite3_stmt* res ) {	struct mp3_info* tmp = malloc(sizeof(struct mp3_info));	memset( tmp, 0, sizeof(struct dir_info));	/* set the data */	tmp->oid = sqlite3_column_int ( res, 0 );	/* have to use strdup so the pointers		are not deleted on finalize */	tmp->title  = strdup( (char*)sqlite3_column_text( res, 1 ) );	tmp->artist = strdup( (char*)sqlite3_column_text( res, 2 ) );	tmp->album  = strdup( (char*)sqlite3_column_text( res, 3 ) );		const void* blob = sqlite3_column_blob( res, 4 );	size_t blob_bytes = sqlite3_column_bytes( res, 4 );	tmp->metadata = malloc( tmp->metadata_blob_len = blob_bytes );	memcpy( tmp->metadata, blob, blob_bytes );	return tmp;	}
开发者ID:jrahm,项目名称:Boltsnap,代码行数:21,


示例2: attr_gather_attr

/*  * Gather the results into list_entry format. Each row has page, number, len, * value. Look at queries in attr_get_attr attr_get_attr_page.  See page 163. * * -EINVAL: invalid argument * -EOVERFLOW: error, if not enough room to even start the entry * >0: success. returns number of bytes copied into outbuf. */static int attr_gather_attr(sqlite3_stmt *stmt, void *buf, uint32_t buflen,			    uint64_t oid, uint8_t listfmt){	uint32_t page = sqlite3_column_int(stmt, 0);	uint32_t number = sqlite3_column_int(stmt, 1);	uint16_t len = sqlite3_column_bytes(stmt, 2);	const void *val = sqlite3_column_blob(stmt, 2);	if (listfmt == RTRVD_SET_ATTR_LIST) {		return le_pack_attr(buf, buflen, page, number, len, val);	} else if (listfmt == RTRVD_MULTIOBJ_LIST) {		return le_multiobj_pack_attr(buf, buflen, oid, page, number,					     len, val);	} else if (listfmt == RTRVD_CREATE_MULTIOBJ_LIST) {		return le_create_multiobj_pack_attr(buf, buflen, oid, page,						    number, len, val);	} else {		return -EINVAL;	}}
开发者ID:snsl,项目名称:osc-osd,代码行数:28,


示例3: sqlite3_prepare_v2

/*! * * @param field * @return */QString Address::searchDB(const char* field) const{    ostringstream sqlCmmd;    sqlCmmd << "SELECT "            << field            << " FROM ics_addresses WHERE a_customer='"            << customer.toStdString()            << "';";        sqlite3_stmt* stmt;    int rc = sqlite3_prepare_v2(db, sqlCmmd.str().c_str(), -1, &stmt, NULL);        rc = sqlite3_step(stmt);        if(rc != SQLITE_DONE){        return QString(static_cast<const char*>(sqlite3_column_blob(stmt, 0)));    }    else{        return "";    }}
开发者ID:JaredRauch,项目名称:Cyber-Dragon-Repository,代码行数:25,


示例4: showSegment

/*** Print the content of a segment or of the root of a segdir.  The segment** or root is identified by azExtra[0].  If the first character of azExtra[0]** is 'r' then the remainder is the integer rowid of the %_segdir entry.** If the first character of azExtra[0] is not 'r' then, then all of** azExtra[0] is an integer which is the block number.**** If the --raw option is present in azExtra, then a hex dump is provided.** Otherwise a decoding is shown.*/static void showSegment(sqlite3 *db, const char *zTab) {    const unsigned char *aData;    int nData;    sqlite3_stmt *pStmt;    pStmt = prepareToGetSegment(db, zTab, azExtra[0]);    if( sqlite3_step(pStmt)!=SQLITE_ROW ) {        sqlite3_finalize(pStmt);        return;    }    nData = sqlite3_column_bytes(pStmt, 0);    aData = sqlite3_column_blob(pStmt, 0);    printf("Segment %s of size %d bytes:/n", azExtra[0], nData);    if( findOption("raw", 0, 0)!=0 ) {        printBlob(aData, nData);    } else {        decodeSegment(aData, nData);    }    sqlite3_finalize(pStmt);}
开发者ID:mingodad,项目名称:sqlite,代码行数:30,


示例5: attr_gather_dir_page

/* * packs contents of an attribute of dir page. Note that even though the * query selects 'page', the resultant rows are actually rows 'numbers' * within directory page. *  * returns: * -EINVAL: invalid argument, or length(attribute value) != 40 * -EOVERFLOW: outlen too small * >0: success, number of bytes copied into outdata */static int attr_gather_dir_page(sqlite3_stmt *stmt, uint32_t outlen,				void *outdata, uint64_t oid, uint32_t page,				uint8_t listfmt){	uint32_t number = sqlite3_column_int(stmt, 0);	uint16_t len = sqlite3_column_bytes(stmt, 1);	const void *val = sqlite3_column_blob(stmt, 1);	if (len != ATTR_PAGE_ID_LEN) 		return -EINVAL;	if (listfmt == RTRVD_SET_ATTR_LIST) {		return le_pack_attr(outdata, outlen, page, number, len, val);	} else if (listfmt == RTRVD_CREATE_MULTIOBJ_LIST) {		return le_multiobj_pack_attr(outdata, outlen, oid, page, 					     number, len, val);	} else {		return -EINVAL;	}}
开发者ID:snsl,项目名称:osc-osd,代码行数:30,


示例6: verifyDatabase

void MapDatabaseSQLite3::loadBlock(const v3s16 &pos, std::string *block){	verifyDatabase();	bindPos(m_stmt_read, pos);	if (sqlite3_step(m_stmt_read) != SQLITE_ROW) {		sqlite3_reset(m_stmt_read);		return;	}	const char *data = (const char *) sqlite3_column_blob(m_stmt_read, 0);	size_t len = sqlite3_column_bytes(m_stmt_read, 0);	*block = (data) ? std::string(data, len) : "";	sqlite3_step(m_stmt_read);	// We should never get more than 1 row, so ok to reset	sqlite3_reset(m_stmt_read);}
开发者ID:MultiCraftProject,项目名称:MultiCraft,代码行数:20,


示例7: QString

bool DBBrowserDB::getRow(const QString& sTableName, int rowid, QList<QByteArray>& rowdata){    QString sQuery = QString("SELECT * from %1 WHERE rowid=%2;").arg(sTableName).arg(rowid);    QByteArray utf8Query = sQuery.toUtf8();    sqlite3_stmt *stmt;    int status = sqlite3_prepare_v2(_db, utf8Query, utf8Query.size(), &stmt, NULL);    if(SQLITE_OK == status)    {        // even this is a while loop, the statement should always only return 1 row        while(sqlite3_step(stmt) == SQLITE_ROW)        {            for (int i = 0; i < sqlite3_column_count(stmt); ++i)                rowdata.append(QByteArray(static_cast<const char*>(sqlite3_column_blob(stmt, i)), sqlite3_column_bytes(stmt, i)));        }    }    sqlite3_finalize(stmt);    return status == SQLITE_OK;}
开发者ID:MyChaosReigns,项目名称:sqlitebrowser,代码行数:20,


示例8: gbDB_GetNextRowFromMassTileRead

// ================================// gbDB_GetNextRowFromMassTileRead:// ================================//// Unused / deprecated.//int gbDB_GetNextRowFromMassTileRead(sqlite3*      database,                                    sqlite3_stmt* selStmt,                                    void**        tileData,                                    size_t*       tileDataBytes,                                    int*          dataCount,                                    uint32_t*     x,                                    uint32_t*     y){    int      sqliteStepResult = sqlite3_step(selStmt);    uint32_t _x               = -1;    uint32_t _y               = -1;    int      _dataCount       = 0;    void*    _tileData        = NULL;    size_t   _tileDataBytes   = 0;        // -- 1. read row with tile, store in temp vector --    if (sqliteStepResult == SQLITE_ROW)    {        _x                    = (uint32_t)sqlite3_column_int(selStmt, 0);        _y                    = (uint32_t)sqlite3_column_int(selStmt, 1);        _dataCount            =           sqlite3_column_int(selStmt, 2);        const void *blobBytes =          sqlite3_column_blob(selStmt, 3);        int blobLen           =         sqlite3_column_bytes(selStmt, 3);                if (blobLen > 0)        {            _tileDataBytes = blobLen;            _tileData      = malloc(_tileDataBytes);                        memcpy(_tileData, blobBytes, _tileDataBytes);        }//if    }//if        *tileData      = _tileData;    *tileDataBytes = _tileDataBytes;    *x             = _x;    *y             = _y;    *dataCount     = _dataCount;        return sqliteStepResult;}//gbDB_GetNextRowFromMassTileRead
开发者ID:Safecast,项目名称:General,代码行数:47,


示例9: finalizeStatement

BYTE * CSQLite::ReadScorcoData(const char * SQL, const char * param, BOOL * pSqlError, int * size){    int rc;    const void* pBlob;    if (strcmp(param, "FETCHMODE") != 0) {        finalizeStatement();        rc = sqlite3_prepare(sdb, SQL, -1, &pStmt, NULL);        if (rc != SQLITE_OK) {            strcpy(lastError, sqlite3_errmsg(sdb));            finalizeStatement();            *pSqlError = true;            return NULL;        }    }    // execute step    rc = sqlite3_step(pStmt);    if (rc == SQLITE_ERROR) {        strcpy(lastError, sqlite3_errmsg(sdb));        *pSqlError = true;        finalizeStatement();        return NULL;    }    *pSqlError = false;    if (rc == SQLITE_ROW) {        unsigned long length = sqlite3_column_bytes(pStmt, 0);        *size = length;        if (length == 0) return NULL;        char* buf = new char[length];        if (buf == NULL) return NULL;        pBlob = sqlite3_column_blob(pStmt, 0);        if (pBlob == NULL) { delete [] buf; return NULL; }        memcpy(buf, pBlob, length);        return (BYTE*)buf; // NWN VM will delete this block of memory    } else if (rc == SQLITE_DONE) {        finalizeStatement();    }    return NULL;}
开发者ID:NWNX,项目名称:nwnx2-linux,代码行数:41,


示例10: stack_res_get

/* *  stack_res_get *  --------------------------------------------------------------------------------------------- *  Accesses the details and/or data of the resource with the specified ID and type. *  Returns STACK_YES on success, STACK_NO otherwise. * *  Only returns the arguments for which a non-NULL pointer is supplied. * *  The result string and data remain valid until the next call, the stack is closed or  *  stack_res_type_n() is invoked. * *  An error can occur because the resource cannot be found or because of an I/O error. */int stack_res_get(Stack *in_stack, int in_id, char const *in_type, char **out_name, void **out_data, long *out_size){    assert(IS_STACK(in_stack));    assert(in_id >= 1);        if (in_stack->_returned_res_str) _stack_free(in_stack->_returned_res_str);    in_stack->_returned_res_str = NULL;    if (in_stack->_returned_res_data) _stack_free(in_stack->_returned_res_data);    in_stack->_returned_res_data = NULL;    long data_size = 0;        sqlite3_stmt *stmt;    sqlite3_prepare_v2(in_stack->db, "SELECT resourcename,data FROM resource WHERE resourceid=?1 AND resourcetype=?2", -1, &stmt, NULL);    sqlite3_bind_int(stmt, 1, in_id);    sqlite3_bind_text(stmt, 2, in_type, -1, SQLITE_STATIC);    int err = sqlite3_step(stmt);    if (err == SQLITE_ROW) {        in_stack->_returned_res_str = _stack_clone_cstr((char*)sqlite3_column_text(stmt, 0));        data_size = sqlite3_column_bytes(stmt, 1);        in_stack->_returned_res_data = _stack_malloc(data_size);        if (!in_stack->_returned_res_data)        {            _stack_panic_void(in_stack, STACK_ERR_MEMORY);            sqlite3_finalize(stmt);            return STACK_NO;        }        else            memcpy(in_stack->_returned_res_data, sqlite3_column_blob(stmt, 1), data_size);    }    sqlite3_finalize(stmt);        if (err == SQLITE_ROW)    {        if (out_name) *out_name = in_stack->_returned_res_str;        if (out_data) *out_data = in_stack->_returned_res_data;        if (out_size) *out_size = data_size;        return STACK_YES;    }    else        return STACK_NO;}
开发者ID:GDXN,项目名称:cinsimp,代码行数:54,


示例11: getAvatar

bool getAvatar(const std::string &db_path, const std::string &name, std::string &photo) {	bool ret = false;	sqlite3 *db;	LOG4CXX_INFO(logger, "Opening database " << db_path);	if (sqlite3_open(db_path.c_str(), &db)) {		sqlite3_close(db);		LOG4CXX_ERROR(logger, "Can't open database");	}	else {		sqlite3_stmt *stmt;		PREP_STMT(stmt, "SELECT avatar_image FROM Contacts WHERE skypename=?");		if (stmt) {			BEGIN(stmt);			BIND_STR(stmt, name);			if(sqlite3_step(stmt) == SQLITE_ROW) {				int size = sqlite3_column_bytes(stmt, 0);				if (size > 0) {				    const void *data = sqlite3_column_blob(stmt, 0);				    photo = std::string((const char *)data + 1, size - 1);				    ret = true;				} else {				    ret = false;				}			}			else {				LOG4CXX_ERROR(logger, (sqlite3_errmsg(db) == NULL ? "" : sqlite3_errmsg(db)));			}			int ret;			while((ret = sqlite3_step(stmt)) == SQLITE_ROW) {			}			FINALIZE_STMT(stmt);		}		else {			LOG4CXX_ERROR(logger, "Can't create prepared statement");			LOG4CXX_ERROR(logger, (sqlite3_errmsg(db) == NULL ? "" : sqlite3_errmsg(db)));		}		sqlite3_close(db);	}	return ret;}
开发者ID:cure,项目名称:libtransport,代码行数:41,


示例12: print_col

int print_col(sqlite3_stmt * pTableInfo, int col){	int fd;	static int ct = 0;	char outfile[50];	switch (sqlite3_column_type(pTableInfo, col)) {	case SQLITE_INTEGER:		printf("%d ", sqlite3_column_int(pTableInfo, col));		break;	case SQLITE_FLOAT:		printf("%f ", sqlite3_column_double(pTableInfo, col));		break;	case SQLITE_TEXT:		printf("%s ", sqlite3_column_text(pTableInfo, col));		break;	case SQLITE_BLOB:	//printf("%s",sqlite3_column_blob(pTableInfo, col));		/* fprintf(stderr, "IN BLOB bytes %d/n",		   sqlite3_column_bytes(pTableInfo, col)); */		snprintf(outfile, 20, "outdata.%d.png", ct++);		if ((fd = open(outfile, O_RDWR | O_CREAT, 0600)) == -1) {			fprintf(stderr, "Can't open data: %s/n",				strerror(errno));			return 1;		}		write(fd, sqlite3_column_blob(pTableInfo, col),		      sqlite3_column_bytes(pTableInfo, col));		close(fd);		break;	case SQLITE_NULL:		printf("Null ");		break;	default:		printf(" *Cannot determine SQLITE TYPE* col=%d ", col);	}	return 0;}
开发者ID:kentzo9,项目名称:django_weblog,代码行数:41,


示例13: db_query_value

void db_query_value(struct db_query *query, uint8_t **value, size_t *size, 		int *raw, int *id) {	const void *data;	int n;		*raw = sqlite3_column_int(query->stmt, 1);	*id = sqlite3_column_int(query->stmt, 2);	if(value == NULL)		return;	if( (data = sqlite3_column_blob(query->stmt, 0)) == NULL)		err_panic(0, "column data is NULL: %s", sqlite3_errmsg(g.handle));	if( (n = sqlite3_column_bytes(query->stmt, 0)) < 0)		err_panic(0, "value size is negative");	*size = n;	if(*size > 0) {		*value = talloc_array(NULL, uint8_t, *size);		memcpy(*value, data, *size);	}}
开发者ID:cantora,项目名称:aug-db,代码行数:21,


示例14: encryptPassword

/*! * * @param username * @param password * @return */Customer* Database::loginAsCustomer(QString username, QString password){    unsigned* digest = encryptPassword(password);    Customer* customer;    if(validateCustomerLogin(username, digest)){        ostringstream sqlCmmd;        sqlCmmd << "SELECT cl_customer FROM ics_customer_logins WHERE cl_username = '"                << username.toStdString() << "'";        sqlite3_stmt* stmt;        sqlite3_prepare_v2(connection, sqlCmmd.str().c_str(), -1, &stmt, NULL);        sqlite3_step(stmt);        customer = new Customer(connection, QString(static_cast<const char*>(sqlite3_column_blob(stmt, 0))));    }    else{        ostringstream ex;        ex << "Invalid login by " << username.toStdString();        throw new InvalidLoginException(ex.str().c_str());    }    return customer;}
开发者ID:JaredRauch,项目名称:Cyber-Dragon-Repository,代码行数:27,


示例15: NN_ASSERT

//============================================================================//		NDBResult::GetValueData : Get a data value.//----------------------------------------------------------------------------NData NDBResult::GetValueData(NIndex theIndex) const{	NData			theResult;	const void		*thePtr;	NIndex			theSize;	// Validate our parameters	NN_ASSERT(theIndex < GetSize());	// Get the value	thePtr  = (const void *) sqlite3_column_blob( (sqlite3_stmt *) mResult, theIndex);	theSize = (NIndex      ) sqlite3_column_bytes((sqlite3_stmt *) mResult, theIndex);		if (thePtr != NULL && theSize != 0)		theResult.AppendData(theSize, thePtr);		return(theResult);}
开发者ID:x414e54,项目名称:nano,代码行数:24,


示例16: ASSERT

String SQLiteStatement::getColumnBlobAsString(int col){    ASSERT(col >= 0);    if (!m_statement && prepareAndStep() != SQLITE_ROW)        return String();    if (columnCount() <= col)        return String();    const void* blob = sqlite3_column_blob(m_statement, col);    if (!blob)        return String();    int size = sqlite3_column_bytes(m_statement, col);    if (size < 0)        return String();    ASSERT(!(size % sizeof(UChar)));    return String(static_cast<const UChar*>(blob), size / sizeof(UChar));}
开发者ID:rzr,项目名称:Tizen_Crosswalk,代码行数:21,


示例17: sqlite3_column_blob

void QgsSpatiaLiteFeatureIterator::getFeatureGeometry( sqlite3_stmt* stmt, int ic, QgsFeature& feature ){  if ( sqlite3_column_type( stmt, ic ) == SQLITE_BLOB )  {    unsigned char *featureGeom = NULL;    size_t geom_size = 0;    const void *blob = sqlite3_column_blob( stmt, ic );    size_t blob_size = sqlite3_column_bytes( stmt, ic );    QgsSpatiaLiteProvider::convertToGeosWKB(( const unsigned char * )blob, blob_size,                                            &featureGeom, &geom_size );    if ( featureGeom )      feature.setGeometryAndOwnership( featureGeom, geom_size );    else      feature.setGeometryAndOwnership( 0, 0 );  }  else  {    // NULL geometry    feature.setGeometryAndOwnership( 0, 0 );  }}
开发者ID:JudeHu,项目名称:QGIS,代码行数:21,


示例18: sizeof

float zDBBinaryReader::ToSingle(int offset){	int						cb = sizeof(float);		// Number of bytes to alloc/copy	const unsigned char*	puData;					// Pointer into raw data	array<System::Byte>^	rg;						// Managed byte array of data	PinnedBytePtr			pinRg;					// Pinned pointer into rg[]	CHECK_DISPOSED(m_disposed);	if(offset < 0) throw gcnew ArgumentException();	if(offset > (m_cb - cb)) throw gcnew ArgumentOutOfRangeException();	rg = gcnew array<System::Byte>(cb);		// Allocate the local buffer	pinRg = &rg[0];							// Pin it down for memcpy_s	// Copy only the amount of data we specifically need from SQLite, and attempt	// to convert it using a standard binary conversion mechanism	puData = reinterpret_cast<const unsigned char*>(sqlite3_column_blob(m_pStatement->Handle, m_ordinal));	memcpy_s(pinRg, cb, puData + offset, cb);	return BitConverter::ToSingle(rg, 0);}
开发者ID:djp952,项目名称:data-legacy,代码行数:21,


示例19: blobListLoadFromDb

/*** Load a list of Blob objects from the database*/static void blobListLoadFromDb(  sqlite3 *db,             /* Read from this database */  const char *zSql,        /* Query used to extract the blobs */  int onlyId,              /* Only load where id is this value */  int *pN,                 /* OUT: Write number of blobs loaded here */  Blob **ppList            /* OUT: Write the head of the blob list here */){  Blob head;  Blob *p;  sqlite3_stmt *pStmt;  int n = 0;  int rc;  char *z2;  if( onlyId>0 ){    z2 = sqlite3_mprintf("%s WHERE rowid=%d", zSql, onlyId);  }else{    z2 = sqlite3_mprintf("%s", zSql);  }  rc = sqlite3_prepare_v2(db, z2, -1, &pStmt, 0);  sqlite3_free(z2);  if( rc ) fatalError("%s", sqlite3_errmsg(db));  head.pNext = 0;  p = &head;  while( SQLITE_ROW==sqlite3_step(pStmt) ){    int sz = sqlite3_column_bytes(pStmt, 1);    Blob *pNew = safe_realloc(0, sizeof(*pNew)+sz );    pNew->id = sqlite3_column_int(pStmt, 0);    pNew->sz = sz;    pNew->seq = n++;    pNew->pNext = 0;    memcpy(pNew->a, sqlite3_column_blob(pStmt,1), sz);    pNew->a[sz] = 0;    p->pNext = pNew;    p = pNew;  }  sqlite3_finalize(pStmt);  *pN = n;  *ppList = head.pNext;}
开发者ID:jmptrader,项目名称:sqlite,代码行数:43,


示例20: read_chunk_sqlite

static bool read_chunk_sqlite(unsigned char *chunk, const unsigned char *digest,		void *db_info_ptr){	static const char sql[] = "SELECT data FROM chunk WHERE hash = ?";	struct db_info *db_info = db_info_ptr;	sqlite3_stmt *stmt;	int err;	bool status = false;	lock_db(db_info);	err = sqlite3_prepare(db_info->db, sql, -1, &stmt, 0);	if (err != SQLITE_OK) {		ERROR("sqlite3_prepare failed: %d/n",				sqlite3_errmsg(db_info->db));		unlock_db(db_info);		return false;	}	TRACE("%s/n", digest_string(digest));	sqlite3_bind_text(stmt, 1, digest_string(digest), -1, SQLITE_STATIC);	err = sqlite3_step(stmt);	if (err != SQLITE_ROW) {		ERROR("sqlite3_step failed: %s/n",				sqlite3_errmsg(db_info->db));	} else if (sqlite3_column_bytes(stmt, 0) != CHUNK_SIZE) {		ERROR("sqlite3 query returned %d bytes instead of %d./n",				sqlite3_column_bytes(stmt, 0), CHUNK_SIZE);	} else {		TRACE("sqlite3 query got chunk./n");		memcpy(chunk, sqlite3_column_blob(stmt, 0), CHUNK_SIZE);		status = true;	}	sqlite3_finalize(stmt);	unlock_db(db_info);	return status;}
开发者ID:dayne,项目名称:zunkfs,代码行数:40,


示例21: sqlite3_prepare_v2

sf::SoundBuffer* ResourceManager::getSoundBuffer(std::string filename) {    if (mSoundBuffers.count(filename) > 0) {        return mSoundBuffers.at(filename);    }    int rc;    std::string query = "SELECT bytes FROM files "                        "WHERE  name='" + filename + "';";    sqlite3_stmt *stmt;    rc = sqlite3_prepare_v2(mDB, query.c_str(), -1, &stmt, NULL);    if(rc != SQLITE_OK){        std::cerr << "Could not prepare query: " << sqlite3_errmsg(mDB) << std::endl;        sqlite3_finalize(stmt);        throw ErrorCode(EC_DB_FAILURE);    }    rc = sqlite3_step(stmt);    if(rc != SQLITE_ROW){        std::cerr << "Could not execute query: " << sqlite3_errmsg(mDB) << std::endl;        sqlite3_finalize(stmt);        throw ErrorCode(EC_DB_FAILURE);    }    const void* data = sqlite3_column_blob(stmt, 0);    size_t data_size = sqlite3_column_bytes(stmt, 0);    sf::SoundBuffer* soundBuffer = new sf::SoundBuffer();    if (!soundBuffer->loadFromMemory(data, data_size)) {        throw ErrorCode(EC_AUDIO_FAILURE);    }    mSoundBuffers[filename] = soundBuffer;    sqlite3_finalize(stmt);    return soundBuffer;}
开发者ID:asalahli,项目名称:Bombardier,代码行数:39,


示例22: get_columns

voidO2DatDB::get_columns(sqlite3_stmt* stmt, wstrarray &cols){	__int64 t_int;	double	t_float;	wstring	t_text;	byte	*t_byte;	int		size;	wchar_t tmp[1024];	int column_count = sqlite3_column_count(stmt);	for (int i = 0; i < column_count; i++) {		switch (sqlite3_column_type(stmt, i)) {			case SQLITE_INTEGER:				t_int = sqlite3_column_int64 (stmt, i);				swprintf_s(tmp, 1024, L"%I64u", t_int);				cols.push_back(tmp);				break;			case SQLITE_FLOAT:				t_float = sqlite3_column_double(stmt, i);				swprintf_s(tmp, 1024, L"%lf", t_float);				cols.push_back(tmp);				break;			case SQLITE_TEXT:				t_text = (wchar_t*)sqlite3_column_text16(stmt, i);				cols.push_back(t_text);				break;			case SQLITE_BLOB:				size = sqlite3_column_bytes(stmt, i);				t_byte = new byte[size];				memcpy(t_byte, (byte*)sqlite3_column_blob(stmt, i), size);				byte2whex(t_byte, size, t_text);				cols.push_back(t_text);				delete [] t_byte;				break;		}	}}
开发者ID:idobatter,项目名称:o2on,代码行数:39,


示例23: showDoclist

/*** Print the content of a doclist.  The segment or segdir-root is** identified by azExtra[0].  If the first character of azExtra[0]** is 'r' then the remainder is the integer rowid of the %_segdir entry.** If the first character of azExtra[0] is not 'r' then, then all of** azExtra[0] is an integer which is the block number.  The offset** into the segment is identified by azExtra[1].  The size of the doclist** is azExtra[2].**** If the --raw option is present in azExtra, then a hex dump is provided.** Otherwise a decoding is shown.*/static void showDoclist(sqlite3 *db, const char *zTab){  const unsigned char *aData;  sqlite3_int64 offset, nData;  sqlite3_stmt *pStmt;  offset = atoi64(azExtra[1]);  nData = atoi64(azExtra[2]);  pStmt = prepareToGetSegment(db, zTab, azExtra[0]);  if( sqlite3_step(pStmt)!=SQLITE_ROW ){    sqlite3_finalize(pStmt);    return;  }  aData = sqlite3_column_blob(pStmt, 0);  printf("Doclist at %s offset %lld of size %lld bytes:/n",         azExtra[0], offset, nData);  if( findOption("raw", 0, 0)!=0 ){    printBlob(aData+offset, nData);  }else{    decodeDoclist(aData+offset, nData);  }  sqlite3_finalize(pStmt);}
开发者ID:0xr0ot,项目名称:sqlcipher,代码行数:34,


示例24: row_to_value

static mrb_valuerow_to_value(mrb_state* mrb, sqlite3_stmt* stmt) {  int i;  int count = sqlite3_column_count(stmt);  mrb_value a = mrb_ary_new(mrb);  for (i = 0; i < count; i++) {    switch (sqlite3_column_type(stmt, i)) {    case SQLITE_INTEGER:      {        sqlite3_int64 value = sqlite3_column_int64(stmt, i);        mrb_ary_push(mrb, a, mrb_fixnum_value((mrb_int) value));      }      break;    case SQLITE_FLOAT:      {        double value = sqlite3_column_double(stmt, i);        mrb_ary_push(mrb, a, mrb_float_value(mrb, value));      }      break;    case SQLITE_BLOB:      {        int size = sqlite3_column_bytes(stmt, i);        const char* ptr = sqlite3_column_blob(stmt, i);        mrb_ary_push(mrb, a, mrb_str_new(mrb, ptr, size));      }      break;    case SQLITE_NULL:      mrb_ary_push(mrb, a, mrb_nil_value());      break;    case SQLITE_TEXT:      {        const char* value = (const char*) sqlite3_column_text(stmt, i);        mrb_ary_push(mrb, a, mrb_str_new_cstr(mrb, value));      }      break;    }  }  return a;}
开发者ID:hiro-matsuno,项目名称:mruby-sqlite3,代码行数:39,


示例25: sqlite3_step

// Retrieve an arbitrary binary value from INI file or registry.BOOL  SQLITE3::GetProfileBinary(LPCTSTR lpszSection, LPCTSTR lpszEntry,                                LPBYTE* ppData, UINT* pBytes, bool fallofftoreg){    CString szSQL;    szSQL.Format(_T("SELECT vdata FROM settingbin2 WHERE skey = /"%s/" AND sect = /"%s/" ") , lpszSection, lpszEntry);    int iDestLen;    char* buff = svpTool.CStringToUTF8(szSQL, &iDestLen);    char *tail;    sqlite3_stmt *stmt=0;    int err = 1;    if(sqlite3_prepare_v2(db, buff, strlen(buff), &stmt, 0) == SQLITE_OK)    {        //printf("Could not prepare statement./n");        //return;        rc = sqlite3_step(stmt);        if( rc==SQLITE_ROW )        {            int newBlobSize = sqlite3_column_bytes(stmt, 0);            if(newBlobSize > 0){                void* buffx = malloc(newBlobSize);                *pBytes = newBlobSize;                    memcpy(buffx, sqlite3_column_blob(stmt, 0), newBlobSize);                *ppData = (LPBYTE)buffx;                //SVP_LogMsg6("lalalax got bin %d", newBlobSize);                err = 0;            }        }         sqlite3_finalize(stmt);     }    free(buff);    if(!err){        return true;    }else if (fallofftoreg){        //SVP_LogMsg6("lalalax");        return AfxGetApp()->GetProfileBinary(lpszSection,lpszEntry,ppData,pBytes);    }    else        return false;}
开发者ID:Fluffiest,项目名称:splayer,代码行数:40,


示例26: cursor_get_sub

static Value cursor_get_sub(sqlite3_stmt *stmt, int i){    switch (sqlite3_column_type(stmt, i)) {    case SQLITE_INTEGER:        return fs->int64_Value(sqlite3_column_int64(stmt, i));    case SQLITE_FLOAT:        return fs->float_Value(fs->cls_float, sqlite3_column_double(stmt, i));    case SQLITE_TEXT: {        const char *p = (const char*)sqlite3_column_text(stmt, i);        int len = sqlite3_column_bytes(stmt, i);        return fs->cstr_Value(NULL, p, len);    }    case SQLITE_BLOB: {        const char *p = (const char*)sqlite3_column_blob(stmt, i);        int len = sqlite3_column_bytes(stmt, i);        return fs->cstr_Value(fs->cls_bytes, p, len);    }    default:        break;    }    return VALUE_NULL;}
开发者ID:x768,项目名称:fox-lang,代码行数:22,


示例27: if

// id integer primary key,source text,title text,link text,description blob,read integerbool CSQLite::GetCaches(std::vector<CCache*>* caches, const char* source, int read){	std::stringstream ss;	std::string sql;	std::string tsource;	if(WrapApostrophe(source, &tsource))		source = tsource.c_str();	ss << "select * from " << kCachesTableName << " where source='" << source << "'";	if(read == 1) ss << " and read=1;";	else if(read == 0) ss << " and read=0;";	else ss << ";";	sql = ss.str();	sqlite3_stmt* stmt;	if(sqlite3_prepare(m_db, sql.c_str(),-1,&stmt,nullptr) == SQLITE_OK){		int rv;		while((rv = sqlite3_step(stmt)) == SQLITE_ROW){			auto pCache = new CCache;			pCache->id = sqlite3_column_int(stmt, 0);			pCache->source = (const char*)sqlite3_column_text(stmt, 1);			pCache->title = (const char*)sqlite3_column_text(stmt, 2);			pCache->link = (const char*)sqlite3_column_text(stmt, 3);			pCache->description = (const char*)sqlite3_column_blob(stmt, 4);			pCache->read = !!sqlite3_column_int(stmt, 5);			caches->push_back(pCache);		}		if(rv != SQLITE_DONE){			throw "未能取得缓存数据!";		}		sqlite3_finalize(stmt);		return true;	}	else{		throw "sqlite3错误!";	}	return false;}
开发者ID:asdlei00,项目名称:tinyrss,代码行数:40,


示例28: get_active_preset_name

static gchar*get_active_preset_name(dt_lib_module_info_t *minfo){  sqlite3_stmt *stmt;  DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "select name, op_params, writeprotect from presets where operation=?1 and op_version=?2", -1, &stmt, NULL);  DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 1, minfo->plugin_name, strlen(minfo->plugin_name), SQLITE_TRANSIENT);  DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, minfo->version);  gchar *name = NULL;  // collect all presets for op from db  while(sqlite3_step(stmt) == SQLITE_ROW)  {    void *op_params = (void *)sqlite3_column_blob(stmt, 1);    int32_t op_params_size = sqlite3_column_bytes(stmt, 1);    if(op_params_size == minfo->params_size && !memcmp(minfo->params, op_params, op_params_size))    {      name = g_strdup((char *)sqlite3_column_text(stmt, 0));      break;    }  }  sqlite3_finalize(stmt);  return name;}
开发者ID:MarcAntoine-Arnaud,项目名称:darktable,代码行数:22,


示例29: rtrimChar

void SqliteTableModel::fetchData(unsigned int from, unsigned to){    int currentsize = m_data.size();    QString sLimitQuery;    if(m_sQuery.startsWith("PRAGMA", Qt::CaseInsensitive) || m_sQuery.startsWith("EXPLAIN", Qt::CaseInsensitive))    {        sLimitQuery = m_sQuery;    } else {        // Remove trailing trailing semicolon        QString queryTemp = rtrimChar(m_sQuery, ';');        // If the query ends with a LIMIT statement take it as it is, if not append our own LIMIT part for lazy population        if(queryTemp.contains(QRegExp("LIMIT//s+//d+//s*(,//s*//d+//s*)?$", Qt::CaseInsensitive)))            sLimitQuery = queryTemp;        else            sLimitQuery = QString("%1 LIMIT %2, %3;").arg(queryTemp).arg(from).arg(to-from);    }    m_db->logSQL(sLimitQuery, kLogMsg_App);    QByteArray utf8Query = sLimitQuery.toUtf8();    sqlite3_stmt *stmt;    int status = sqlite3_prepare_v2(m_db->_db, utf8Query, utf8Query.size(), &stmt, NULL);    if(SQLITE_OK == status)    {        while(sqlite3_step(stmt) == SQLITE_ROW)        {            QByteArrayList rowdata;            for (int i = 0; i < m_headers.size(); ++i)                rowdata.append(QByteArray(static_cast<const char*>(sqlite3_column_blob(stmt, i)), sqlite3_column_bytes(stmt, i)));            m_data.push_back(rowdata);        }    }    sqlite3_finalize(stmt);    beginInsertRows(QModelIndex(), currentsize, m_data.size()-1);    endInsertRows();}
开发者ID:answord,项目名称:sqlitebrowser,代码行数:38,



注:本文中的sqlite3_column_blob函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ sqlite3_column_double函数代码示例
C++ sqlite3_close函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。