SQLite3的API应用(续)

本文详细介绍了如何使用sqlite3_prepare和sqlite3_step函数进行SQL查询操作,包括获取查询结果的数量和列数,并展示了如何遍历查询结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用sqlite3_prepare和sqlite3_step完成查询操作:

    sqlite3 *sqlite3db = NULL;    
    int rc,nCol;
    char *sql;
    sqlite3_stmt *pStmt;
    const char *pTail;
    sql="select * from Phonetable";
    rc=sqlite3_prepare(sqlite3db,sql,(int)strlen(sql),&pStmt,&pTail);
    if(rc!=SQLITE_OK)
    {
        fprintf(stderr,"SQLerror:%s\n",sqlite3_errmsg(sqlite3db));
    }
    rc=sqlite3_step(pStmt);
    nCol=sqlite3_column_count(pStmt);
    while(rc==SQLITE_ROW)
    {
        for(int i=0;i<nCol;i++)
            fprintf(stderr,"%s  ",sqlite3_column_text(pStmt,i));
        fprintf(stderr,"\n");
        rc=sqlite3_step(pStmt);
    }
    sqlite3_finalize(pStmt);
    sqlite3_close(sqlite3db);

使用sqlite3_get_table完成查询操作:
int rc;
char *sql;
char **result;
int nRows,nCols;
int nRIndex,nCIndex;
sql="SELECT *FROM PHONETABLE";
rc=sqlite3_get_table(sqlite3db,sql,&result,&nRows,&nCols,&errmsg);
if(rc==SQLITE_OK)
{
    for(nRIndex=0;nRIndex<nRows;nRIndex++)
    {
        for(nCIndex=0;nCIndex<nCols;nCIndex++)
            printf("%s = %s\n",result[nCIndex],result[(nRIndex+1)*nCols+nCIndex]);
    }
}
sqlite3_free_table(result);//释放资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值