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

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

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

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

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

示例1: WinMain

//----[  WinMain  ]------------------------------------------------------------int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int) {  sqlite3* db;  sqlite3_open(":memory:", &db);  char* errmsg;  // create the data structure  char sql[2048];  sqlite3_snprintf(2048,                   sql,                   "CREATE VIRTUAL TABLE entity_tree USING rtree(id, min_x, max_x, min_z, max_z)");  if (SQLITE_OK != sqlite3_exec(db, sql, NULL, NULL, &errmsg)) {    DEBUG_INFO("%s", errmsg);    return 0;  }  sqlite3_snprintf(2048,                   sql,                   "CREATE TABLE entities (id INTEGER PRIMARY KEY, x REAL, z REAL, entity_ptr BLOB)");  if (SQLITE_OK != sqlite3_exec(db, sql, NULL, NULL, &errmsg)) {    DEBUG_INFO("%s", errmsg);    return 0;  }  sqlite3_create_function(db,                          "collision",                          2,                          SQLITE_ANY,                          NULL, // user data ptr                          collisionFunctionForSqlite,                          NULL, NULL); // not an aggregating function  static const size_t ENTITIES = 1024;  static const size_t SIZE = 4096;  enum Statement {    STATEMENT_UPDATE_BOUNDARIES,    STATEMENT_INSERT_ENTITY,    STATEMENT_UPDATE_ENTITY,    STATEMENT_QUERY_OVERLAP,    STATEMENT_QUERY_COLLISION,    NUMBER_OF_STATEMENTS,  };  struct Entity {    int id;    Number x, z;    Number collision_rad_sq;    Number visible_rad_sq;    Number radius;  };  const char* statements_text[NUMBER_OF_STATEMENTS] = {    "REPLACE INTO entity_tree VALUES (?,?,?,?,?)",    "INSERT INTO entities VALUES (?,?,?,?)", // id, x, z, entity_ptr (blob)    "UPDATE entities SET x=?, z=? WHERE id=?", // x, z, id    "SELECT id FROM entity_tree WHERE id>? AND max_x>=? AND min_x<=? AND max_z>=? AND min_z<=?", // min/max x then min/max z    // searcher's id, min x, max x, min z, max z    "SELECT entities.id, entity_ptr FROM entities,entity_tree WHERE entities.id=entity_tree.id AND entity_tree.id>? AND collision(entities.x, entities.z) AND max_x>=? AND min_x<=? AND max_z>=? AND min_z<=?"  };  sqlite3_stmt* statements[NUMBER_OF_STATEMENTS];  for (int i = 0; i <NUMBER_OF_STATEMENTS; ++i) {    int rc;    if (SQLITE_OK != (rc=sqlite3_prepare_v2(db,                                        statements_text[i],                                        strlen(statements_text[i]),                                        &statements[i],                                        NULL))) {      DEBUG_INFO("%i - %s", i, sqlite3_errmsg(db));    sqlite3_close(db);      return false;    }  }  Entity* entities = new Entity[ENTITIES];  for (int i = 0; i < ENTITIES; ++i) {    entities[i].id = i;    entities[i].x = randf() * SIZE;    entities[i].z = randf() * SIZE;    float f = 0.5 + randf() * 1.0;    entities[i].radius = f;    entities[i].collision_rad_sq = f*f;    f = 1.5f*randf() + f;    entities[i].visible_rad_sq = f*f;    sqlite3_bind_double(statements[STATEMENT_INSERT_ENTITY], 1, i);    sqlite3_bind_double(statements[STATEMENT_INSERT_ENTITY], 2, entities[i].x.toFloat());    sqlite3_bind_double(statements[STATEMENT_INSERT_ENTITY], 3, entities[i].z.toFloat());    sqlite3_bind_blob(statements[STATEMENT_INSERT_ENTITY], 4, &entities[i], 4, SQLITE_TRANSIENT);    sqlite3_step(statements[STATEMENT_INSERT_ENTITY]);    sqlite3_reset(statements[STATEMENT_INSERT_ENTITY]);    sqlite3_bind_int(statements[STATEMENT_UPDATE_BOUNDARIES], 1, entities[i].id);    sqlite3_bind_double(statements[STATEMENT_UPDATE_BOUNDARIES], 2, (entities[i].x - entities[i].radius).toFloat());    sqlite3_bind_double(statements[STATEMENT_UPDATE_BOUNDARIES], 3, (entities[i].x + entities[i].radius).toFloat());    sqlite3_bind_double(statements[STATEMENT_UPDATE_BOUNDARIES], 4, (entities[i].z - entities[i].radius).toFloat());    sqlite3_bind_double(statements[STATEMENT_UPDATE_BOUNDARIES], 5, (entities[i].z + entities[i].radius).toFloat());    sqlite3_step(statements[STATEMENT_UPDATE_BOUNDARIES]);//.........这里部分代码省略.........
开发者ID:karlgluck,项目名称:Evidyon,代码行数:101,


示例2: setEllipsoid

