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

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

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

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

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

示例1: DbLastRowId

int DbLastRowId(DB_HANDLE handle, DB_ID* id){    if (id == NULL) {        return MsgLog(DBS_INVARG, "NULL id");    }    /* TODO returns a sqlite_int64; can this be cast into an unsigned long?     * do we need to check this for each platform? */	*id = (DB_ID) sqlite3_last_insert_rowid((sqlite3*) handle);	/*	 * In sqlite, there is no error code; a value of 0 is returned if there	 * is no matching row.  In this case, convert it to an error code.	 */	return (*id != 0) ? 0 : DBS_NOSUCHROW;}
开发者ID:jschlyter,项目名称:opendnssec-workflow-test,代码行数:18,


示例2: SQLOK

int RollbackManager::getNodeId(const std::string &name){	for (std::vector<Entity>::const_iterator iter = knownNodes.begin();			iter != knownNodes.end(); ++iter) {		if (iter->name == name) {			return iter->id;		}	}	SQLOK(sqlite3_bind_text(stmt_knownNode_insert, 1, name.c_str(), name.size(), NULL));	SQLRES(sqlite3_step(stmt_knownNode_insert), SQLITE_DONE);	SQLOK(sqlite3_reset(stmt_knownNode_insert));	int id = sqlite3_last_insert_rowid(db);	registerNewNode(id, name);	return id;}
开发者ID:Caellian,项目名称:minetest,代码行数:18,


示例3: mDb

Replacements::Replacements(sqlite3* db, string name, sqlite_int64 ownerId) :    mDb(db), mName(name), mOwnerId(ownerId){    exAssert(db!=NULL);    exAssertDesc(ownerId > 0, "ownerId should be greater null");	sqlite_int64 groupId = 0;	stringstream strSql;	strSql  << "SELECT rowid FROM replacementGroups "		<< "WHERE name = " << cSqlStrOut(mName)		<< " AND ownerId = " << mOwnerId;	string sRowId;	exec(strSql, mDb, onReadFirstField, &sRowId);	if (sRowId.length() > 0) {		groupId = cSqlInFormated<sqlite_int64>(sRowId);	} else {		strSql.str(""); //clear		strSql  << "INSERT INTO replacementGroups "			<< "(name, ownerId) VALUES ("			<< cSqlStrOut(mName) << ", "			<< mOwnerId << ")";		exec(strSql, mDb);		groupId = sqlite3_last_insert_rowid(mDb);	}	vector<string> rowids;	strSql.str(""); //clear	strSql << "SELECT rowid FROM replacements "		"WHERE groupId = " << cSqlOutFormated(groupId) ;	exec(strSql, db, onAppendFirstColumnToVector, &rowids);	for (vector<string>::iterator it = rowids.begin();		it != rowids.end(); it++) {			stringstream strRowid(*it);			sqlite_int64 rowid;			strRowid >> rowid;			Replacement* newReplacement = new Replacement(db,  rowid);			mChildren[newReplacement->getRowId()] = newReplacement;	}};
开发者ID:arturh85,项目名称:Renamer.NET,代码行数:44,


示例4: log

void PsmFile::insertMatches(const vector<Match>& matches){    // insert the result into tables msRunSearchResult, BiblioSpecSearchResult    char zSql[2048];    double pValue = -1;    for(int i = 0; i < reportMatches_; i++) {        Match tmpMatch = matches.at(i);        const RefSpectrum* tmpRefSpec = tmpMatch.getRefSpec();        //        const Spectrum* s = tmpMatch.getExpSpec();       pValue = -1 * log(tmpMatch.getScore(BONF_PVAL));        if(isinf( pValue ))            pValue = 1000;        sprintf(zSql,                "insert into msRunSearchResult(runSearchID,scanID,charge,"                "peptide,preResidue, postResidue, validationStatus) "                "values(%d,%d,%d,'%s','%s','%s','=')",                blibRunSearchID_,                0,//                s->getScanID(),                0,//tmpRefSpec->getCharge(),                (tmpRefSpec->getSeq()).c_str(),                (tmpRefSpec->getPrevAA()).c_str(),                (tmpRefSpec->getNextAA()).c_str());        SqliteRoutine::SQL_STMT(zSql, db_);                zSql[0]='/0';                int resultID=(int)sqlite3_last_insert_rowid(db_);        sprintf(zSql, "insert into BiblioSpecSearchResult "                "values(%d,%d,%d,%d,%f,%f,'%s')",                resultID,                tmpRefSpec->getLibSpecID(),                tmpMatch.getMatchLibID(),                i+1,                tmpMatch.getScore(DOTP),                pValue,                tmpRefSpec->getMods().c_str());        SqliteRoutine::SQL_STMT(zSql, db_);        zSql[0]='/0';    } // next match}
开发者ID:lgatto,项目名称:proteowizard,代码行数:44,


示例5: buildDateTimeString

void Cache::addVCard(const std::string &fn, const std::string &ln, const std::vector< std::string > &emails, const std::string &data, const std::string &updatedAt) {    if(fn.length() == 0) {        std::cerr << "Firstname is empty!" << std::endl;        return;    }    if(ln.length() == 0) {        std::cerr << "Lastname is empty!" << std::endl;        return;    }    if(emails.size() == 0) {        std::cerr << "Email is empty!" << std::endl;        return;    }    if(data.length() == 0) {        std::cerr << "Data is empty!" << std::endl;        return;    }    if(db == NULL) {        std::cerr << "Database not open!" << std::endl;        return;    }    std::string dt = buildDateTimeString(updatedAt);    std::stringstream ss;    // happy sql injecting ;)    ss << "insert into vcards (FirstName, LastName, VCard, UpdatedAt) values (";    ss << "'" << fn << "','" << ln << "','" << data << "','" << dt << "')";    bool b = prepSqlite(ss.str());    if(b) {        b = stepSqlite("Failed to add new record to cache database");        if(b) {            sqlite3_int64 rowid = sqlite3_last_insert_rowid(db);            addEmails(emails, rowid);        } else {            finalizeSqlite(); // finalize on error only        }    }}
开发者ID:krmnn,项目名称:muttvcardsearch,代码行数:44,


示例6: find_album_art

sqlite_int64find_album_art(const char * path, const char * image_data, int image_size){	char * album_art = NULL;	char * sql;	char ** result;	int cols, rows;	sqlite_int64 ret = 0;	char * mypath;	const char * dir;	struct stat st;	if( stat(path, &st) == 0 && S_ISDIR(st.st_mode) )	{		mypath = NULL;		dir = path;	}	else	{		mypath = strdup(path);		dir = dirname(mypath);	}	if( (image_size && (album_art = check_embedded_art(path, image_data, image_size))) ||	    (album_art = check_for_album_file(dir, path)) )	{		sql = sqlite3_mprintf("SELECT ID from ALBUM_ART where PATH = '%q'", album_art ? album_art : path);		if( (sql_get_table(db, sql, &result, &rows, &cols) == SQLITE_OK) && rows )		{			ret = strtoll(result[1], NULL, 10);		}		else		{			if( sql_exec(db, "INSERT into ALBUM_ART (PATH) VALUES ('%q')", album_art) == SQLITE_OK )				ret = sqlite3_last_insert_rowid(db);		}		sqlite3_free_table(result);		sqlite3_free(sql);	}	free(album_art);	free(mypath);	return ret;}
开发者ID:GunioRobot,项目名称:rtn56u,代码行数:44,


示例7: linphone_chat_message_store_content

static int linphone_chat_message_store_content(LinphoneChatMessage *msg) {	LinphoneCore *lc = linphone_chat_room_get_core(msg->chat_room);	int id = -1;	if (lc->db) {		LinphoneContent *content = msg->file_transfer_information;		char *buf = sqlite3_mprintf("INSERT INTO content VALUES(NULL,%Q,%Q,%Q,%Q,%i,%Q);",						linphone_content_get_type(content),						linphone_content_get_subtype(content),						linphone_content_get_name(content),						linphone_content_get_encoding(content),						linphone_content_get_size(content),						NULL					);		linphone_sql_request(lc->db, buf);		sqlite3_free(buf);		id = (unsigned int) sqlite3_last_insert_rowid (lc->db);	}	return id;}
开发者ID:Accontech,项目名称:linphone,代码行数:19,


示例8: DBH_RegisterUser

u32 DBH_RegisterUser( char* nUsername, char* nPassword ){  u32 uid = 0;  if ( DBH_UserExistsByName( nUsername ) ) return uid;  char* pQueryString = malloc( 128 );  memset( pQueryString, 0, 128 );  sprintf( pQueryString, "INSERT INTO Users (username, password) VALUES ('%s', '%s')", nUsername, nPassword );  DBH_Query( pQueryString, NULL, NULL, NULL );  free( pQueryString );  // assumes a maximum user id of 2^32  uid = (u32) sqlite3_last_insert_rowid( DBH_dbhnd );  return uid;}
开发者ID:FEChiari,项目名称:Sudoku,代码行数:19,


示例9: library_image_add

int64_t library_image_add(int64_t file){  static const char *sql =    "INSERT INTO images (fileid) VALUES(?)";    sqlite3_stmt *query;    if (!prepare_query(sql, &query)) {    return -1;  }    sqlite3_bind_int64(query, 1, file);    if (!execute(query)) {    return -1;  }    return sqlite3_last_insert_rowid(db_handle());}
开发者ID:EQ4,项目名称:musicd,代码行数:19,


示例10: main

int main(void) {        sqlite3 *db;    char *err_msg = 0;        int rc = sqlite3_open(":memory:", &db);        if (rc != SQLITE_OK) {                fprintf(stderr, "Cannot open database: %s/n", sqlite3_errmsg(db));        sqlite3_close(db);                return 1;    }        char *sql = "CREATE TABLE Friends(Id INTEGER PRIMARY KEY, Name TEXT);"    "INSERT INTO Friends(Name) VALUES ('Tom');"    "INSERT INTO Friends(Name) VALUES ('Rebecca');"    "INSERT INTO Friends(Name) VALUES ('Jim');"    "INSERT INTO Friends(Name) VALUES ('Roger');"    "INSERT INTO Friends(Name) VALUES ('Robert');";                rc = sqlite3_exec(db, sql, 0, 0, &err_msg);        if (rc != SQLITE_OK ) {                fprintf(stderr, "Failed to create table/n");        fprintf(stderr, "SQL error: %s/n", err_msg);        sqlite3_free(err_msg);            } else {                fprintf(stdout, "Table Friends created successfully/n");    }        int last_id = sqlite3_last_insert_rowid(db);    printf("The last Id of the inserted row is %d/n", last_id);    sqlite3_close(db);        return 0;}
开发者ID:Sashayaske,项目名称:lab4,代码行数:43,


示例11: sprintf

/** * This method is susceptible to injections. Please make sure filename is 'safe' */uint32_t db_wrapper::insert_file(std::string filename) {    {	sqlite3_stmt *ppStmt;	char sql[1024] = "/0";	sprintf(sql, "select fileId from files where filename like '%s'", filename.c_str());	if (SQLITE_OK != sqlite3_prepare_v2(db, sql, -1, &ppStmt, 0)) {	    std::cout << "Well here's an error (3)..." << std::endl;	    //error handling	}	uint32_t fileId = 0;	if (sqlite3_step(ppStmt) != SQLITE_DONE) {	    fileId = sqlite3_column_int(ppStmt,0);	    sqlite3_finalize(ppStmt);	    return fileId;	}	sqlite3_finalize(ppStmt);    }    sqlite3_stmt *ppStmt;    char sql[1024] = "/0";    sprintf(sql, "insert into files (filename) VALUES ('%s')", filename.c_str());    if (SQLITE_OK != sqlite3_prepare_v2(db, sql, -1, &ppStmt, 0)) {	std::cout << "Well here's an error (4)..." << std::endl;	//error handling    }    uint32_t fileId = 0;    int rc;    if (SQLITE_DONE != (rc = sqlite3_step(ppStmt))) {    	// error handling    	std::cout << "something went wrong. Error code: " << rc << std::endl;    	std::cout << sqlite3_errmsg(db) << std::endl;    }    fileId = sqlite3_last_insert_rowid(db);    sqlite3_finalize(ppStmt);    return fileId;}
开发者ID:CaioPaiola,项目名称:scape-xcorrsound,代码行数:45,


示例12: SQLOK

Sender * DB::addSender(Sender &snd){	int res;	SQLOK(bind_text(stmt_add_sender, 1, snd.nick.data(), snd.nick.size(),			NULL), "binding sender nick");	SQLOK(bind_text(stmt_add_sender, 2, snd.user.data(), snd.user.size(),			NULL), "binding sender ident");	SQLOK(bind_text(stmt_add_sender, 3, snd.host.data(), snd.host.size(),			NULL), "binding sender host");	SQLRES(step(stmt_add_sender), SQLITE_DONE,			"running sender insertion statement");	SQLOK(reset(stmt_add_sender),			"reseting sender insertion statement");	snd.id = sqlite3_last_insert_rowid(dbh);	senders.push_back(snd);	return &senders[senders.size() - 1];}
开发者ID:ShadowNinja,项目名称:SupyLogToSQL,代码行数:20,


示例13: create_cache

static krb5_error_codecreate_cache(krb5_context context, krb5_scache *s){    int ret;    sqlite3_bind_text(s->icache, 1, s->name, -1, NULL);    do {	ret = sqlite3_step(s->icache);    } while (ret == SQLITE_ROW);    if (ret != SQLITE_DONE) {	krb5_set_error_message(context, KRB5_CC_IO,			       N_("Failed to add scache: %d", ""), ret);	return KRB5_CC_IO;    }    sqlite3_reset(s->icache);    s->cid = sqlite3_last_insert_rowid(s->db);    return 0;}
开发者ID:hyc,项目名称:heimdal,代码行数:20,


示例14: sqlite3_bind_int

uint64_t EventLogger::logEvent(ExecutionState *state, unsigned event,            uint64_t count) {    void *host_callstack[32];    sqlite3_bind_int(event_insert_stmt_, 1, event);    sqlite3_bind_int64(event_insert_stmt_, 2, count);    if (!CollectHostBacktraces) {        sqlite3_bind_null(event_insert_stmt_, 3);    } else {        int btrace_size = backtrace(&host_callstack[0], 32);        sqlite3_bind_blob(event_insert_stmt_, 3, &host_callstack[0],                btrace_size * sizeof(void*), NULL);    }    int result = sqlite3_step(event_insert_stmt_);    assert(result == SQLITE_DONE);    sqlite3_reset(event_insert_stmt_);    return sqlite3_last_insert_rowid(db_);}
开发者ID:AmesianX,项目名称:chef,代码行数:21,


示例15: insert_peerProfile

int insert_peerProfile(const char *nick_name, const char *group_name, const char *sex, const char *age, const char *introduction, const char *head_image_path, const char *server_id, const char *server_uid, const char *last_ip, const char *tcp_port, const char *udp_port){	char *errmsg=0;//记录返回的错误信息。	sqlite3 *db=0; //记录返回的数据库句柄	if(!open_db(&db, PEERSINFO_DBFILE_NAME))		return false;	// 下述函数进行数据库添加操作	char *szBaseSql = "insert into peers_profile(nick_name,group_name,sex,age,introduction,head_image_path,server_id,server_uid,last_ip,last_tcp_port,last_udp_port) values('";	char *szSql = v6strcat(23, szBaseSql, nick_name, "','", group_name, "','", sex, "','",age, "','",introduction, "','",head_image_path, "','",server_id, "','",server_uid, "','",last_ip, "','",tcp_port, "','",udp_port,"')");	int rc=sqlite3_exec(db,szSql,0,0,&errmsg);	release_db_data((void **)&szSql);	CHECK_RC(rc,errmsg,db);	// 下述函数获取数据库插入的数据的ID	int id = (int) sqlite3_last_insert_rowid(db);	sqlite3_close(db);	return id;}
开发者ID:wuyingfengsui,项目名称:V6Chat,代码行数:21,


示例16: insert_myProfile

int insert_myProfile(const char *name,const char *sex,const char *age,const char *introduction,const char *head_image_path, const char *v4_port, const char *v6_port){	char *errmsg=0;//记录返回的错误信息。	sqlite3 *db=0; //记录返回的数据库句柄	if(!open_db(&db, MYINFO_DBFILE_NAME))		return false;	//下述函数进行数据库添加操作	char *szBaseSql = "insert into my_profile(nick_name,sex,age,introduction,head_image_path,v4_port,v6_port) values('";	char *szSql = v6strcat(15, szBaseSql, name, "','", sex, "','", age, "','",introduction,"','",head_image_path,"','",v4_port,"','",v6_port,"')");	int rc=sqlite3_exec(db,szSql,0,0,&errmsg);	release_db_data((void **)&szSql);	CHECK_RC(rc,errmsg,db);	//下述函数获取数据库插入的数据的ID	int id = (int) sqlite3_last_insert_rowid(db);	sqlite3_close(db);	return id;}
开发者ID:wuyingfengsui,项目名称:V6Chat,代码行数:21,


示例17: insert_serverInformation

int insert_serverInformation(const char *name, const char *ip, const char *port, const char *description, const char *uid, const char *upassword){	char *errmsg=0;//记录返回的错误信息。	sqlite3 *db=0; //记录返回的数据库句柄	if(!open_db(&db, SERVERSINFO_DBFILE_NAME))		return false;	//下述函数进行数据库添加操作	char *szBaseSql = "insert into server_information(name,ip,port,description,uid,upassword) values('";	char *szSql = v6strcat(13, szBaseSql, name, "','", ip, "','", port, "','",description, "','",uid, "','",upassword,"')");	int rc=sqlite3_exec(db,szSql,0,0,&errmsg);	release_db_data((void **)&szSql);	CHECK_RC(rc,errmsg,db);	//下述函数获取数据库插入的数据的ID	int id = (int) sqlite3_last_insert_rowid(db);	sqlite3_close(db);	return id;}
开发者ID:wuyingfengsui,项目名称:V6Chat,代码行数:21,


示例18: PARAMETERS

// insert and return parameter's idint database_handler::insert_parameter(const char* parameter_name, int error_id) {    char* error_message = NULL;    std::stringstream s_url_id;    std::string stmt;    s_url_id << error_id;    stmt += "INSERT INTO PARAMETERS (PARAMETER_NAME, ERROR_ID) VALUES('";    stmt += parameter_name;    stmt += "',";    stmt += s_url_id.str();    stmt += ");";    sqlite3_exec(db, stmt.c_str(), NULL, 0, &error_message);    if (error_message) {        std::cout << error_message << std::endl;        sqlite3_free(error_message);        return -1;    }    return sqlite3_last_insert_rowid(db);}
开发者ID:T-Pham,项目名称:web-scanner-visualizer,代码行数:22,


示例19: createecu

sqlite3_int64 createecu(sqlite3 *db, const char *vin, long ecu, const char *ecudesc) {	sqlite3_int64 foundecu = getecuid(db, vin, ecu);	if(0 < foundecu) {		return foundecu;	}	char insert_sql[] = "INSERT INTO ecu (vin,ecu,ecudesc) VALUES (?,?,?)";	int rc;	sqlite3_stmt *stmt;	rc = sqlite3_prepare_v2(db, insert_sql, -1, &stmt, NULL);	if(SQLITE_OK != rc) {		fprintf(stderr, "Can't prepare statement %s: %s/n", insert_sql, sqlite3_errmsg(db));		return -1;	}	if(NULL != vin) {		sqlite3_bind_text(stmt, 1, vin, strlen(vin), NULL);	} else {		sqlite3_bind_text(stmt, 1, "", 0, NULL);	}	sqlite3_bind_int64(stmt, 2, ecu);	if(NULL != ecudesc) {		sqlite3_bind_text(stmt, 3, ecudesc, strlen(ecudesc), NULL);	} else {		sqlite3_bind_text(stmt, 3, "", 0, NULL);	}	rc = sqlite3_step(stmt);	if(SQLITE_OK != rc && SQLITE_DONE != rc) {		fprintf(stderr, "Error stepping ecu insert(%i): %s/n", rc, sqlite3_errmsg(db));	}	sqlite3_finalize(stmt);	return sqlite3_last_insert_rowid(db);}
开发者ID:ClemsonResearchWithDrMocko,项目名称:ClemsonVibrationResearch,代码行数:40,


示例20: create_batch

PRIVATE void create_batch(int format_index, int key_prov_index, int min_lenght, int max_lenght, const char* provider_param){	sqlite3_stmt* insert_new_batch;	free(batch);	num_attack_in_batch = 1;	current_attack_index = 0;	batch = (AttackData*)malloc( sizeof(AttackData) * num_attack_in_batch);	batch[0].format_index = format_index;	batch[0].provider_index = key_prov_index;	// Check that lengths are in range	batch[0].min_lenght = __min(__max(__min(max_lenght, min_lenght), key_providers[batch[0].provider_index].min_size), formats[batch[0].format_index].max_plaintext_lenght);	batch[0].max_lenght = __min(max_lenght, formats[batch[0].format_index].max_plaintext_lenght);	batch[0].num_keys_served = 0;	// Put Params	strcpy(batch[0].params, provider_param);	sprintf(batch_name, "%s / %s", formats[format_index].name, key_providers[key_prov_index].name);	sprintf(batch_description, "Length %i - %i", batch[0].min_lenght, batch[0].max_lenght);	key_providers[key_prov_index].get_param_description(provider_param, batch_name+strlen(batch_name), batch[0].min_lenght, batch[0].max_lenght);	batch[0].resume_arg[0] = 0;	// Method to split charset into optimized chunks	introduce_fast_lm(&batch, &num_attack_in_batch);	// Insert batch data	if(!is_benchmark)	{		sqlite3_prepare_v2(db, "INSERT INTO Batch (Name,Description) VALUES (?,?);", -1, &insert_new_batch, NULL);		sqlite3_bind_text(insert_new_batch, 1, batch_name, -1, SQLITE_STATIC);		sqlite3_bind_text(insert_new_batch, 2, batch_description, -1, SQLITE_STATIC);		sqlite3_step(insert_new_batch);		batch_db_id = sqlite3_last_insert_rowid(db);		sqlite3_finalize(insert_new_batch);	}}
开发者ID:alainesp,项目名称:HashSuiteDroid,代码行数:39,


示例21: CCL_tarifpart_new

/** * Add a new part to the current tarif. * * @param   hour The starting hour. * @param   min The starting minute. * @param   days The days it applies. * @param   hourprice The price per hour. * @return The tarifpart's id. */gintCCL_tarifpart_new(guint hour, guint min, guint days, guint hourprice, guint incprice){  gchar *cmd = NULL;  sqlite3_stmt *stmt = NULL;  g_return_val_if_fail(-1 == CCL_tarifpart_id_get(hour, min, days), -1);  g_return_val_if_fail(!CCL_tarifpart_conflicts(hour, min, days, NULL), -1);  g_return_val_if_fail(days <= 127 && days, -1);  g_return_val_if_fail(1 <= ccl->tarif_id, -1);  cmd = sqlite3_mprintf("insert into tarifs/n"			"(tarif, days, stime, hourprice, incprice)/n"			"values(%d, %u, '%.2u:%.2u', %u, %u);",			ccl->tarif_id, days, hour, min, hourprice, incprice);  sqlite3_prepare(ccl->db, cmd, -1, &stmt, NULL);  sqlite3_free(cmd);  sqlite3_step(stmt);  sqlite3_finalize(stmt);  return sqlite3_last_insert_rowid(ccl->db);}
开发者ID:rbemmanuel,项目名称:kwama,代码行数:31,


示例22: Names

bool BRCWriter::Insert(std::string symName, int type, sqlite3_int64 *id){    static char *query = "INSERT INTO Names (name, type) VALUES (?,?)";    int rc = SQLITE_OK;    static sqlite3_stmt *handle;    if (!handle)    {        rc = sqlite3_prepare_v2(dbPointer, query, strlen(query)+1, &handle, nullptr);    }    if (rc == SQLITE_OK)    {        int done = false;        sqlite3_reset(handle);        sqlite3_bind_text(handle, 1, symName.c_str(), symName.size(), SQLITE_STATIC);        sqlite3_bind_int(handle, 2, type);        while (!done)        {            switch(rc = sqlite3_step(handle))            {                case SQLITE_BUSY:                    done = true;                    break;                case SQLITE_DONE:                    rc = SQLITE_OK;                    done = true;                    break;                default:                    done = true;                    break;            }        }                            }    if (rc == SQLITE_OK)    {        *id = sqlite3_last_insert_rowid(dbPointer);    }    return rc == SQLITE_OK;}
开发者ID:bencz,项目名称:OrangeC,代码行数:38,


示例23: _insert_ud

static int _insert_ud(struct meas_db_state *st, unsigned long meas_id, int dtx,		      int uplink, const struct gsm_meas_rep_unidir *ud){	unsigned long rowid;	SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_ud, 1, meas_id));	SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_ud, 2,					rxlev2dbm(ud->full.rx_lev)));	SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_ud, 3,					rxlev2dbm(ud->sub.rx_lev)));	SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_ud, 4, ud->full.rx_qual));	SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_ud, 5, ud->sub.rx_qual));	SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_ud, 6, dtx));	SCK_OK(st->db, sqlite3_bind_int(st->stmt_ins_ud, 7, uplink));	SCK_DONE(st->db, sqlite3_step(st->stmt_ins_ud));	SCK_OK(st->db, sqlite3_reset(st->stmt_ins_ud));	return sqlite3_last_insert_rowid(st->db);err_io:	exit(1);}
开发者ID:fairwaves,项目名称:openbsc,代码行数:23,


