在阅读文档后,似乎函数sqlite3_column_count完全相同,但没有sqlite3_data_count所具有的限制.
为什么我要在sqlite3_column_count上使用sqlite3_data_count?谢谢!
我查了两个函数的来源:
/* ** Return the number of columns in the result set for the statement pStmt. */ SQLITE_API int sqlite3_column_count(sqlite3_stmt *pStmt){ Vdbe *pVm = (Vdbe *)pStmt; return pVm ? pVm->nResColumn : 0; } /* ** Return the number of values available from the current row of the ** currently executing statement pStmt. */ SQLITE_API int sqlite3_data_count(sqlite3_stmt *pStmt){ Vdbe *pVm = (Vdbe *)pStmt; if( pVm==0 || pVm->pResultSet==0 ) return 0; return pVm->nResColumn; }
现在很明显有什么区别,所以NickD是对的.
顺便说一句,文档很可怕:"sqlite3_data_count(P)是准备好的语句P的结果集中的列数." 这甚至不是正确的英语,功能定义附带的评论要好得多.