bool QgsDistanceArea::setEllipsoid( const QString& ellipsoid ){  QString radius, parameter2;  //  // SQLITE3 stuff - get parameters for selected ellipsoid  //  sqlite3      *myDatabase;  const char   *myTail;  sqlite3_stmt *myPreparedStatement;  int           myResult;  // Shortcut if ellipsoid is none.  if ( ellipsoid == GEO_NONE )  {    mEllipsoid = GEO_NONE;    return true;  }  // Check if we have a custom projection, and set from text string.  // Format is "PARAMETER:<semi-major axis>:<semi minor axis>  // Numbers must be with (optional) decimal point and no other separators (C locale)  // Distances in meters.  Flattening is calculated.  if ( ellipsoid.startsWith( "PARAMETER" ) )  {    QStringList paramList = ellipsoid.split( ':' );    bool semiMajorOk, semiMinorOk;    double semiMajor = paramList[1].toDouble( & semiMajorOk );    double semiMinor = paramList[2].toDouble( & semiMinorOk );    if ( semiMajorOk && semiMinorOk )    {      return setEllipsoid( semiMajor, semiMinor );    }    else    {      return false;    }  }  // Continue with PROJ.4 list of ellipsoids.  //check the db is available  myResult = sqlite3_open_v2( QgsApplication::srsDbFilePath().toUtf8().data(), &myDatabase, SQLITE_OPEN_READONLY, nullptr );  if ( myResult )  {    QgsMessageLog::logMessage( QObject::tr( "Can't open database: %1" ).arg( sqlite3_errmsg( myDatabase ) ) );    // XXX This will likely never happen since on open, sqlite creates the    //     database if it does not exist.    return false;  }  // Set up the query to retrieve the projection information needed to populate the ELLIPSOID list  QString mySql = "select radius, parameter2 from tbl_ellipsoid where acronym='" + ellipsoid + '/'';  myResult = sqlite3_prepare( myDatabase, mySql.toUtf8(), mySql.toUtf8().length(), &myPreparedStatement, &myTail );  // XXX Need to free memory from the error msg if one is set  if ( myResult == SQLITE_OK )  {    if ( sqlite3_step( myPreparedStatement ) == SQLITE_ROW )    {      radius = QString( reinterpret_cast< const char * >( sqlite3_column_text( myPreparedStatement, 0 ) ) );      parameter2 = QString( reinterpret_cast< const char * >( sqlite3_column_text( myPreparedStatement, 1 ) ) );    }  }  // close the sqlite3 statement  sqlite3_finalize( myPreparedStatement );  sqlite3_close( myDatabase );  // row for this ellipsoid wasn't found?  if ( radius.isEmpty() || parameter2.isEmpty() )  {    QgsDebugMsg( QString( "setEllipsoid: no row in tbl_ellipsoid for acronym '%1'" ).arg( ellipsoid ) );    return false;  }  // get major semiaxis  if ( radius.left( 2 ) == "a=" )    mSemiMajor = radius.mid( 2 ).toDouble();  else  {    QgsDebugMsg( QString( "setEllipsoid: wrong format of radius field: '%1'" ).arg( radius ) );    return false;  }  // get second parameter  // one of values 'b' or 'f' is in field parameter2  // second one must be computed using formula: invf = a/(a-b)  if ( parameter2.left( 2 ) == "b=" )  {    mSemiMinor = parameter2.mid( 2 ).toDouble();    mInvFlattening = mSemiMajor / ( mSemiMajor - mSemiMinor );  }  else if ( parameter2.left( 3 ) == "rf=" )  {    mInvFlattening = parameter2.mid( 3 ).toDouble();    mSemiMinor = mSemiMajor - ( mSemiMajor / mInvFlattening );  }  else  {    QgsDebugMsg( QString( "setEllipsoid: wrong format of parameter2 field: '%1'" ).arg( parameter2 ) );    return false;  }//.........这里部分代码省略.........
开发者ID:ar-jan,项目名称:QGIS,代码行数:101,


示例3: get_message_id

/* gets the message_id, screen_name and the message */double get_message_id(int stat,char *sno,char **ptr_screen_name,char **ptr_message) {    char *db_name = ".twit_ui_db";    char *statement_t = "select t_id,u_screen_name,t_text from tweets where sno=";    char *statement_d = "select d_id,ds_screen_name,d_text from dms where sno=";    char *statement_d_sent = "select d_id,dr_screen_name,d_text from dms_sent where sno=";    char *final_statement;    sqlite3 *db_handle;    sqlite3_stmt *temp;    double max_id;    int sql_errors;    char *statement;    if(stat == 0)        statement = statement_t;    else if (stat == 1)        statement = statement_d;    else if (stat == 2)        statement = statement_d_sent;    final_statement = malloc(strlen(statement) + 20);    sprintf(final_statement,"%s%s;",statement,sno);    /* for debugging purposes    clear();    printw("%s",final_statement);    refresh();    sleep(2);    */    if((sql_errors = sqlite3_open(db_name,&db_handle))!= SQLITE_OK) {        sqlite3_close(db_handle);        sqlite3_finalize(temp);        return sql_errors;    }    if((sql_errors = sqlite3_prepare_v2(db_handle,final_statement,strlen(final_statement),&temp,NULL)) != SQLITE_OK) {        sqlite3_close(db_handle);        sqlite3_finalize(temp);        return sql_errors;    }    if((sql_errors = sqlite3_step(temp)) != SQLITE_ROW) {        sqlite3_close(db_handle);        sqlite3_finalize(temp);        return sql_errors ;    }    max_id =  sqlite3_column_double(temp,0);    sprintf(*ptr_screen_name,"%s",(char *)sqlite3_column_text(temp,1));    sprintf(*ptr_message,"%s",(char *)sqlite3_column_text(temp,2));    /* debug debug debug    printw("%.0f",max_id);    refresh();    sleep(2);    */    sqlite3_close(db_handle);    sqlite3_finalize(temp);    free(final_statement);    return max_id;}
开发者ID:sanjayankur31,项目名称:twit_tui,代码行数:70,


示例4: db_primitive_speed_tests

void db_primitive_speed_tests(){    printf( "db_primitive_speed_tests()/n" );        // Try to create the database. If it doesnt exist, it would be created    //  pass a pointer to the pointer to sqlite3, in short sqlite3**    int retval = sqlite3_open(DB_MAINTENANCE_FILE,&handle);        // If connection failed, handle returns NULL    if(retval)    {        printf("DATABASE CONNECTION FAILED/n");        return;    }    printf("Connection successful/n");        const char *magnus = "SELECT COUNT(*) from games, positions_2569 WHERE games.white = 'Carlsen, Magnus' "                         "AND positions_2569.position_hash=44349918 AND games.game_id = positions_2569.game_id";    const char *stamp =  "SELECT COUNT(*) from games, positions_3386 WHERE positions_3386.position_hash=2007903353 "                         "AND games.game_id = positions_3386.game_id";    const char *sicilian="SELECT COUNT(*) from games, positions_391 WHERE positions_391.position_hash=1592470315 "                         "AND games.game_id = positions_391.game_id";    char buf[1000];    sqlite3_stmt *stmt;    // A prepared statement for fetching tables    printf( "Database is %s/n", DB_MAINTENANCE_FILE );    int results[5][3];    time_t start_time;    time ( &start_time );    for( int i=0; i<5*3; i++ )    {        const char *query, *txt;        switch(i%3)        {            case 0: query = magnus;     txt="Magnus"; break;            case 1: query = stamp;      txt="Stamp"; break;            case 2: query = sicilian;   txt="Sicilian"; break;        }        sprintf( buf, "Test %d, %s; begin", i/3+1, txt );        report( buf );        retval = sqlite3_prepare_v2( handle, query, -1, &stmt, 0 );        if( retval )        {            printf("SELECTING DATA FROM DB FAILED 1/n");        }        retval = sqlite3_step(stmt);        if( retval != SQLITE_ROW )            printf("SELECTING DATA FROM DB FAILED 2/n");        else        {            const char *val = (const char*)sqlite3_column_text(stmt,0);            printf("Game count=%d/n", atoi(val) );        }        sprintf( buf, "Test %d, %s; end", i/3+1, txt );        int expired = report( buf );        results[i/3][i%3] = expired;        sqlite3_finalize(stmt);    }        for( int i=0; i<5*3; i++ )    {        int expired = results[i%5][i/5];        if( i%5 == 0 )        {            const char *txt;            switch(i/5)            {                case 0: txt="Magnus:";   break;                case 1: txt="Stamp:";    break;                case 2: txt="Sicilian:"; break;            }            printf( "%-10s", txt );        }        char buf[100];        sprintf( buf, "%d:%02d", expired/60, expired%60 );        printf( "%8s", buf );        if( (i+1)%5 == 0 )            printf( "/n" );        else            printf( "," );    }    time_t end_time;    time ( &end_time );    int total_elapsed = (end_time-start_time);    printf( "Total elapsed: %d:%02d/n", total_elapsed/60, total_elapsed%60 );        // Close the handle to free memory    sqlite3_close(handle);}
开发者ID:phenri,项目名称:tarrasch-chess-gui,代码行数:89,


示例5: db_primitive_show_games

// A real database testvoid db_primitive_show_games( bool connect ){    printf( "db_primitive_show_games()/n" );    int retval;    if( connect )    {        // Try to create the database. If it doesnt exist, it would be created        //  pass a pointer to the pointer to sqlite3, in short sqlite3**        retval = sqlite3_open(DB_MAINTENANCE_FILE,&handle);                // If connection failed, handle returns NULL        if(retval)        {            printf("DATABASE CONNECTION FAILED/n");            return;        }        printf("Connection successful/n");                    }        thc::ChessRules cr;    //cr.Forsyth("r1bqk2r/ppp1bppp/2n1pn2/3p4/Q1PP4/P3PN2/1P1N1PPP/R1B1KB1R b KQkq - 0 7");   // Bogo indian position after 8 moves or so 46 games    cr.Forsyth("rnbqk2r/pppp1ppp/4pn2/8/1bPP4/2N5/PP2PPPP/R1BQKBNR w KQkq - 2 4");          // Nimzo-Indian start position 24000 games    uint32_t hash = cr.HashCalculate();        // select matching rows from the table    char buf[100];    sqlite3_stmt *stmt;    // A prepared statement for fetching tables    sprintf( buf, "SELECT * from positions WHERE position_hash=%d", hash );    retval = sqlite3_prepare_v2( handle, buf, -1, &stmt, 0 );    if( retval )    {        printf("SELECTING DATA FROM DB FAILED/n");    }        // Read the number of rows fetched    int cols = sqlite3_column_count(stmt);    std::vector<int> games;    report( "Fetching games begin");    while(1)    {        // fetch a row's status        retval = sqlite3_step(stmt);                if(retval == SQLITE_ROW)        {            // SQLITE_ROW means fetched a row                        // sqlite3_column_text returns a const void* , typecast it to const char*            for(int col=0 ; col<cols;col++)            {                const char *val = (const char*)sqlite3_column_text(stmt,col);                //printf("%s:%s/t",sqlite3_column_name(stmt,col),val);                if( col == 0 )                {                    int game_id = atoi(val);                    games.push_back(game_id);                }            }            //printf("/n");        }        else if(retval == SQLITE_DONE)        {            // All rows finished            break;        }        else        {            // Some error encountered            printf("SOME ERROR ENCOUNTERED/n");        }    }    report("Fetching games end");    FILE *pgn_out = fopen("/Users/billforster/Documents/games.txt","wt");    report("Dumping games begin");    if( pgn_out )    {        for( int i=0; i<games.size(); i++ )        {            char buf[100];            if( i%100 == 0 || i==games.size()-1 )            {                sprintf( buf,"Game %d",i+1);                report(buf);            }            dump_game( pgn_out, games[i] );        }        fclose(pgn_out);    }    report("Dumping games end");            // Close the handle to free memory    sqlite3_close(handle);}
开发者ID:phenri,项目名称:tarrasch-chess-gui,代码行数:100,


示例6: main

int main(int argc, char **argv){	sqlite3 *db;	sphyraena sphy;	int i, r;	int dbarg = -1;	int loadmemory = 0;	int pinned_memory = 0;	for(i = 1; i < argc; i++) {		if(argv[i][0] == '-')			switch(argv[i][1]) {				case 'd' :					dbarg = i + 1;					printf("Using database %s/n", argv[i+1]);					break;				case 'm' :					loadmemory = 1;					printf("Loading database into memory/n");					break;				case 'p' :					pinned_memory = 1;					printf("Using pinned memory/n");					break;				default :					printhelp(argv);			}	}	if(dbarg == -1) {		printhelp(argv);		exit(1);	}	if(loadmemory) {		sqlite3_open(":memory:", &db);		char sql[256];		sprintf(sql, "ATTACH DATABASE '%s' AS loadfrom", argv[dbarg]);		r = sqlite3_exec(db, sql, NULL, NULL, NULL);		sqlite3_exec(db, "CREATE TABLE 'test' AS SELECT * FROM loadfrom.test", NULL, NULL, NULL);		sqlite3_exec(db, "DETACH loadfrom", NULL, NULL, NULL);	}	else {		r = sqlite3_open(argv[dbarg], &db);	}	if(r) {		eprintf(stderr, "Can't open database: %s/n", sqlite3_errmsg(db));                sqlite3_close(db);                exit(1);	}	sphyraena_init(&sphy, db, DATA_SIZE, RESULTS_SIZE, pinned_memory);	int err = sphyraena_init(&sphy, db, DATA_SIZE, RESULTS_SIZE, pinned_memory);	if(err != SPHYRAENA_SUCCESS) {		eprintf(stderr, "Failing to complete init/n");		sqlite3_close(db);		exit(1);	}#ifndef RUNTEST	sphyraena_timer_start();	sphyraena_prepare_data(&sphy, "SELECT * FROM test");	const char* sql = "SELECT id, uniformi FROM test WHERE uniformi < 90";	char* err;	sphyraena_timer_start();	r = sqlite3_exec(db, sql, NULL, NULL, &err);	double native = sphyraena_timer_end("native execution");	if(err != NULL) {		eprintf(stderr, "exec error: %s/n", err);		exit(1);	}	sphyraena_timer_start();	sphyraena_transfer_data(&sphy);	sphyraena_select(&sphy, sql, 0);	double vm = sphyraena_timer_end("vm execution");	sphyraena_timer_start();	sphyraena_transfer_results(&sphy);	double results = sphyraena_timer_end("transfer results");	printf("stream/n");	printf("speedup:		%fx/n", native / vm);	printf("speedup with results:	%fx/n", native / (vm + results)); 	sphyraena_print_results(&sphy, 40);#else	sphyraena_test_queries(&sphy);	/*  this code tests speedup as a function of stream width 	sphyraena_test_sizes(&sphy, 0, 1);	sphy.stream_width = 2;	sphyraena_test_sizes(&sphy, 1, 0);	sphy.stream_width = 4;	sphyraena_test_sizes(&sphy, 1, 0);//.........这里部分代码省略.........
开发者ID:dfloer,项目名称:sphyraena-OCL,代码行数:101,


示例7: alarm_server

void alarm_server (void) {	time_t t, now;	struct tm * nowtime;	uint8 day[7] = {0};	time(&t);	nowtime = localtime(&t);	if (nowtime->tm_sec > 0 && nowtime->tm_sec < 60) {		sleep(60 - nowtime->tm_sec);	}	while(1) {		DEBUG(" Alarm=======>  Alarm server is running!/n");		time(&t);		sqlite3 *db = NULL;		int rc;		char * Errormsg;		int row;		int col;		char ** result;		rc = sqlite3_open("/opt/smarthome/smarthome.db", &db);		if (rc) {			DEBUG("can not open: %s/n ", sqlite3_errmsg(db));			sqlite3_close(db);			continue;		} else {			DEBUG("Open database successfuly!/n");			char sql[300] = "create table alarm_data("					"ID integer primary key, "					"sett integer,"					"hour integer, "					"minute integer, "					"roomid integer,"					"yinyue integer,"					"sun integer, "					"mon integer, "					"tue integer, "					"wed integer, "					"thu integer, "					"fri integer, "					"sat integer, "					"tishi varchar(40))";			sqlite3_exec(db, sql, 0, 0, &Errormsg);			//读出数据库表中所有数据			strcpy(sql, "select * from alarm_data");			sqlite3_get_table(db, sql, &result, &row, &col, &Errormsg);			sqlite3_close(db);			time(&now);			nowtime = localtime(&now);			DEBUG("*******************************/n");			DEBUG("The Time Now is  %d:%d/t%d/n", nowtime->tm_hour, nowtime->tm_min, nowtime->tm_wday);			DEBUG("*******************************/n");			int i = 0;			for (i = 1; i < row + 1; i ++) {				DEBUG("-----------------------------debug alarm!/n");				int j = 0;				for (j = 0; j < col; j ++) {					printf("%s/t", result[i * col + j]);				}				DEBUG("/n");				if (atoi(result[i * col + 3]) == nowtime->tm_min) {					if (atoi(result[i * col + 2]) == nowtime->tm_hour) {						day[0] = atoi(result[i * col + 6]);						day[1] = atoi(result[i * col + 7]);						day[2] = atoi(result[i * col + 8]);						day[3] = atoi(result[i * col + 9]);						day[4] = atoi(result[i * col + 10]);						day[5] = atoi(result[i * col + 11]);						day[6] = atoi(result[i * col + 12]);						if (day[nowtime->tm_wday] == 1) {							alarm_cycle(atoi(result[i * col + 4]), atoi(result[i * col + 5]), result[i * col + 13]);						}					}				}			}		}		//睡眠1分钟		DEBUG(" Alarm=======> before sleep!/n");		sleep(50);		time(&now);		t += 60;		sleep(t - now);	}}
开发者ID:markmoon,项目名称:miniserver,代码行数:83,


示例8: sqlite3_close

AccountManager::~AccountManager(){    if (db)        sqlite3_close(db);}
开发者ID:haidian6672,项目名称:seafile-client,代码行数:5,


示例9: maildb_sqlite_new

/* This function opens the database if it already exists, or creates a new one * if it does not exist. If necessary, a conversion to the latest format is * performed. * This function sets the KMO error string. It returns NULL on failure. */maildb * maildb_sqlite_new(char *db_name){    int version = 0;    sqlite3 *db = NULL;        kmod_log_msg(2, "maildb_sqlite_new() called./n");        /* Open or create the database. */    if (sqlite3_open(db_name, &db)) {        kmo_seterror("cannot open %s: %s", db_name, sqlite3_errmsg(db));        goto ERR;    }        /* Get the database version. */    maildb_get_version(db, &version);        /* Initialize new database. */    if (version == 0) {    	kmod_log_msg(1, "Initializing new KMOD database./n");    	if (maildb_sqlite_initialize(db)) goto ERR;    }        /* Convert database to version 2. */    else if (version == 1) {    	kmod_log_msg(1, "Converting KMOD database from version 1 to version 2./n");    	if (maildb_convert_to_version_2(db)) goto ERR;    }        /* Convert database to version 3. */    else if (version == 2) {    	kmod_log_msg(1, "Converting KMOD database from version 2 to version 3./n");    	if (maildb_convert_to_version_3(db)) goto ERR;    }	    /* Convert database to version 4. */    else if (version == 3) {    	kmod_log_msg(1, "Converting KMOD database from version 3 to version 4./n");    	if (maildb_convert_to_version_4(db)) goto ERR;    }        /* Database is at current version. */    else if (version == 4) {    	kmod_log_msg(1, "The KMOD database is at version 4./n");    }        /* Database is too recent -- we can't deal with it since we would corrupt it. */    else {    	kmo_seterror("database version %d is unsupported (latest supported version is %d)", version, 4);	goto ERR;    }        /* Initialize the maildb object. */    maildb *mdb = (maildb *) kmo_calloc(sizeof(maildb));    mdb->db = db;    mdb->ops = &maildb_sqlite_ops;        /* All good. */    return mdb;ERR:    if (db) sqlite3_close(db);    return NULL;}
开发者ID:fdgonthier,项目名称:kmod,代码行数:68,


示例10: main

int main(int argc, char *argv[]){	const char * sSQL1 = "create table users(userid varchar(40) PRIMARY KEY, age int, birthday datetime);";	char * pErrMsg = 0;	int result = 0;	char str;	char * SQL;	// 连接数据库	sqlite3 * db = 0;	int ret = sqlite3_open("E://SQLite//test.db", &db);	if (ret != SQLITE_OK) {		fprintf(stderr, "无法打开数据库: %s", sqlite3_errmsg(db));		return(1);	}	else 		printf("数据库连接成功!/n");	// 执行建表SQL	sqlite3_exec(db, sSQL1, 0, 0, &pErrMsg);	if (ret != SQLITE_OK){		fprintf(stderr, "SQL error: %s/n", pErrMsg);		sqlite3_free(pErrMsg);	}	// 执行插入记录SQL	result = sqlite3_exec(db, "insert into users values('ll',20,'2011-7-23');", 0, 0, &pErrMsg);	if (result == SQLITE_OK){		printf("插入数据成功/n");	}	result = sqlite3_exec(db, "insert into users values('sdd',20,'2012-9-20');", 0, 0, &pErrMsg);	if (result == SQLITE_OK){		printf("插入数据成功/n");	}	result = sqlite3_exec(db, "update users set age = 23 where userid = 'll';",0,0,&pErrMsg);	if (result == SQLITE_OK){		printf("修改数据成功/n");	}	// 插入数据	result = sqlite3_exec(db, "insert into users values('hello',23,'2016-5-21');",0,0,&pErrMsg);	if (result == SQLITE_OK){		printf("插入数据成功/n");	}	// 查询数据表	printf("查询数据库内容/n");	sqlite3_exec(db, "select * from users;", select_callback, 0, &pErrMsg);		// 按条件查找	printf("请输出需要查找的的字段名:");	scanf_s("%s/n",&str);	SQL = "select * from users where name like '_str%';";	sqlite3_exec(db,SQL,select_callback,0,&pErrMsg);	// 关闭数据库	sqlite3_close(db);	db = 0;	printf("数据库关闭成功!/n");	return 0;}
开发者ID:leo-ll,项目名称:Learnning,代码行数:63,


示例11: QDir

/** * convert current project to offline project * returns offline project file path */bool QgsOfflineEditing::convertToOfflineProject( const QString& offlineDataPath, const QString& offlineDbFile, const QStringList& layerIds ){  if ( layerIds.isEmpty() )  {    return false;  }  QString dbPath = QDir( offlineDataPath ).absoluteFilePath( offlineDbFile );  if ( createSpatialiteDB( dbPath ) )  {    spatialite_init( 0 );    sqlite3* db;    int rc = sqlite3_open( dbPath.toStdString().c_str(), &db );    if ( rc != SQLITE_OK )    {      showWarning( tr( "Could not open the spatialite database" ) );    }    else    {      // create logging tables      createLoggingTables( db );      mProgressDialog->setTitle( "Converting to offline project" );      mProgressDialog->show();      // copy selected vector layers to SpatiaLite      for ( int i = 0; i < layerIds.count(); i++ )      {        mProgressDialog->setCurrentLayer( i + 1, layerIds.count() );        QgsMapLayer* layer = QgsMapLayerRegistry::instance()->mapLayer( layerIds.at( i ) );        copyVectorLayer( qobject_cast<QgsVectorLayer*>( layer ), db, dbPath );      }      mProgressDialog->hide();      sqlite3_close( db );      // save offline project      QString projectTitle = QgsProject::instance()->title();      if ( projectTitle.isEmpty() )      {        projectTitle = QFileInfo( QgsProject::instance()->fileName() ).fileName();      }      projectTitle += " (offline)";      QgsProject::instance()->title( projectTitle );      QgsProject::instance()->writeEntry( PROJECT_ENTRY_SCOPE_OFFLINE, PROJECT_ENTRY_KEY_OFFLINE_DB_PATH, dbPath );      return true;    }  }  return false;  // Workflow:  // copy layers to spatialite  // create spatialite db at offlineDataPath  // create table for each layer  // add new spatialite layer  // copy features  // save as offline project  // mark offline layers  // remove remote layers  // mark as offline project}
开发者ID:RealworldSystems,项目名称:Quantum-GIS,代码行数:69,


示例12: openLoggingDb

//.........这里部分代码省略.........  // restore and sync remote layers  QList<QgsMapLayer*> offlineLayers;  QMap<QString, QgsMapLayer*> mapLayers = QgsMapLayerRegistry::instance()->mapLayers();  for ( QMap<QString, QgsMapLayer*>::iterator layer_it = mapLayers.begin() ; layer_it != mapLayers.end(); ++layer_it )  {    QgsMapLayer* layer = layer_it.value();    if ( layer->customProperty( CUSTOM_PROPERTY_IS_OFFLINE_EDITABLE, false ).toBool() )    {      offlineLayers << layer;    }  }  for ( int l = 0; l < offlineLayers.count(); l++ )  {    QgsMapLayer* layer = offlineLayers[l];    mProgressDialog->setCurrentLayer( l + 1, offlineLayers.count() );    QString remoteSource = layer->customProperty( CUSTOM_PROPERTY_REMOTE_SOURCE, "" ).toString();    QString remoteProvider = layer->customProperty( CUSTOM_PROPERTY_REMOTE_PROVIDER, "" ).toString();    QString remoteName = layer->name();    remoteName.remove( QRegExp( " //(offline//)$" ) );    QgsVectorLayer* remoteLayer = new QgsVectorLayer( remoteSource, remoteName, remoteProvider );    if ( remoteLayer->isValid() )    {      // TODO: only add remote layer if there are log entries?      QgsVectorLayer* offlineLayer = qobject_cast<QgsVectorLayer*>( layer );      // copy style      copySymbology( offlineLayer, remoteLayer );      // register this layer with the central layers registry      QgsMapLayerRegistry::instance()->addMapLayer( remoteLayer, true );      // apply layer edit log      QString qgisLayerId = layer->id();      QString sql = QString( "SELECT /"id/" FROM 'log_layer_ids' WHERE /"qgis_id/" = '%1'" ).arg( qgisLayerId );      int layerId = sqlQueryInt( db, sql, -1 );      if ( layerId != -1 )      {        remoteLayer->startEditing();        // TODO: only get commitNos of this layer?        int commitNo = getCommitNo( db );        for ( int i = 0; i < commitNo; i++ )        {          // apply commits chronologically          applyAttributesAdded( remoteLayer, db, layerId, i );          applyAttributeValueChanges( offlineLayer, remoteLayer, db, layerId, i );          applyGeometryChanges( remoteLayer, db, layerId, i );        }        applyFeaturesAdded( offlineLayer, remoteLayer, db, layerId );        applyFeaturesRemoved( remoteLayer, db, layerId );        if ( remoteLayer->commitChanges() )        {          // update fid lookup          updateFidLookup( remoteLayer, db, layerId );          // clear edit log for this layer          sql = QString( "DELETE FROM 'log_added_attrs' WHERE /"layer_id/" = %1" ).arg( layerId );          sqlExec( db, sql );          sql = QString( "DELETE FROM 'log_added_features' WHERE /"layer_id/" = %1" ).arg( layerId );          sqlExec( db, sql );          sql = QString( "DELETE FROM 'log_removed_features' WHERE /"layer_id/" = %1" ).arg( layerId );          sqlExec( db, sql );          sql = QString( "DELETE FROM 'log_feature_updates' WHERE /"layer_id/" = %1" ).arg( layerId );          sqlExec( db, sql );          sql = QString( "DELETE FROM 'log_geometry_updates' WHERE /"layer_id/" = %1" ).arg( layerId );          sqlExec( db, sql );          // reset commitNo          QString sql = QString( "UPDATE 'log_indices' SET 'last_index' = 0 WHERE /"name/" = 'commit_no'" );          sqlExec( db, sql );        }        else        {          showWarning( remoteLayer->commitErrors().join( "/n" ) );        }      }      // remove offline layer      QgsMapLayerRegistry::instance()->removeMapLayer( qgisLayerId, true );      // disable offline project      QString projectTitle = QgsProject::instance()->title();      projectTitle.remove( QRegExp( " //(offline//)$" ) );      QgsProject::instance()->title( projectTitle );      QgsProject::instance()->removeEntry( PROJECT_ENTRY_SCOPE_OFFLINE, PROJECT_ENTRY_KEY_OFFLINE_DB_PATH );      remoteLayer->reload(); //update with other changes    }  }  mProgressDialog->hide();  sqlite3_close( db );}
开发者ID:RealworldSystems,项目名称:Quantum-GIS,代码行数:101,


示例13: close_db

 void close_db() { 	sqlite3_close(db); }
开发者ID:insertion,项目名称:sqlite,代码行数:4,


示例14: sqlite3_close

SqliteConnection::~SqliteConnection (){    if (database)        sqlite3_close ((sqlite3*) database);}
开发者ID:dennyabrain,项目名称:DISTRHO,代码行数:5,


示例15: maildb_sqlite_destroy

/* This function frees the database. */static void maildb_sqlite_destroy(maildb *mdb) {    sqlite3 *db = (sqlite3 *) mdb->db;    sqlite3_close(db);    free(mdb);}
开发者ID:fdgonthier,项目名称:kmod,代码行数:6,


示例16: magnatune_get_db_done

static voidmagnatune_get_db_done(GObject *source_object,                      GAsyncResult *res,                      gpointer user_data){  gchar *db_path = NULL;  gchar *new_db_path = NULL;  gchar *content = NULL;  gsize length = 0;  gboolean ret = FALSE;  gboolean first_run = FALSE;  GError *err = NULL;  GError *err_fn = NULL;  OperationSpec *os = NULL;  GrlMagnatuneSource *source = NULL;  GRL_DEBUG("magnatune_get_db_done");  os = (OperationSpec *) user_data;  ret = grl_net_wc_request_finish(GRL_NET_WC(source_object),                                  res,                                  &content,                                  &length,                                  &err_fn);  g_object_unref(source_object);  if (ret == FALSE) {    err = g_error_new(GRL_CORE_ERROR,                      GRL_CORE_ERROR_MEDIA_NOT_FOUND,                      _("Failed to get database from magnatune: %s"),                      err_fn->message);    g_error_free(err_fn);    if (os != NULL)      os->callback(os->source, os->operation_id, NULL, 0, os->user_data, err);  } else {    db_path = g_build_filename(g_get_user_data_dir(), "grilo-plugins",                               GRL_SQL_DB, NULL);    /* If this is a first run, new database must be ready to use */    if (g_file_test(db_path, G_FILE_TEST_EXISTS) == FALSE) {      new_db_path = db_path;      first_run = TRUE;    } else {      g_free(db_path);      new_db_path = g_build_filename(g_get_user_data_dir(), "grilo-plugins",                                     GRL_SQL_NEW_DB, NULL);    }    GRL_WARNING("Saving database to path '%s'", new_db_path);    ret = g_file_set_contents(new_db_path,                              content,                              length,                              &err_fn);    if (ret == FALSE) {      err = g_error_new(GRL_CORE_ERROR,                        GRL_CORE_ERROR_MEDIA_NOT_FOUND,                        _("Failed to save database from magnatune: “%s”"),                        err_fn->message);      g_error_free(err_fn);      if (os != NULL)        os->callback(os->source, os->operation_id, NULL, 0, os->user_data, err);    } else if (first_run == TRUE) {      source = GRL_MAGNATUNE_SOURCE(os->source);      if (source->priv->db == NULL) {        GRL_DEBUG("Opening database connection.");        if (sqlite3_open(db_path, &source->priv->db) != SQLITE_OK) {          GRL_WARNING("Failed to open database '%s': %s",                      db_path,                      sqlite3_errmsg(source->priv->db));          sqlite3_close(source->priv->db);          source->priv->db = NULL;        }      }    }    g_free(new_db_path);  }  if (ret == TRUE && os != NULL) {    /* execute application's request */    os->magnatune_cb(os);  }}
开发者ID:GNOME,项目名称:grilo-plugins,代码行数:88,


示例17: pkg_create_repo

//.........这里部分代码省略.........		if (r->retcode != EPKG_OK) {			continue;		}		/* do not add if package if already in repodb		   (possibly at a different pkg_path) */		retcode = pkgdb_repo_cksum_exists(sqlite, r->cksum);		if (retcode == EPKG_FATAL) {			goto cleanup;		}		else if (retcode == EPKG_OK) {			continue;		}		if (progress != NULL)			progress(r->pkg, data);		manifest_pos = ftell(psyml);		pkg_emit_manifest_file(r->pkg, psyml, PKG_MANIFEST_EMIT_COMPACT, &manifest_digest);		if (filelist) {			files_pos = ftell(fsyml);			pkg_emit_filelist(r->pkg, fsyml);		} else {			files_pos = 0;		}		pkg_get(r->pkg, PKG_ORIGIN, &origin);		cur_dig = malloc(sizeof (struct digest_list_entry));		cur_dig->origin = strdup(origin);		cur_dig->digest = manifest_digest;		cur_dig->manifest_pos = manifest_pos;		cur_dig->files_pos = files_pos;		LL_PREPEND(dlist, cur_dig);		retcode = pkgdb_repo_add_package(r->pkg, r->path, sqlite,				manifest_digest, false, true);		if (retcode == EPKG_END) {			continue;		}		else if (retcode != EPKG_OK) {			goto cleanup;		}		pkg_free(r->pkg);		free(r);	}	/* Now sort all digests */	LL_SORT(dlist, digest_sort_compare_func);cleanup:	if (pkgdb_repo_close(sqlite, retcode == EPKG_OK) != EPKG_OK) {		retcode = EPKG_FATAL;	}	LL_FOREACH_SAFE(dlist, cur_dig, dtmp) {		if (retcode == EPKG_OK) {			fprintf(mandigests, "%s:%s:%ld:%ld/n", cur_dig->origin,				cur_dig->digest, cur_dig->manifest_pos, cur_dig->files_pos);		}		free(cur_dig->digest);		free(cur_dig->origin);		free(cur_dig);	}	if (tids != NULL) {		// Cancel running threads		if (retcode != EPKG_OK) {			pthread_mutex_lock(&thd_data.fts_m);			thd_data.stop = true;			pthread_mutex_unlock(&thd_data.fts_m);		}		// Join on threads to release thread IDs		for (int i = 0; i < num_workers; i++) {			pthread_join(tids[i], NULL);		}		free(tids);	}	if (fts != NULL)		fts_close(fts);	if (fsyml != NULL)		fclose(fsyml);	if (psyml != NULL)		fclose(psyml);	if (mandigests != NULL)		fclose(mandigests);	if (sqlite != NULL)		sqlite3_close(sqlite);	if (errmsg != NULL)		sqlite3_free(errmsg);	sqlite3_shutdown();	return (retcode);}
开发者ID:yerenkow,项目名称:pkg,代码行数:101,


示例18: throw

// Close the SQLite database connection.Database::~Database(void) throw() // nothrow{    int ret = sqlite3_close(mpSQLite);    // Never throw an exception in a destructor    SQLITECPP_ASSERT (SQLITE_OK == ret, sqlite3_errmsg(mpSQLite));  // See SQLITECPP_ENABLE_ASSERT_HANDLER}
开发者ID:HeliosInteractive,项目名称:ofxSQLiteCpp,代码行数:7,


示例19: sqlite3_close

void QgsScopedSqlite::close_(){  if ( db_ )    sqlite3_close( db_ );}
开发者ID:GrokImageCompression,项目名称:QGIS,代码行数:5,


示例20: handle_request

static int handle_request(struct mg_connection *conn){    char * json_data;    cJSON *root;    char *json;    char *title;    char *description;    int completed;    if (!strcmp(conn->request_method, "POST") && !strncmp(conn->uri, "/api/v1",strlen("/api/v1")))     {        printf("api v1/n");        json_data = get_post_data(conn);        if(json_data == NULL)        {            printf("Error json data: NULL/n");            mg_printf_data(conn, "%s","Error jason data:NULL");            free(json_data);            return MG_TRUE;   // Tell mongoose to close this connection        }        printf("input json data: %s/n", json_data);        root = cJSON_Parse(json_data);        if (root == NULL)        {            mg_printf_data(conn, "%s","Error jason data:Wrong format");            free(json_data);            return MG_TRUE;        }        if (!strncmp(conn->uri,"/api/v1/cars", strlen("/api/v1/cars")))        {               int id;            char *name;            int price;            sqlite3 *db;            char *err_msg = 0;             id = cJSON_GetObjectItem(root,"Id")->valueint;            name = cJSON_GetObjectItem(root,"Name")->valuestring;            price = cJSON_GetObjectItem(root,"Price")->valueint;            printf("id = %d,Name = %s, Price=%d",id,name,price);            int rc = sqlite3_open("quanta.db", &db);            if (rc != SQLITE_OK)             {                            fprintf(stderr, "Cannot open database: %s/n", sqlite3_errmsg(db));                sqlite3_close(db);                        return MG_TRUE;   // Tell mongoose to close this connection            }            char sql[100];            sprintf(sql,"INSERT INTO Cars VALUES(%d, '%s', %d);",id,name,price);            rc = sqlite3_exec(db, sql, 0, 0, &err_msg);            if (rc != SQLITE_OK ) {                        fprintf(stderr, "SQL error: %s/n", err_msg);                        sqlite3_free(err_msg);                        sqlite3_close(db);                        return MG_TRUE;   // Tell mongoose to close this connection            }             sqlite3_free(err_msg);                    sqlite3_close(db);        }        else        {            description = cJSON_GetObjectItem(root,"description")->valuestring;             title = cJSON_GetObjectItem(root,"title")->valuestring;             completed = cJSON_GetObjectItem(root,"completed")->valueint;             printf("title = %s,description = %s, completed = %d/n",title,description,completed);        }        json = cJSON_PrintUnformatted(root);        write_json_result(conn, 0, json);        free(json_data);        return MG_TRUE;   // Tell mongoose to close this connection    }    else if (!strcmp(conn->request_method, "GET") && !strncmp(conn->uri, "/api/v1",strlen("/api/v1")))     {        sqlite3 *db;        char *err_msg = 0;         char sql[100];        int id;        char response_buff[100];        printf("get api v1/n");        if(!strncmp(conn->uri,"/api/v1/cars",strlen("/api/v1/cars")))        {            sscanf(conn->uri,"/api/v1/cars/%d/",&id);            int rc = sqlite3_open("quanta.db", &db);            if (rc != SQLITE_OK)             {                            fprintf(stderr, "Cannot open database: %s/n", sqlite3_errmsg(db));                sqlite3_close(db);                        return MG_TRUE;   // Tell mongoose to close this connection            }            sprintf(sql,"SELECT * FROM Cars WHERE Id = %d",id);            rc = sqlite3_exec(db,sql, callback, response_buff, &err_msg);                    if (rc != SQLITE_OK ) {                                fprintf(stderr, "Failed to select data/n");                fprintf(stderr, "SQL error: %s/n", err_msg);//.........这里部分代码省略.........
开发者ID:jimlin95,项目名称:webservice_restful,代码行数:101,


示例21: sqlite3_close

/** * 析构函数 * */ZYSDbc::~ZYSDbc() {	if (m_pDb) {		sqlite3_close(m_pDb);		m_pDb = NULL;	}}
开发者ID:zyCwind,项目名称:EnOcean-Switch-Tester,代码行数:10,


示例22: db_primitive_random_test_program

//.........这里部分代码省略.........    sqlite3_stmt *stmt;        // Create a handle for database connection, create a pointer to sqlite3    sqlite3 *handle;        // try to create the database. If it doesnt exist, it would be created    // pass a pointer to the pointer to sqlite3, in short sqlite3**    retval = sqlite3_open(DB_MAINTENANCE_FILE,&handle);    // If connection failed, handle returns NULL    if(retval)    {        printf("Database connection failed/n");        return -1;    }    printf("Connection successful/n");        // Create the SQL query for creating a table    const char *create_table = "CREATE TABLE IF NOT EXISTS positions (game_id INTEGER, position_hash INTEGER)";        // Execute the query for creating the table    retval = sqlite3_exec(handle,create_table,0,0,0);    if( retval )    {        printf("sqlite3_exec(CREATE) Failed/n");        return -1;    }            // Delete previous data    retval = sqlite3_exec( handle, "DELETE FROM positions",0,0,0);    if( retval )    {        printf("sqlite3_exec(DELETE) Failed/n");        return -1;    }        // Insert first row and second row    char *errmsg;    retval = sqlite3_exec( handle, "INSERT INTO positions VALUES(2,33334444)",0,0,&errmsg);    if( retval )    {        printf("sqlite3_exec(INSERT 1) Failed %s/n", errmsg );        return -1;    }        retval = sqlite3_exec( handle, "INSERT INTO positions VALUES(2,4444)",0,0,0);    if( retval )    {        printf("sqlite3_exec(INSERT 2) Failed/n");        return -1;    }         // select those rows from the table    retval = sqlite3_prepare_v2( handle, "SELECT * from positions", -1, &stmt, 0 );    if( retval )    {        printf("Selecting data from DB Failed/n");        return -1;    }        // Read the number of rows fetched    int cols = sqlite3_column_count(stmt);        while(1)    {        // fetch a row's status        retval = sqlite3_step(stmt);                if(retval == SQLITE_ROW)        {            // SQLITE_ROW means fetched a row                        // sqlite3_column_text returns a const void* , typecast it to const char*            for(int col=0 ; col<cols;col++)            {                int val = sqlite3_column_int(stmt,col);                printf("%s = 0x%08x/t",sqlite3_column_name(stmt,col),val);            }            printf("/n");        }        else if(retval == SQLITE_DONE)        {            // All rows finished            printf("All rows fetched/n");            break;        }        else        {            // Some error encountered            printf("Some error encountered/n");            return -1;        }    }        // Close the handle to free memory    sqlite3_close(handle);    return 0;}
开发者ID:phenri,项目名称:tarrasch-chess-gui,代码行数:101,


示例23: sqlite3_close

bool SettingsManager::save(const QString& path){    QByteArray data = path.toLatin1();    if(sqlite3_open(data.constData(), &(m_db)))    {        sqlite3_close(m_db);        return false;    }#if defined(SQLITE_HAS_CODEC)    char tmp[9];    // Grab the obfuscated key    sqlite3_obfuscate_key(tmp);    if(SQLITE_OK != sqlite3_key((sqlite3*) m_db, tmp, 8))    {        memset(tmp, 0, 9);        sqlite3_close(m_db);        return false;    }    // Clear the key so it isn't stored in memory    memset(tmp, 0, 9);#endif    QMap<QString, QString>::iterator siter;    QString query = "BEGIN TRANSACTION;/n";    sqllite_resultset_t rs;    int rc;    for(siter = m_globals.begin(); siter != m_globals.end(); siter++)    {        QString k = siter.key();        QString v = siter.value();        query += QString("UPDATE Settings SET value='%1' WHERE key='%2';/n").            arg(add_slashes(v)).            arg(add_slashes(k));    }    QMap<int, QMap<QString, QMap<QString,QStringList> > >::iterator fiter;    query += QString("DELETE FROM DeviceLists;/n");    //rs.rows.clear();    //sqlite3_exec((sqlite3*)m_db, qPrintable(query), NULL, NULL, NULL);    for(fiter = m_favorites.begin();        fiter != m_favorites.end();        fiter++)    {        QMap<QString, QMap<QString,QStringList> >::iterator liter;        int chip = fiter.key();        for(liter = fiter.value().begin();            liter != fiter.value().end();            liter++)        {            QString category = liter.key();            QMap<QString,QStringList> lists = liter.value();            QMap<QString,QStringList>::iterator viter;            for(viter = lists.begin(); viter != lists.end(); viter++)            {                QString list = viter.key();                QStringList items = viter.value();                for(int i = 0; i < items.count(); i++)                {                    QString item = items.at(i);                    query += QString("INSERT INTO DeviceLists (chip,category,key,value) VALUES('%1', '%2', '%3', '%4');/n").                            arg(chip).                            arg(add_slashes(category)).                            arg(add_slashes(list)).                            arg(add_slashes(item));                    //qDebug() << query;                    //sqlite3_exec((sqlite3*)m_db, qPrintable(query), NULL, NULL, NULL);                }            }        }    }    query += "END TRANSACTION;/n";    data = query.toLatin1();    rc = sqlite3_exec((sqlite3*)m_db, data.constData(), NULL, NULL, NULL);    sqlite3_close(m_db);    if(rc == SQLITE_OK)    {        // Settings no longer modified after writing back to dB        m_settings_modified = false;//.........这里部分代码省略.........
开发者ID:bradfordelliott,项目名称:shorte,代码行数:101,


示例24: srt_join

//.........这里部分代码省略.........    status = core_srt_join_I_I_I(				 (int *)src_lnk_X, (int *)src_val_X, src_nR,				 (int *)dst_lnk_X, (int *)dst_val_X, nn_dst_val_X, 				 0, dst_nR, ijoin_op, &is_any_null);  }  else if ( ( strcmp(src_lnk_meta.fldtype, "int") == 0 ) && 	    ( strcmp(src_lnk_meta.fldtype, "int") == 0 ) && 	    ( strcmp(dst_lnk_meta.fldtype, "long long") == 0 ) ) {    status = core_srt_join_I_I_L(				 (int *)src_lnk_X, (int *)src_val_X, src_nR,				 (long long *)dst_lnk_X, (int *)dst_val_X, nn_dst_val_X, 				 0, dst_nR, ijoin_op, &is_any_null);  }  else if ( ( strcmp(src_lnk_meta.fldtype, "int") == 0 ) && 	    ( strcmp(src_lnk_meta.fldtype, "long long") == 0 ) && 	    ( strcmp(dst_lnk_meta.fldtype, "int") == 0 ) ) {    status = core_srt_join_I_L_I(				 (int *)src_lnk_X, (long long				   *)src_val_X, src_nR,				 (int *)dst_lnk_X, (long long *)dst_val_X, nn_dst_val_X, 				 0, dst_nR, ijoin_op, &is_any_null);  }  else if ( ( strcmp(src_lnk_meta.fldtype, "int") == 0 ) && 	    ( strcmp(src_lnk_meta.fldtype, "long long") == 0 ) && 	    ( strcmp(dst_lnk_meta.fldtype, "long long") == 0 ) ) {    status = core_srt_join_I_L_L((int *)src_lnk_X, 	(long long *)src_val_X, src_nR, (long long *)dst_lnk_X, 	(long long *)dst_val_X, nn_dst_val_X, 0, dst_nR, ijoin_op, 	&is_any_null);  }  else if ( ( strcmp(src_lnk_meta.fldtype, "long long") == 0 ) && 	    ( strcmp(src_lnk_meta.fldtype, "int") == 0 ) && 	    ( strcmp(dst_lnk_meta.fldtype, "int") == 0 ) ) {    status = core_srt_join_L_I_I(				 (long long *)src_lnk_X, (int				   *)src_val_X, src_nR,				 (int *)dst_lnk_X, (int *)dst_val_X, nn_dst_val_X, 				 0, dst_nR, ijoin_op, &is_any_null);  }  else if ( ( strcmp(src_lnk_meta.fldtype, "long long") == 0 ) && 	    ( strcmp(src_lnk_meta.fldtype, "int") == 0 ) && 	    ( strcmp(dst_lnk_meta.fldtype, "long long") == 0 ) ) {    status = core_srt_join_L_I_L(				 (long long *)src_lnk_X, (int				   *)src_val_X, src_nR,				 (long long *)dst_lnk_X, (int *)dst_val_X, nn_dst_val_X, 				 0, dst_nR, ijoin_op, &is_any_null);  }  else if ( ( strcmp(src_lnk_meta.fldtype, "long long") == 0 ) && 	    ( strcmp(src_lnk_meta.fldtype, "long long") == 0 ) && 	    ( strcmp(dst_lnk_meta.fldtype, "int") == 0 ) ) {    status = core_srt_join_L_L_I(				 (long long *)src_lnk_X, (long long				   *)src_val_X, src_nR,				 (int *)dst_lnk_X, (long long *)dst_val_X, nn_dst_val_X, 				 0, dst_nR, ijoin_op, &is_any_null);  }  else if ( ( strcmp(src_lnk_meta.fldtype, "long long") == 0 ) && 	    ( strcmp(src_lnk_meta.fldtype, "long long") == 0 ) && 	    ( strcmp(dst_lnk_meta.fldtype, "long long") == 0 ) ) {    status = core_srt_join_L_L_L(				 (long long *)src_lnk_X, (long long				   *)src_val_X, src_nR,				 (long long *)dst_lnk_X, (long long *)dst_val_X, nn_dst_val_X, 				 0, dst_nR, ijoin_op, &is_any_null);  }  else { go_BYE(-1); }  //--------------------------------------------------------  // Add output field to meta data   if ( ( src_val != NULL ) && ( *src_val != '/0' ) ) {     sprintf(str_meta_data,"filename=%s:n_sizeof=%d:fldtype=%s", opfile,	    src_val_meta.n_sizeof, src_val_meta.fldtype);    status = add_fld(docroot, db, dst_tbl, dst_fld, str_meta_data);    cBYE(status);    if ( is_any_null == true ) {      status = add_aux_fld(docroot, db, dst_tbl, dst_fld, nn_opfile, "nn");      cBYE(status);    }    else {      unlink(nn_opfile);      free_if_non_null(nn_opfile);    }  }  else {    sprintf(str_meta_data,"filename=%s:n_sizeof=%ld:fldtype=bool", 	nn_opfile, sizeof(char));    status = add_fld(docroot, db, dst_tbl, dst_fld, str_meta_data);    cBYE(status);  } BYE:  if ( in_db == NULL ) { sqlite3_close(db); }  rs_munmap(src_val_X, src_val_nX);  rs_munmap(src_lnk_X, src_lnk_nX);  rs_munmap(dst_val_X, dst_val_nX);  rs_munmap(nn_dst_val_X, nn_dst_val_nX);  rs_munmap(dst_lnk_X, dst_lnk_nX);  free_if_non_null(nn_opfile);  free_if_non_null(opfile);  return(status);}
开发者ID:TimLand,项目名称:datacl,代码行数:101,


示例25: sqlite3_close

Database::~Database(){    sqlite3_close(connection);}
开发者ID:JaredRauch,项目名称:Cyber-Dragon-Repository,代码行数:3,


示例26: main

int main(int argc, char **argv){  sqlite3 *db;  char *zErrMsg = 0;  int rc;  if( argc!=3 ){    fprintf(stderr, "Usage: %s DATABASE 'select S(1,2,3,4,5,6)'/n", argv[0]);    exit(1);  }  rc = sqlite3_open(argv[1], &db);  if( rc ){    fprintf(stderr, "Can't open database: %s/n", sqlite3_errmsg(db));    sqlite3_close(db);    exit(1);  }  if (sqlite3_create_function(db, "msign", 1, SQLITE_UTF8, NULL, &msignFunc, NULL,			      NULL) != 0)    fprintf(stderr,"Problem with msign/n");  if (sqlite3_create_function(db, "T", -1, SQLITE_UTF8, NULL, &TFunc, NULL,			      NULL) != 0)    fprintf(stderr,"Problem with T using just TFunc /n");  if (sqlite3_create_function(db, "F", 1, SQLITE_UTF8, NULL, &FFunc, NULL,			      NULL) != 0)    fprintf(stderr,"Problem with F using just FFunc /n");  if (sqlite3_create_function(db, "I", 2, SQLITE_UTF8, NULL, &IFunc, NULL,			      NULL) != 0)    fprintf(stderr,"Problem with I using just IFunc /n");  /*   *  With 2 or more arguments call the simple function ssum. Simple functions   *  can be used within an expression. Aggregate functions can only be used   *  in a select.   */    if (sqlite3_create_function(db, "S", -1, SQLITE_UTF8, NULL, &SFunc, NULL,			      NULL) != 0)    fprintf(stderr,"Problem with S using just SFunc /n");    /*   *  With one argument call the aggregate function.   */  if (sqlite3_create_function(db, "S", 1, SQLITE_UTF8, NULL, NULL, &SStep,			      &SFinalize) != 0)    fprintf(stderr,"Problem with S using SStep and SFinalize/n");    if (sqlite3_create_function(db, "L", 1, SQLITE_UTF8, NULL, NULL, &listStep,			      &listFinalize) != 0)    fprintf(stderr,"Problem with list using listStep and listFinalize/n");  rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);  if( rc!=SQLITE_OK ){    fprintf(stderr, "SQL error: %s/n", zErrMsg);  }  sqlite3_close(db);  return 0;}
开发者ID:abhishekbh,项目名称:SQLite-Rank-Extension,代码行数:79,


示例27: sqlite3_close

/** * /fn close() * /brief Close the database. * * /param * /return void */void DatabaseUTF::close(){    sqlite3_close(database);  }
开发者ID:GENIVI,项目名称:navigation,代码行数:11,



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


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