示例24: logSQL

int DBBrowserDB::addRecord(const QString& sTableName){    char *errmsg;    if (!isOpen()) return false;    // add record is seldom called, for now this is ok    // but if we ever going to add a lot of records    // we should cache the parsed tables somewhere    sqlb::Table table = sqlb::Table::parseSQL(getObjectByName(sTableName).getsql()).first;    QString sInsertstmt = table.emptyInsertStmt();    lastErrorMessage = "";    logSQL(sInsertstmt, kLogMsg_App);    setRestorePoint();    if (SQLITE_OK != sqlite3_exec(_db, sInsertstmt.toUtf8(), NULL, NULL, &errmsg))    {        lastErrorMessage = QString::fromUtf8(errmsg);        qWarning() << "addRecord: " << lastErrorMessage;        return -1;    } else {        return sqlite3_last_insert_rowid(_db);    }}
开发者ID:MyChaosReigns,项目名称:sqlitebrowser,代码行数:23,


示例25: db_insertTeacher

int db_insertTeacher(sqlite3 * db, char * name, double rate, int subjects, int years, char * birthdate){    sqlite3_stmt * stmt =  NULL;    int last = -1;    const char * sql = "INSERT INTO Teachers (name, rate, subjects, years, birthdate) VALUES (?, ?, ?, ?, ?);";    int rc = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL);    sqlite3_bind_text(stmt, 1, name, strlen(name), SQLITE_TRANSIENT);    sqlite3_bind_double(stmt, 2, rate);    sqlite3_bind_int(stmt, 3, subjects);    sqlite3_bind_int(stmt, 4, years);    sqlite3_bind_text(stmt, 5, birthdate, strlen(birthdate), SQLITE_TRANSIENT);    if(SQLITE_OK != rc)    {        printf("Not prepared!/n");    }    if (SQLITE_DONE != (rc = sqlite3_step(stmt)))    {        printf("Not inserted! %i/n", rc);    }    last = (int) sqlite3_last_insert_rowid (db);    sqlite3_finalize(stmt);    return last; }
开发者ID:SorochynskyiVladyslav,项目名称:CoursesRepository,代码行数:23,


