这篇教程C++ sqlite3_prepare_v2函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中sqlite3_prepare_v2函数的典型用法代码示例。如果您正苦于以下问题:C++ sqlite3_prepare_v2函数的具体用法?C++ sqlite3_prepare_v2怎么用?C++ sqlite3_prepare_v2使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了sqlite3_prepare_v2函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: create_table//.........这里部分代码省略......... break; }; if (*sql2 != '/0') { strcat (sql, sql2); } col = col->next; } strcat (sql, "/n)"); ret = sqlite3_exec (params->db_handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE '%s' error: %s/n", table, err_msg); sqlite3_free (err_msg); return 0; } sprintf (sql, "SELECT AddGeometryColumn('%s', 'geometry', %d", table, params->srid); switch (params->geometry_type) { case GEOM_POINT: strcat (sql, ", 'POINT'"); params->declared_type = GAIA_POINT; break; case GEOM_MULTIPOINT: strcat (sql, ", 'MULTIPOINT'"); params->declared_type = GAIA_MULTIPOINT; break; case GEOM_LINESTRING: strcat (sql, ", 'LINESTRING'"); params->declared_type = GAIA_LINESTRING; break; case GEOM_MULTILINESTRING: strcat (sql, ", 'MULTILINESTRING'"); params->declared_type = GAIA_MULTILINESTRING; break; case GEOM_POLYGON: strcat (sql, ", 'POLYGON'"); params->declared_type = GAIA_POLYGON; break; case GEOM_MULTIPOLYGON: strcat (sql, ", 'MULTIPOLYGON'"); params->declared_type = GAIA_MULTIPOLYGON; break; default: strcat (sql, ", 'GEOMETRYCOLLECTION'"); params->declared_type = GAIA_GEOMETRYCOLLECTION; break; } strcat (sql, ", 'XY')"); ret = sqlite3_exec (params->db_handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ADD GEOMETRY COLUMN '%s' error: %s/n", table, err_msg); sqlite3_free (err_msg); return 0; }/* creating a prepared statemet for INSERST INTO */ sprintf (sql, "INSERT INTO %s (", table); strcat (sql, "PkUID"); col = params->first; while (col) { sprintf (sql2, ", %s", col->name); strcat (sql, sql2); col = col->next; } strcat (sql, ", geometry) VALUES (NULL"); col = params->first; while (col) { strcat (sql, ", ?"); col = col->next; } strcat (sql, ", ?)"); ret = sqlite3_prepare_v2 (params->db_handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "SQL error: %s/n%s/n", sql, sqlite3_errmsg (params->db_handle)); return 0; } params->stmt = stmt;/* the complete data load is handled as an unique SQL Transaction */ ret = sqlite3_exec (params->db_handle, "BEGIN", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "BEGIN TRANSACTION error: %s/n", err_msg); sqlite3_free (err_msg); return 0; } return 1;}
开发者ID:imincik,项目名称:pkg-spatialite-tools,代码行数:101,
示例2: Q_UNUSEDvoid QgsOSMDatabase::exportSpatiaLiteWays( bool closed, const QString& tableName, const QStringList& tagKeys ){ Q_UNUSED( tagKeys ); QString sqlInsertLine = QString( "INSERT INTO %1 VALUES (?" ).arg( quotedIdentifier( tableName ) ); for ( int i = 0; i < tagKeys.count(); ++i ) sqlInsertLine += QString( ",?" ); sqlInsertLine += ", GeomFromWKB(?, 4326))"; sqlite3_stmt* stmtInsert; if ( sqlite3_prepare_v2( mDatabase, sqlInsertLine.toUtf8().constData(), -1, &stmtInsert, 0 ) != SQLITE_OK ) { mError = "Prepare SELECT FROM ways failed."; return; } QgsOSMWayIterator ways = listWays(); QgsOSMWay w; while (( w = ways.next() ).isValid() ) { QgsOSMTags t = tags( true, w.id() ); QgsPolyline polyline = wayPoints( w.id() ); if ( polyline.count() < 2 ) continue; // invalid way bool isArea = ( polyline.first() == polyline.last() ); // closed way? // some closed ways are not really areas if ( isArea && ( t.contains( "highway" ) || t.contains( "barrier" ) ) ) { if ( t.value( "area" ) != "yes" ) // even though "highway" is line by default, "area"="yes" may override that isArea = false; } if ( closed != isArea ) continue; // skip if it's not what we're looking for QgsGeometry* geom = closed ? QgsGeometry::fromPolygon( QgsPolygon() << polyline ) : QgsGeometry::fromPolyline( polyline ); int col = 0; sqlite3_bind_int64( stmtInsert, ++col, w.id() ); // tags for ( int i = 0; i < tagKeys.count(); ++i ) { if ( t.contains( tagKeys[i] ) ) sqlite3_bind_text( stmtInsert, ++col, t.value( tagKeys[i] ).toUtf8().constData(), -1, SQLITE_TRANSIENT ); else sqlite3_bind_null( stmtInsert, ++col ); } sqlite3_bind_blob( stmtInsert, ++col, geom->asWkb(), geom->wkbSize(), SQLITE_STATIC ); int insertRes = sqlite3_step( stmtInsert ); if ( insertRes != SQLITE_DONE ) { mError = QString( "Error inserting way %1 [%2]" ).arg( w.id() ).arg( insertRes ); break; } sqlite3_reset( stmtInsert ); sqlite3_clear_bindings( stmtInsert ); delete geom; } sqlite3_finalize( stmtInsert );}
开发者ID:Adam-Brown,项目名称:Quantum-GIS,代码行数:66,
示例3: mainint main(void){ int r; char* errmsg; sqlite3* conW; sqlite3* conR; r = sqlite3_open("/scratch/sinclair/tmp/write_database.sql", &conW); if(r) {printf("Can't open db: %s/n", sqlite3_errmsg(conW)); exit(1);} r = sqlite3_open("/scratch/sinclair/tmp/read_database.sql", &conR); if(r) {printf("Can't open db: %s/n", sqlite3_errmsg(conR)); exit(1);} r = sqlite3_exec(conW, "BEGIN", 0, 0, &errmsg); if(r!=SQLITE_OK) {printf("Can't start transaction: %s/n", errmsg); exit(1);} char *tables[]={ "table0", "table1", "table2", "table3", "table4", "table5", "table6", "table7", "table8", "table9"}; int n = 10; int j = 0; int i; char queryR[1024]; char queryW[1024]; sqlite3_stmt* stmR; sqlite3_stmt* stmW; for(i=0; i<n; i++){ snprintf(queryW, sizeof(queryW), "%s%s%s", "CREATE table '", tables[i], "' (one text, two text, three integer)"); r = sqlite3_exec(conW, queryW, 0, 0, &errmsg); if(r!=SQLITE_OK) {printf("Can't execute: %s/n", errmsg); exit(1);} snprintf(queryR, sizeof(queryR), "%s%s%s", "SELECT * from '", tables[i], "'"); r = sqlite3_prepare_v2(conR, queryR, -1, &stmR, 0); if(r!=SQLITE_OK) {printf("Can't prepare read: %s/n", sqlite3_errmsg(conR)); exit(1);} snprintf(queryW, sizeof(queryW), "%s%s%s", "INSERT into '", tables[i], "' values (?,?,?)"); r = sqlite3_prepare_v2(conW, queryW, -1, &stmW, 0); if(r!=SQLITE_OK) {printf("Can't prepare write: %s/n", sqlite3_errmsg(conW)); exit(1);} while (1){ j++; r = sqlite3_step(stmR); if (r == SQLITE_DONE) {break;} if (r != SQLITE_ROW) {printf("Can't step read statement (%d): %s/n", r, sqlite3_errmsg(conR)); exit(1);} r = sqlite3_bind_text(stmW, 1, sqlite3_column_text(stmR, 0), 6, 0); if(r!=SQLITE_OK) {printf("Row %d, can't bind first var of write statement (%d): %s/n", j, r, sqlite3_errmsg(conW)); exit(1);} r = sqlite3_bind_text(stmW, 2, sqlite3_column_text(stmR, 1), 6, 0); if(r!=SQLITE_OK) {printf("Row %d, can't bind second var of write statement (%d): %s/n", j, r, sqlite3_errmsg(conW)); exit(1);} r = sqlite3_bind_int( stmW, 3, sqlite3_column_int( stmR, 2) +1); if(r!=SQLITE_OK) {printf("Row %d, can't bind third var of write statement (%d): %s/n", j, r, sqlite3_errmsg(conW)); exit(1);} r = sqlite3_step(stmW); if(r!=SQLITE_DONE) {printf("Can't step on write statement (%d): %s/n", r, sqlite3_errmsg(conW)); exit(1);} r = sqlite3_reset(stmW); if(r!=SQLITE_OK) {printf("Can't reset the write statement (%d): %s/n", r, sqlite3_errmsg(conW)); exit(1);}}} sqlite3_close(conR); r = sqlite3_exec(conW, "COMMIT", 0, 0, &errmsg); if(r!=SQLITE_OK) {printf("Can't commit transaction: %s/n", errmsg); exit(1);} sqlite3_close(conW); return 0;}
开发者ID:bow,项目名称:track,代码行数:62,
示例4: search_moviesint search_movies(movie_t* items, uint32_t* num_results, const char* terms) { char buffer[1024]; sqlite3_stmt* query; int retval; uint32_t count; if (terms == NULL) { strcpy(buffer, "SELECT COUNT(*) FROM movies"); } else { if ((sizeof(buffer)-50) < sizeof(terms)) { log_debug(ERROR,"search_movies(): terms exceeds buffer"); return MI_EXIT_ERROR; } strcpy(buffer, "SELECT COUNT(*) FROM movies WHERE "); strcat(buffer, terms); } log_debug(INFO,"search_movies(): starting query"); log_debug(INFO,buffer); if (sqlite3_prepare_v2(db_handle,buffer,-1,&query,NULL) != SQLITE_OK) { log_debug(ERROR,"search_movies(): error executing query"); log_debug(ERROR,sqlite3_errmsg(db_handle)); return MI_EXIT_ERROR; } retval = sqlite3_step(query); if (retval == SQLITE_ROW) *num_results = (uint32_t)sqlite3_column_int(query,0); else if (retval == SQLITE_DONE) { log_debug(INFO,"search_movies(): no results for query"); sqlite3_finalize(query); return MI_NO_RESULTS; } else { log_debug(ERROR,"search_movies(): unknown error"); log_debug(ERROR,sqlite3_errmsg(db_handle)); sqlite3_finalize(query); return MI_EXIT_ERROR; } if (*num_results == 0) { log_debug(INFO,"search_movies(): no results for query"); sqlite3_finalize(query); return MI_NO_RESULTS; } if (terms == NULL) { strpcy(buffer, "SELECT * FROM movies"); } else { strcpy(buffer, "SELECT * FROM movies WHERE "); strcat(buffer, terms); } log_debug(INFO,"search_movies(): starting query"); log_debug(INFO,buffer); if (sqlite3_prepare_v2(db_handle,buffer,-1,&query,NULL) != SQLITE_OK) { log_debug(ERROR,"search_movies(): error executing query"); log_debug(ERROR,sqlite3_errmsg(db_handle)); return MI_EXIT_ERROR; } items = malloc(sizeof(movie_t)*(*num_results)); count = 0; log_debug(INFO,"search_movies(): staring row processing"); while (1) { retval = sqlite3_step(query); if (retval == SQLITE_ROW) { items[count].code = (uint32_t)sqlite3_column_int(query,0); items[count].type = (medium_t)sqlite3_column_int(query,1); items[count].genre = (genre_t)sqlite3_column_int(query,2); strcpy(items[count].title, (char *)sqlite3_column_text(query,3)); strcpy(items[count].director,(char *)sqlite3_column_text(query,4)); strcpy(items[count].studio, (char *)sqlite3_column_text(query,5)); items[count].rating = (short)sqlite3_column_int(query,6); count++; sprintf(buffer,"search_movies(): loaded row %u", count); log_debug(INFO,buffer); } else if (retval == SQLITE_DONE) { /* all done */ log_debug(INFO,"search_movies(): row processing done"); sprintf(buffer,"%u rows processed out of %u rows actual",count,*num_results); log_debug(INFO,buffer); break; } else { /* error of some sort */ log_debug(ERROR,"search_movies: error during row processing"); log_debug(ERROR,sqlite3_errmsg(db_handle)); sprintf(buffer,"%u rows processed out of %u rows actual",count,*num_results); log_debug(INFO,buffer); *num_results = 0; free(items);//.........这里部分代码省略.........
开发者ID:fjgreer,项目名称:mindex,代码行数:101,
示例5: daemon_data_sqlite_data_real_GetLogstatic GList* daemon_data_sqlite_data_real_GetLog (DaemonDataIDataAccess* base, const gchar* channel, const gchar* server, GError** error) { DaemonDataSqliteData * self; GList* result = NULL; gchar* _tmp0_; gchar* commandText; sqlite3_stmt* statement = NULL; sqlite3_stmt* _tmp1_ = NULL; gchar* _tmp2_; gchar* _tmp3_; gint _result_; GList* results; GError * _inner_error_ = NULL; self = (DaemonDataSqliteData*) base; g_return_val_if_fail (channel != NULL, NULL); g_return_val_if_fail (server != NULL, NULL); _tmp0_ = g_strdup ("SELECT * FROM Log WHERE Channel = @1 AND Server = @2 ORDER BY Timestam" /"p DESC LIMIT 50"); commandText = _tmp0_; sqlite3_prepare_v2 (self->priv->_database, commandText, -1, &_tmp1_, NULL); _sqlite3_finalize0 (statement); statement = _tmp1_; _tmp2_ = g_strdup (channel); sqlite3_bind_text (statement, 1, _tmp2_, -1, g_free); _tmp3_ = g_strdup (server); sqlite3_bind_text (statement, 2, _tmp3_, -1, g_free); _result_ = 0; results = NULL; { gboolean _tmp4_; _tmp4_ = TRUE; while (TRUE) { gint _tmp5_; if (!_tmp4_) { if (!(_result_ == SQLITE_ROW)) { break; } } _tmp4_ = FALSE; _tmp5_ = sqlite3_step (statement); _result_ = _tmp5_; switch (_result_) { case SQLITE_DONE: { { break; } } case SQLITE_ROW: { { const gchar* _tmp6_ = NULL; gchar* _tmp7_; gchar* username; const gchar* _tmp8_ = NULL; gchar* _tmp9_; gchar* data; const gchar* _tmp10_ = NULL; gchar* _tmp11_; gchar* eventChannel; const gchar* _tmp12_ = NULL; gchar* _tmp13_; gchar* eventServer; gint64 _tmp14_; GDateTime* _tmp15_ = NULL; GDateTime* timestamp; gint _tmp16_; DaemonDataEventTypes type; DaemonEventsLogEvent* current; DaemonEventsLogEvent* _tmp21_; _tmp6_ = sqlite3_column_text (statement, 0); _tmp7_ = g_strdup (_tmp6_); username = _tmp7_; _tmp8_ = sqlite3_column_text (statement, 1); _tmp9_ = g_strdup (_tmp8_); data = _tmp9_; _tmp10_ = sqlite3_column_text (statement, 2); _tmp11_ = g_strdup (_tmp10_); eventChannel = _tmp11_; _tmp12_ = sqlite3_column_text (statement, 3); _tmp13_ = g_strdup (_tmp12_); eventServer = _tmp13_; _tmp14_ = sqlite3_column_int64 (statement, 4); _tmp15_ = daemon_helpers_date_time_converter_FromUnixTimestamp (_tmp14_); timestamp = _tmp15_; _tmp16_ = sqlite3_column_int (statement, 5); type = (DaemonDataEventTypes) _tmp16_; current = NULL; switch (type) { case DAEMON_DATA_EVENT_TYPES_Joined: { { DaemonEventsStatusEvent* _tmp17_ = NULL; _tmp17_ = daemon_events_status_event_new_WithTimestamp (username, DAEMON_EVENTS_STATUS_CHANGE_Join, eventChannel, eventServer, timestamp); _g_object_unref0 (current); current = (DaemonEventsLogEvent*) _tmp17_; break; } } case DAEMON_DATA_EVENT_TYPES_Left: {//.........这里部分代码省略.........
开发者ID:SBFh,项目名称:SemesterLeistung,代码行数:101,
示例6: tokenize/** * This function is invoked as: * * _TOKENIZE('<token_table>', <data_row_id>, <data>, <delimiter>, * <use_token_index>, <data_tag>) * * If <use_token_index> is omitted, it is treated as 0. * If <data_tag> is omitted, it is treated as NULL. * * It will split <data> on each instance of <delimiter> and insert each token * into <token_table>. The following columns in <token_table> are used: * token TEXT, source INTEGER, token_index INTEGER, tag (any type) * The token_index column is not required if <use_token_index> is 0. * The tag column is not required if <data_tag> is NULL. * * One row is inserted for each token in <data>. * In each inserted row, 'source' is <data_row_id>. * In the first inserted row, 'token' is the hex collation key of * the entire <data> string, and 'token_index' is 0. * In each row I (where 1 <= I < N, and N is the number of tokens in <data>) * 'token' will be set to the hex collation key of the I:th token (0-based). * If <use_token_index> != 0, 'token_index' is set to I. * If <data_tag> is not NULL, 'tag' is set to <data_tag>. * * In other words, there will be one row for the entire string, * and one row for each token except the first one. * * The function returns the number of tokens generated. */static void tokenize(sqlite3_context * context, int argc, sqlite3_value ** argv){ //LOGD("enter tokenize"); int err; int useTokenIndex = 0; int useDataTag = 0; if (!(argc >= 4 || argc <= 6)) { LOGE("Tokenize requires 4 to 6 arguments"); sqlite3_result_null(context); return; } if (argc > 4) { useTokenIndex = sqlite3_value_int(argv[4]); } if (argc > 5) { useDataTag = (sqlite3_value_type(argv[5]) != SQLITE_NULL); } sqlite3 * handle = sqlite3_context_db_handle(context); UCollator* collator = (UCollator*)sqlite3_user_data(context); char const * tokenTable = (char const *)sqlite3_value_text(argv[0]); if (tokenTable == NULL) { LOGE("tokenTable null"); sqlite3_result_null(context); return; } // Get or create the prepared statement for the insertions sqlite3_stmt * statement = (sqlite3_stmt *)sqlite3_get_auxdata(context, 0); if (!statement) { char const * tokenIndexCol = useTokenIndex ? ", token_index" : ""; char const * tokenIndexParam = useTokenIndex ? ", ?" : ""; char const * dataTagCol = useDataTag ? ", tag" : ""; char const * dataTagParam = useDataTag ? ", ?" : ""; char * sql = sqlite3_mprintf("INSERT INTO %s (token, source%s%s) VALUES (?, ?%s%s);", tokenTable, tokenIndexCol, dataTagCol, tokenIndexParam, dataTagParam); err = sqlite3_prepare_v2(handle, sql, -1, &statement, NULL); sqlite3_free(sql); if (err) { LOGE("prepare failed"); sqlite3_result_null(context); return; } // This binds the statement to the table it was compiled against, which is argv[0]. // If this function is ever called with a different table the finalizer will be called // and sqlite3_get_auxdata() will return null above, forcing a recompile for the new table. sqlite3_set_auxdata(context, 0, statement, tokenize_auxdata_delete); } else { // Reset the cached statement so that binding the row ID will work properly sqlite3_reset(statement); } // Bind the row ID of the source row int64_t rowID = sqlite3_value_int64(argv[1]); err = sqlite3_bind_int64(statement, 2, rowID); if (err != SQLITE_OK) { LOGE("bind failed"); sqlite3_result_null(context); return; } // Bind <data_tag> to the tag column if (useDataTag) { int dataTagParamIndex = useTokenIndex ? 4 : 3; err = sqlite3_bind_value(statement, dataTagParamIndex, argv[5]); if (err != SQLITE_OK) { LOGE("bind failed"); sqlite3_result_null(context);//.........这里部分代码省略.........
开发者ID:seinlin,项目名称:nv7fire-external-sqlite,代码行数:101,
示例7: sqlite3_prepare_v2void GDataBase::open(std::string _filename){ isOpen = !sqlite3_open(_filename.c_str(), &db); sqlite3_prepare_v2(db, cmd_word_type.c_str(), -1, &stmt_word_type, &tail);}//open(string _filename)
开发者ID:luyi326,项目名称:linguo,代码行数:4,
示例8: daemon_data_sqlite_data_LogMessageEventvoid daemon_data_sqlite_data_LogMessageEvent (DaemonDataSqliteData* self, DaemonEventsMessageEvent* event, GError** error) { gchar* _tmp0_; gchar* commandText; sqlite3_stmt* statement = NULL; sqlite3_stmt* _tmp1_ = NULL; const gchar* _tmp2_ = NULL; gchar* _tmp3_; const gchar* _tmp4_ = NULL; gchar* _tmp5_; const gchar* _tmp6_ = NULL; gchar* _tmp7_; const gchar* _tmp8_ = NULL; gchar* _tmp9_; gint64 _tmp10_; gint _tmp11_; GError * _inner_error_ = NULL; g_return_if_fail (self != NULL); g_return_if_fail (event != NULL); _tmp0_ = g_strdup ("INSERT INTO Log (Username, Data, Channel, Server, Timestamp, Type) VAL" /"UES (@1, @2, @3, @4, @5, @6)"); commandText = _tmp0_; sqlite3_prepare_v2 (self->priv->_database, commandText, -1, &_tmp1_, NULL); _sqlite3_finalize0 (statement); statement = _tmp1_; _tmp2_ = daemon_events_log_event_get_Username ((DaemonEventsLogEvent*) event); _tmp3_ = g_strdup (_tmp2_); sqlite3_bind_text (statement, 1, _tmp3_, -1, g_free); _tmp4_ = daemon_events_message_event_get_Message (event); _tmp5_ = g_strdup (_tmp4_); sqlite3_bind_text (statement, 2, _tmp5_, -1, g_free); _tmp6_ = daemon_events_log_event_get_Channel ((DaemonEventsLogEvent*) event); _tmp7_ = g_strdup (_tmp6_); sqlite3_bind_text (statement, 3, _tmp7_, -1, g_free); _tmp8_ = daemon_events_log_event_get_Server ((DaemonEventsLogEvent*) event); _tmp9_ = g_strdup (_tmp8_); sqlite3_bind_text (statement, 4, _tmp9_, -1, g_free); _tmp10_ = daemon_events_log_event_get_UnixTimestamp ((DaemonEventsLogEvent*) event); sqlite3_bind_int64 (statement, 5, _tmp10_); sqlite3_bind_int (statement, 6, (gint) DAEMON_DATA_EVENT_TYPES_Message); _tmp11_ = sqlite3_step (statement); if (_tmp11_ != SQLITE_DONE) { const gchar* _tmp12_ = NULL; GError* _tmp13_ = NULL; _tmp12_ = sqlite3_errmsg (self->priv->_database); _tmp13_ = g_error_new_literal (DAEMON_DATA_DATA_ACCESS_ERROR, DAEMON_DATA_DATA_ACCESS_ERROR_WriteError, _tmp12_); _inner_error_ = _tmp13_; if (_inner_error_->domain == DAEMON_DATA_DATA_ACCESS_ERROR) { g_propagate_error (error, _inner_error_); _sqlite3_finalize0 (statement); _g_free0 (commandText); return; } else { _sqlite3_finalize0 (statement); _g_free0 (commandText); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _sqlite3_finalize0 (statement); _g_free0 (commandText);}
开发者ID:SBFh,项目名称:SemesterLeistung,代码行数:62,
示例9: CCASSERTvoid QuickStoneSystem::initQuickStoneData(void){ std::string sql; int result; char *zErrorMsg = 0; CCASSERT(_sqlitedb, "sqlitedb==null"); // 查询表字段 sql = "select data1 from QuiteStone_Table"; result = sqlite3_exec(_sqlitedb, sql.c_str(), NULL, NULL, &zErrorMsg); // 表不存在 if (result != SQLITE_OK) { // 建表 sql.clear(); sql = "create table if not exists QuiteStone_Table("; for (int i = QuickStoneKey_F; i < QuickStoneKey_Max; i++) { sql.append("data"); sql.append(__String::createWithFormat("%d", i)->getCString()); sql.append(" integer"); if (i != QuickStoneKey_Max - 1) { sql.append(","); } } sql.append(")"); result = sqlite3_exec(_sqlitedb, sql.c_str(), NULL, NULL, &zErrorMsg); if (result == SQLITE_OK) { // 插入数据 sql.clear(); sql = sql.append("insert into QuiteStone_Table values ("); for (int i = QuickStoneKey_F; i < QuickStoneKey_Max; i++) { sql.append( StringUtils::format("%d", getQuickStoneDataWithKey((QuickStoneKey)i)->haveNum)); if (i != QuickStoneKey_Max - 1) { sql.append(", "); } } sql.append(")"); result = sqlite3_exec(_sqlitedb, sql.c_str(), NULL, NULL, &zErrorMsg); if (result != SQLITE_OK) CCLOG("insert err"); } } // 查询数据 sql.clear(); sql = sql.append("select "); for (int i = QuickStoneKey_F; i < QuickStoneKey_Max; i++) { sql.append("data"); sql.append(__String::createWithFormat("%d", i)->getCString()); if (i != QuickStoneKey_Max - 1) { sql.append(","); } } sql.append(" from QuiteStone_Table"); sqlite3_stmt *statement; if (sqlite3_prepare_v2(_sqlitedb, sql.c_str(), -1, &statement, nullptr) == SQLITE_OK) { // 初始化列表 while (sqlite3_step(statement) == SQLITE_ROW) { for (int i = QuickStoneKey_F; i < QuickStoneKey_Max; i++) { int num = sqlite3_column_int(statement, i - 1); getQuickStoneDataWithKey((QuickStoneKey)i)->haveNum = num; } } } sqlite3_finalize(statement);}
开发者ID:Chonger8888,项目名称:project,代码行数:92,
示例10: CSV_MGR/******************************************** 角色系统*******************************************/void GameRoleSystem::initRoleInfo( sqlite3* db ){ for ( int i = 0; i<3; i++ ) { _roleConfig[i] = CSV_MGR()->GetCsvRoleUpgrade()->GetByID( i+1 ); } std::string sql; int result; char *zErrorMsg = 0; // 查询表字段 sql = "select type from roleInfo_Table"; result=sqlite3_exec(db,sql.c_str(),NULL,NULL,&zErrorMsg); // 表不存在 if ( result != SQLITE_OK ) { // CCASSERT( result == SQLITE_OK, "roleinfo table not existes"); sql="create table if not exists roleInfo_Table("/ "type integer"/ ",roleGrade integer"/ ",isunlock integer"/ ",roleExp integer"/ ",isOption integer" ")"; result=sqlite3_exec(db,sql.c_str(),NULL,NULL,&zErrorMsg); if(result == SQLITE_OK) { for ( int i =0; i<3; i++ ) { // 插入数据 用户基础数据 sql.clear(); sql = __String::createWithFormat("insert into roleInfo_Table values( %d, %d, %d, %d, %d )", _roleConfig[i]->roleId, _roleConfig[i]->roleGrade, _roleConfig[i]->isLock, _roleConfig[i]->CurExp, _roleConfig[i]->isOption)->getCString(); result=sqlite3_exec(db,sql.c_str(),NULL,NULL,&zErrorMsg); if(result!=SQLITE_OK) CCLOG("insert err"); } } } // 查询语句 sql = " select type, roleGrade, isunlock, roleExp, isOption from roleInfo_Table"; sqlite3_stmt *statement; if ( sqlite3_prepare_v2(db, sql.c_str(), -1, &statement, nullptr) == SQLITE_OK ) { // 初始化角色列表 while (sqlite3_step(statement) == SQLITE_ROW) { // 获得解锁状态 int id = sqlite3_column_int(statement, 0); int grade = sqlite3_column_int(statement, 1); int islock = sqlite3_column_int(statement, 2); int exp = sqlite3_column_int(statement, 3); int isOption = sqlite3_column_int(statement, 4); _roleConfig[id-1]->roleGrade = grade; _roleConfig[id-1]->CurExp = exp; _roleConfig[id-1]->isLock = islock; _roleConfig[id-1]->isOption = isOption; if ( 1 == isOption ) {// mRoleConfig.roleIndex = id; } } } sqlite3_finalize(statement);}
开发者ID:Chonger8888,项目名称:project,代码行数:82,
示例11: prepare_statement_vcf_query_fieldsint prepare_statement_vcf_query_fields(sqlite3 *db, sqlite3_stmt **stmt) { char sql[] = "INSERT INTO record_query_fields VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15)"; return sqlite3_prepare_v2(db, sql, strlen(sql) + 300, stmt, NULL);}
开发者ID:cyenyxe,项目名称:hpg-libs-1,代码行数:4,
示例12: MFTtestint MFTtest(struct MFT *u3, int countresult){ sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; char *sql; int rc; int j; unsigned int i; char *buffer = (char *)malloc(500); memset(buffer, 0x00, sizeof(char)*500); int error = sqlite3_open("./case/info.db", &db); if(error) { fprintf(stderr, "DB C++ sqlite3_realloc函数代码示例 C++ sqlite3_prepare函数代码示例
|