这篇教程C++ sqlite3_vmprintf函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中sqlite3_vmprintf函数的典型用法代码示例。如果您正苦于以下问题:C++ sqlite3_vmprintf函数的具体用法?C++ sqlite3_vmprintf怎么用?C++ sqlite3_vmprintf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了sqlite3_vmprintf函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: while// methods for formatting// ---------------------------------------------std::string SqliteDatabase::vprepare(const char *format, va_list args){ std::string strFormat = format; std::string strResult = ""; char *p; size_t pos; // %q is the sqlite format string for %s. // Any bad character, like "'", will be replaced with a proper one pos = 0; while ( (pos = strFormat.find("%s", pos)) != std::string::npos ) strFormat.replace(pos++, 2, "%q"); // the %I64 enhancement is not supported by sqlite3_vmprintf // must be %ll instead pos = 0; while ( (pos = strFormat.find("%I64", pos)) != std::string::npos ) strFormat.replace(pos++, 4, "%ll"); p = sqlite3_vmprintf(strFormat.c_str(), args); if ( p ) { strResult = p; sqlite3_free(p); } return strResult;}
开发者ID:louis89,项目名称:xbmc,代码行数:30,
示例2: xmms_sqlite_exec/** * A query that can't retrieve results */static gbooleanxmms_sqlite_exec (sqlite3 *sql, const char *query, ...){ gchar *q, *err; va_list ap; gint ret; g_return_val_if_fail (query, FALSE); g_return_val_if_fail (sql, FALSE); va_start (ap, query); q = sqlite3_vmprintf (query, ap); ret = sqlite3_exec (sql, q, NULL, NULL, &err); if (ret == SQLITE_BUSY) { printf ("BUSY EVENT!"); g_assert_not_reached (); } if (ret != SQLITE_OK) { printf ("Error in query! /"%s/" (%d) - %s", q, ret, err); sqlite3_free (q); va_end (ap); return FALSE; } sqlite3_free (q); va_end (ap); return TRUE;}
开发者ID:randalboyle,项目名称:xmms2-devel,代码行数:34,
示例3: va_startint Database::execute(const char *sql_fmt, ...){ if (!m_db) return false; if (m_result_table) finalize(); va_list ap; va_start(ap, sql_fmt); char *sql = sqlite3_vmprintf(sql_fmt, ap); va_end(ap); if (!sql) { fprintf(stderr, "can't allocate memory for sql statement!/n"); return 0; } m_result_table = NULL; m_curr_row = 0; if (sqlite3_get_table(m_db, sql, &m_result_table, &m_rows, &m_cols, &m_error) != SQLITE_OK) { debug("error executing SQL query (%s): %s/n", sql, m_error); finalize(); sqlite3_free(sql); return 0; } sqlite3_free(sql); m_curr_row = 1; return m_rows;}
开发者ID:vpulim,项目名称:tanktv,代码行数:27,
示例4: va_startconst char* cSQLiteDatabase::sprintf(const char* Format, ...){ va_list vlist; va_start(vlist, Format); char* SQLStatement = sqlite3_vmprintf(Format, vlist); va_end(vlist); return SQLStatement;}
开发者ID:JosefHuber,项目名称:upnp-plugin-irt,代码行数:7,
示例5: fatalError/*** Print an error message and then quit.*/static void fatalError(const char *zFormat, ...){ va_list ap; char *zMsg; char zPrefix[30]; va_start(ap, zFormat); zMsg = sqlite3_vmprintf(zFormat, ap); va_end(ap); sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%s:FATAL: ", g.zName); if( g.pLog ){ printWithPrefix(g.pLog, zPrefix, zMsg); fflush(g.pLog); maybeClose(g.pLog); } if( g.pErrLog && safe_strcmp(g.zErrLog,g.zLog) ){ printWithPrefix(g.pErrLog, zPrefix, zMsg); fflush(g.pErrLog); maybeClose(g.pErrLog); } sqlite3_free(zMsg); if( g.db ){ int nTry = 0; g.iTimeout = 0; while( trySql("UPDATE client SET wantHalt=1;")==SQLITE_BUSY && (nTry++)<100 ){ sqlite3_sleep(10); } } sqlite3_close(g.db); exit(1); }
开发者ID:xluoly,项目名称:raw-os_sqlite,代码行数:33,
示例6: sql_get_int_fieldintsql_get_int_field(sqlite3 *db, const char *fmt, ...){ va_list ap; int counter, result; char *sql; int ret; sqlite3_stmt *stmt; va_start(ap, fmt); sql = sqlite3_vmprintf(fmt, ap); //DPRINTF(E_DEBUG, L_DB_SQL, "sql: %s/n", sql); switch (sqlite3_prepare_v2(db, sql, -1, &stmt, NULL)) { case SQLITE_OK: break; default: DPRINTF(E_ERROR, L_DB_SQL, "prepare failed: %s/n", sqlite3_errmsg(db)); sqlite3_free(sql); return -1; } sqlite3_free(sql); for (counter = 0; ((result = sqlite3_step(stmt)) == SQLITE_BUSY || result == SQLITE_LOCKED) && counter < 2; counter++) { /* While SQLITE_BUSY has a built in timeout, SQLITE_LOCKED does not, so sleep */ if (result == SQLITE_LOCKED) sleep(1); } switch (result) { case SQLITE_DONE: /* no rows returned */ ret = 0; break; case SQLITE_ROW: if (sqlite3_column_type(stmt, 0) == SQLITE_NULL) { ret = 0; break; } ret = sqlite3_column_int(stmt, 0); break; default: DPRINTF(E_WARN, L_DB_SQL, "%s: step failed: %s/n", __func__, sqlite3_errmsg(db)); ret = -1; break; } sqlite3_finalize(stmt); return ret;}
开发者ID:OESF-DLNA,项目名称:upnp-extension,代码行数:58,
示例7: va_start/** * DB_exec will run a SQL query, using the sqlite3_mprintf syntax, and * convert the results to a tns_value_t* that you can use. It returns * one of four types of results: * * - tns_tag_null -- The query wasn't expected to return anything, like UPDATE. * - tns_tag_list(empty) -- The query expected to return rows, but nothing returned. * - tns_tag_list -- There's rows that resulted from the query. * - NULL -- There was an error processing your query. * * You own the row and everything in it, and you should know what the columns * are, but they are tagged properly for each type that comes from the query. */tns_value_t *DB_exec(const char *query, ...){ va_list argp; va_start(argp, query); char *zErrMsg = NULL; tns_value_t *res = NULL; int rc = 0; sqlite3_stmt *stmt = NULL; const char *sql_tail = NULL; char *sql = NULL; check(CONFIG_DB != NULL, "The config database is not open."); sql = sqlite3_vmprintf(query, argp); check_mem(sql); rc = sqlite3_prepare_v2(CONFIG_DB, sql, -1, &stmt, &sql_tail); check(rc == SQLITE_OK, "SQL error /"%s/" at: '%s'", sqlite3_errmsg(CONFIG_DB), sql_tail); // we want to return a tns_tag_null if this is a query with no // results, which means we have to do a little bit of weird logic rc = sqlite3_step(stmt); if(rc == SQLITE_DONE) { if(sqlite3_column_count(stmt) == 0) { // query like UPDATE with no results possible res = tns_get_null(); } else { // query that had results possible but had none res = tns_new_list(); } } else if(rc == SQLITE_ROW) { // query with results, process them res = tns_new_list(); do { tns_value_t *row = DB_convert_column(stmt); check(row != NULL, "Failed to convert DB column for sql: '%s'", sql); tns_add_to_list(res, row); } while((rc = sqlite3_step(stmt)) == SQLITE_ROW); } check(rc != SQLITE_ERROR, "Failure executing sql: %s", sqlite3_errmsg(CONFIG_DB)); sqlite3_free(sql); sqlite3_finalize(stmt); va_end(argp); return res;error: va_end(argp); if(stmt) sqlite3_finalize(stmt); if(zErrMsg) sqlite3_free(zErrMsg); if(sql) sqlite3_free(sql); if(res) tns_value_destroy(res); return NULL;}
开发者ID:304471720,项目名称:mongrel2,代码行数:70,
示例8: geom_tls_msg_handlerstatic void geom_tls_msg_handler(const char *fmt, ...) { geom_geos_clear_error(); va_list args; va_start(args, fmt); char *err = sqlite3_vmprintf(fmt, args); GPKG_TLS_SET(last_geos_error, err); va_end(args);}
开发者ID:boundlessgeo,项目名称:libgpkg-mobile,代码行数:9,
示例9: clearconst char* CppSQLite3Buffer::format(const char* szFormat, ...){ clear(); va_list va; va_start(va, szFormat); mpBuf = sqlite3_vmprintf(szFormat, va); va_end(va); return mpBuf;}
开发者ID:fly2mars,项目名称:suAgent,代码行数:9,
示例10: reg_throwvoid reg_throw(reg_error* errPtr, char* code, char* fmt, ...) { va_list list; va_start(list, fmt); errPtr->description = sqlite3_vmprintf(fmt, list); va_end(list); errPtr->code = code; errPtr->free = (reg_error_destructor*)sqlite3_free;}
开发者ID:centip3de,项目名称:GSoC,代码行数:9,
示例11: va_start int database::executef(char const* sql, ...) { va_list ap; va_start(ap, sql); char* msql = sqlite3_vmprintf(sql, ap); va_end(ap); return execute(msql); }
开发者ID:brettin,项目名称:taxator-tk,代码行数:9,
示例12: asyncTracestatic void asyncTrace(const char *zFormat, ...){ char *z; va_list ap; va_start(ap, zFormat); z = sqlite3_vmprintf(zFormat, ap); va_end(ap); fprintf(stderr, "[%d] %s", (int)pthread_self(), z); sqlite3_free(z);}
开发者ID:Bracket-,项目名称:psp-ports,代码行数:9,
示例13: va_start int database::executef(char const* sql, ...) { va_list ap; va_start(ap, sql); std::unique_ptr<char, void (*)(void *)> msql(sqlite3_vmprintf(sql, ap), sqlite3_free); va_end(ap); return eexecute(msql.get()); }
开发者ID:larroy,项目名称:sqlite3pp,代码行数:9,
示例14: va_start int database::executef(char const* sql, ...) { va_list ap; va_start(ap, sql); boost::shared_ptr<char> msql(sqlite3_vmprintf(sql, ap), sqlite3_free); va_end(ap); return execute(msql.get()); }
开发者ID:andreygorbachev,项目名称:sqlite3pp,代码行数:9,
示例15: require// Same but accepts a va_listvoid SqlDatabase::sqlExecVar(const char* szSQL, va_list args) { require(mpDB); char* szSqlFormatted = sqlite3_vmprintf(szSQL, args); if (!szSqlFormatted) throw new SqlDatabaseException("Unable to apply format to SQL string"); const int result = sqlite3_exec(mpDB, szSqlFormatted, 0, 0, 0); sqlite3_free(szSqlFormatted); if (result != SQLITE_OK) throw new SqlDatabaseException(sqlite3_errmsg(mpDB));}
开发者ID:ibrman,项目名称:sqlite-marmalade,代码行数:12,
示例16: trySql/*** Try to run arbitrary SQL. Return success code.*/static int trySql(const char *zFormat, ...){ va_list ap; char *zSql; int rc; va_start(ap, zFormat); zSql = sqlite3_vmprintf(zFormat, ap); va_end(ap); rc = sqlite3_exec(g.db, zSql, 0, 0, 0); sqlite3_free(zSql); return rc;}
开发者ID:xluoly,项目名称:raw-os_sqlite,代码行数:14,
示例17: runSql/*** Run an SQL statement*/static int runSql(sqlite3 *db, const char *zFormat, ...) { va_list ap; char *zSql; int rc; va_start(ap, zFormat); zSql = sqlite3_vmprintf(zFormat, ap); rc = sqlite3_exec(db, zSql, 0, 0, 0); va_end(ap); return rc;}
开发者ID:mingodad,项目名称:sqlite,代码行数:14,
示例18: memorystatic void *memory(const char* format, ...){ void* ptr = NULL; va_list list; va_start(list, format); ptr = sqlite3_vmprintf(format, list); va_end(list); return ptr;}
开发者ID:codeliuer,项目名称:learn-code,代码行数:12,
示例19: vfstrace_printf/*** Send trace output defined by zFormat and subsequent arguments.*/static void vfstrace_printf( vfstrace_info *pInfo, const char *zFormat, ...){ va_list ap; char *zMsg; va_start(ap, zFormat); zMsg = sqlite3_vmprintf(zFormat, ap); va_end(ap); pInfo->xOut(zMsg, pInfo->pOutArg); sqlite3_free(zMsg);}
开发者ID:77songsong,项目名称:sqlite3,代码行数:16,
示例20: runSql/*** Run arbitrary SQL. Issue a fatal error on failure.*/static void runSql(const char *zFormat, ...){ va_list ap; char *zSql; int rc; va_start(ap, zFormat); zSql = sqlite3_vmprintf(zFormat, ap); va_end(ap); rc = sqlite3_exec(g.db, zSql, 0, 0, 0); if( rc!=SQLITE_OK ){ fatalError("%s/n%s/n", sqlite3_errmsg(g.db), zSql); } sqlite3_free(zSql);}
开发者ID:xluoly,项目名称:raw-os_sqlite,代码行数:16,
示例21: sqlite3_exec/** wrapper di comodo attorno sqlite3_exec() esegue, in modo verboso (stampa a video i risultati della query), una query data su un database /param db database su cui effetturare la query /param query comandi SQL da effetturare (sintassi printf-like + "%q" e "%Q") /return il valore di sqlite3_exec() /sa sqlite3_exec(), callback_print()*/int esegui_query(sqlite3* db, const char* query, ...) { va_list ap; va_start(ap, query); char* quoted_query = sqlite3_vmprintf(query, ap); va_end(ap); char* errmsg = NULL; int r = sqlite3_exec(db, quoted_query, callback_print, NULL, &errmsg); sqlite3_free(quoted_query); if (errmsg) { warn("esegui_query: `%s'/n", errmsg); sqlite3_free(errmsg); } return r;}
开发者ID:ZeeD,项目名称:musicmeshfs,代码行数:24,
示例22: logMessage/*** Print a log message*/static void logMessage(const char *zFormat, ...){ va_list ap; char *zMsg; char zPrefix[30]; va_start(ap, zFormat); zMsg = sqlite3_vmprintf(zFormat, ap); va_end(ap); sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%s: ", g.zName); if( g.pLog ){ printWithPrefix(g.pLog, zPrefix, zMsg); fflush(g.pLog); } sqlite3_free(zMsg);}
开发者ID:xluoly,项目名称:raw-os_sqlite,代码行数:17,
示例23: va_start// returns STMT, or NULLsqlite3_stmt *dfs_db_blob_stmt(void *data, int len, char *fmt, ...){ va_list ap; va_start(ap, fmt); char *q = sqlite3_vmprintf(fmt, ap); va_end(ap); sqlite3_stmt *stmt = dfs_db_prepare(q); sqlite3_free(q); sqlite3_bind_blob(stmt, 1, data, len, SQLITE_STATIC); dfs_db_step(stmt); return stmt;}
开发者ID:anonopete,项目名称:chitfs,代码行数:15,
示例24: eina_adb_queue_query// --// Queue querys// --voideina_adb_queue_query(EinaAdb *self, gchar *query, ...){ g_return_if_fail(EINA_IS_ADB(self)); g_return_if_fail(query != NULL); EinaAdbPrivate *priv = GET_PRIVATE(self); va_list args; va_start(args, query); gchar *q = sqlite3_vmprintf(query, args); va_end(args); g_queue_push_tail(priv->queue, q); adb_schedule_flush(self);}
开发者ID:ldotlopez,项目名称:eina,代码行数:18,
示例25: geos_warning_rstatic voidgeos_warning_r (int pool_index, const char *fmt, va_list ap){/* reporting some GEOS warning - thread safe */ char *msg; msg = sqlite3_vmprintf (fmt, ap); if (msg) { spatialite_e ("GEOS warning: %s/n", msg); setGeosWarningMsg (pool_index, msg); sqlite3_free (msg); } else setGeosWarningMsg (pool_index, NULL);}
开发者ID:ryandavid,项目名称:rotobox,代码行数:15,
示例26: dfs_db_do// mprintf interface, no return valueint dfs_db_do(char *fmt, ...){ va_list ap; va_start(ap, fmt); char *q = sqlite3_vmprintf(fmt, ap); va_end(ap); sqlite3_stmt *stmt = dfs_db_prepare(q); int res = dfs_db_step(stmt); sqlite3_free(q); sqlite3_finalize(stmt); return res;}
开发者ID:anonopete,项目名称:chitfs,代码行数:16,
示例27: eina_adb_query_execgbooleaneina_adb_query_exec(EinaAdb *self, const gchar *query, ...){ g_return_val_if_fail(EINA_IS_ADB(self), FALSE); va_list args; va_start(args, query); gchar *_query = sqlite3_vmprintf(query, args); va_end(args); g_return_val_if_fail((query != NULL), FALSE); gboolean ret = eina_adb_query_exec_raw(self, _query); sqlite3_free(_query); return ret;}
开发者ID:ldotlopez,项目名称:eina,代码行数:16,
示例28: va_start/*** Prepare an SQL statement. Issue a fatal error if unable.*/static sqlite3_stmt *prepareSql(const char *zFormat, ...){ va_list ap; char *zSql; int rc; sqlite3_stmt *pStmt = 0; va_start(ap, zFormat); zSql = sqlite3_vmprintf(zFormat, ap); va_end(ap); rc = sqlite3_prepare_v2(g.db, zSql, -1, &pStmt, 0); if( rc!=SQLITE_OK ){ sqlite3_finalize(pStmt); fatalError("%s/n%s/n", sqlite3_errmsg(g.db), zSql); } sqlite3_free(zSql); return pStmt;}
开发者ID:xluoly,项目名称:raw-os_sqlite,代码行数:19,
示例29: esegui_query_callbackint esegui_query_callback(sqlite3* db, int(*callback)(void*, int, char**, char**), void* callback_par, const char* query, ...) { va_list ap; va_start(ap, query); /* inizializzo ap col primo valore successivo a query, se ce ne sono */ char* quoted_query = sqlite3_vmprintf(query, ap); va_end(ap); // chiudo ap (...) char* errmsg = NULL; int r = sqlite3_exec(db, quoted_query, callback, callback_par, &errmsg); sqlite3_free(quoted_query); if (errmsg) { warn("esegui_query_callback: `%s'/n", errmsg); sqlite3_free(errmsg); } return r;}
开发者ID:ZeeD,项目名称:musicmeshfs,代码行数:16,
注:本文中的sqlite3_vmprintf函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ sqliteFree函数代码示例 C++ sqlite3_vfs_find函数代码示例 |