示例26: addKey

int64_tPibDb::addCertificate(const IdentityCertificate& certificate){  const Name& certName = certificate.getName();  const Name& keyName = certificate.getPublicKeyName();  if (!hasKey(keyName))    addKey(keyName, certificate.getPublicKeyInfo());  sqlite3_stmt* statement;  sqlite3_prepare_v2(m_database,                     "INSERT INTO certificates /                      (key_id, certificate_name, certificate_data) /                      values ((SELECT id FROM keys WHERE key_name=?), ?, ?)",                     -1, &statement, nullptr);  sqlite3_bind_block(statement, 1, keyName.wireEncode(), SQLITE_TRANSIENT);  sqlite3_bind_block(statement, 2, certName.wireEncode(), SQLITE_TRANSIENT);  sqlite3_bind_block(statement, 3, certificate.wireEncode(), SQLITE_STATIC);  sqlite3_step(statement);  sqlite3_finalize(statement);  return sqlite3_last_insert_rowid(m_database);}
开发者ID:CSUL,项目名称:ndn-tools,代码行数:23,


示例27: sqlite3_exec

int DocumentDatabase::insert(sqlite3* db, std::string q){	char* errorMessage;	sqlite3_exec(db, q.c_str(), NULL, NULL, &errorMessage);	if (errorMessage)	{		std::cout << "Error executing the following SQL command" << std::endl;		std::cout << q << std::endl;		std::cout << "Error message:" << errorMessage;		sqlite3_free(errorMessage);	}	int ret = (int)sqlite3_last_insert_rowid(db);	return ret;	//sqlite3_stmt* stmt;	//std::stringstream b;	//b << q;	//std::string s = b.str();	//char *str = &s[0];	//int result;	//char *query = str;	//{	//	int prepCode = sqlite3_prepare(db, query, -1, &stmt, 0);	//	if (prepCode == SQLITE_OK)	//	{	//		int res = sqlite3_step(stmt);	//		result = res;	//		sqlite3_finalize(stmt);	//	}	//	else	//	{	//		std::cout << "Error executing the following SQL command" << std::endl;	//		std::cout << q << std::endl;	//		std::cout << "Error Code:" << prepCode;	//	}	//}	}
开发者ID:acronos7021,项目名称:Stare,代码行数:37,


示例28: update_peerProfile

int update_peerProfile(const char *uid, const char *nick_name, const char *group_name, const char *sex, const char *age, const char *introduction, const char *head_image_path, const char *server_id, const char *server_uid, const char *last_ip, const char *tcp_port, const char *udp_port){	char *errmsg=0;//记录返回的错误信息。	sqlite3 *db=0; //记录返回的数据库句柄	if(!open_db(&db, PEERSINFO_DBFILE_NAME))		return false;	// 替换introduction字段中'为''	char* newintro = replacestr(introduction, "'", "''");	//下述函数进行数据库添加操作	int id = atoi(uid);	char *szSql = NULL;	if(id == 0)	{	    char *szBaseSql = "insert into peers_profile(nick_name,group_name,sex,age,introduction,head_image_path,server_id,server_uid,last_ip,last_tcp_port,last_udp_port) values('";	    szSql = v6strcat(23, szBaseSql, nick_name, "','", group_name, "','", sex, "','",age, "','",newintro, "','",head_image_path, "','",server_id, "','",server_uid, "','",last_ip, "','",tcp_port, "','",udp_port,"')");	}	else	{		char *szBaseSql = "insert or replace into peers_profile(uid,nick_name,group_name,sex,age,introduction,head_image_path,server_id,server_uid,last_ip,last_tcp_port,last_udp_port) values('";	    szSql = v6strcat(25, szBaseSql, uid, "','", nick_name, "','", group_name, "','", sex, "','",age, "','",newintro, "','",head_image_path, "','",server_id, "','",server_uid, "','",last_ip, "','",tcp_port, "','",udp_port,"')");	}	int rc=sqlite3_exec(db,szSql,0,0,&errmsg);	release_db_data((void **)&szSql);	free(newintro);	CHECK_RC(rc,errmsg,db);	//下述函数获取数据库插入的数据的ID	if(id == 0)	    id = (int) sqlite3_last_insert_rowid(db);	sqlite3_close(db);	return id;}
开发者ID:wuyingfengsui,项目名称:V6Chat,代码行数:37,


示例29: VALUES

__int64 database::add_order(const ::TradeGateway::Order *pOrder){	if( !this->is_connected() )		this->connect();	std::ostringstream sql;	sql << "INSERT INTO dt_orders VALUES ("		<< "'" << pOrder->accountId << "',"		<< "'" << pOrder->inst.securityID << "',"		<< ""  << pOrder->inst.securityIDSource<< ","		<< ""  << pOrder->s << ","		<< ""  << pOrder->posEfct << ","		<< ""  << pOrder->type<< ","		<< ""  << pOrder->lmtPrice<< ","		<< ""  << pOrder->ordQty << ","		<< "'" << pOrder->ordId<< "',"		<< ""  << TradeGateway::New << ","		<< ""  << pOrder->date<< ","		<< ""  << pOrder->time<< ","		<< ""  << 0<< ","		<< ""  << 0<< ","		<< ""  << pOrder->ordQty<< ","		<< "/"" << ""<< "/");";		char *zErrMsg = 0;	int rc = sqlite3_exec(pdb, sql.str().c_str(), NULL, 0, &zErrMsg);	if( rc!=SQLITE_OK )	{		std::ostringstream err ;		err << "SQL error: " << zErrMsg;		sqlite3_free(zErrMsg);		throw err.str();	}	else		return sqlite3_last_insert_rowid( pdb );}
开发者ID:code4hunter,项目名称:oldpts,代码行数:37,



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


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