sqlite3_get_table使用舉例


void GetTable()
{
sqlite3 * db;
int result;
char * errmsg = NULL;
char **dbResult; //是 char ** 類型,兩個*號
int nRow, nColumn;
int i , j;
int index; 
 
result = sqlite3_open( “c:\\Dcg_database.db”, &db );
 
if( result != SQLITE_OK )
{
//數據庫打開失敗
return -1;
}
 
//數據庫操作代碼
//假設前面已經創建了 MyTable_1 表
//開始查詢,傳入的 dbResult 已經是 char **,這里又加了一個 & 取地址符,傳遞進去的就成了char ***
result = sqlite3_get_table( db, “select * from MyTable_1”, &dbResult, &nRow, &nColumn, &errmsg );
if( SQLITE_OK == result )
{
//查詢成功
printf("表格共%d 記錄!\n", nRow);
printf("表格共%d 列!\n", nColumn);
// 前兩個字段為字段名 field0, field1, row[0][0], row[0][1], row[1][0], row[1][1] ... ...
// 是一維數組,不是二維數組,反正記着第0,第1列的值為字段名,然后才是字段值;
printf( "字段名|字段值\n");
printf( "%s | %s\n", dbResult[0], dbResult[1]);
index = nColumn;
for( i = 0; i < nRow ; i ) { printf( “第 %d 條記錄\n”, i); for( j = 0 ; j < nColumn; j++ ) { printf( “字段名:%s ?> 字段值:%s\n”, dbResult[j], dbResult [index] ); index++;
// dbResult 的字段值是連續的,從第0索引到第 nColumn - 1索引都是字段名稱,從第 nColumn 索引開始,后面都是字段值,它把一個二維的表(傳統的行列表示法)用一個扁平的形式來表示 } printf( “-------\n” ); } } //到這里,不論數據庫查詢是否成功,都釋放 char** 查詢結果,使用 sqlite 提供的功能來釋放 sqlite3_free_table( dbResult ); //關閉數據庫 sqlite3_close( db ); return 0; } }*/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM