zoukankan      html  css  js  c++  java
  • Sqlite库的基本操作

    Sqlite 基本操作


    打开数据库

    sqlite3* SQ_DB;
    char *zErrMsg = 0;
    
    int nRes =  sqlite3_open("test.db", &SQ_DB);
    if (nRes!=SQLITE_OK)
    {
    	return -1;
    }
    

    执行sql语句

    /* Create SQL statement */
    std::string sql = "CREATE TABLE COMPANY("  
    	"ID INT PRIMARY KEY NOT NULL," 
    	"NAME   TEXTNOT NULL," 
    	"AGEINT NOT NULL," 
    	"ADDRESSCHAR(50)," 
    	"SALARY REAL );";
    
    /* Execute SQL statement */
    nRes = sqlite3_exec(SQ_DB, sql.c_str(), 0, 0, 0);
    
    if (nRes != SQLITE_OK){
    	fprintf(stderr, "SQL error: %s
    ", zErrMsg);
    	sqlite3_free(zErrMsg);
    }
    else{
    	fprintf(stdout, "Table created successfully
    ");
    }
    

    查询结果

    • 回调方式

        static int callback(void *NotUsed, int argc, char **argv, char **azColName)
        {
        	int i;
        	for (i = 0; i < argc; i++)
        	{
        		printf("%s = %s
      ", azColName[i], argv[i] ? argv[i] : "NULL");
        	}
        	printf("
      ");
        	return 0;
        }
      
    • TABLE方式

        char **dbResult;
        int nRow = 0;
        int nColumn = 0;
        sql = "SELECT * FROM COMPANY";
        int result = sqlite3_get_table(SQ_DB, sql.c_str(), &dbResult, &nRow, &nColumn, 0);
      
        string strLine;
        for (int i=1; i<=nRow; i++)
        {
        	for (int j = 0; j<nColumn; j++)
        	{
        		strLine = dbResult[i*nColumn + j];
        		cout << setw(10) <<strLine;
        	}
        	cout<< endl;	
      
        }
        if (dbResult)
        {
        	sqlite3_free_table(dbResult);
        }
      

    关闭数据库

    sqlite3_close(SQ_DB);
  • 相关阅读:
    事件对象
    type of 操作符和instanceof操作符的区别以及使用方法
    JS:XML
    JS:事件处理程序
    JS:event对象下的target属性和取消冒泡事件
    JS:callee属性
    JS:call()和apply的区别
    JS:事件对象1
    DOM元素的大小和位置
    CSS:在IE浏览器下,元素下沉一行的解决办法
  • 原文地址:https://www.cnblogs.com/chencarl/p/7676930.html
Copyright © 2011-2022 走看看