int sqlite3_str_errcode(sqlite3_str*); int sqlite3_str_length(sqlite3_str*); char *sqlite3_str_value(sqlite3_str*);
这些接口返回 sqlite3_str 对象的当前状态。
如果在 sqlite3_str X 中构建动态字符串时发生任何先前错误,则 sqlite3_str_errcode(X) 方法将返回相应的错误代码。 sqlite3_str_errcode(X) 方法在出现任何内存不足错误后返回 SQLITE_NOMEM,如果动态字符串的大小超过 SQLITE_MAX_LENGTH 则返回 SQLITE_TOOBIG,或者如果没有任何错误则返回 SQLITE_OK。
sqlite3_str_length(X) 方法返回正在 sqlite3_str 对象 X 中构建的动态字符串的当前长度(以字节为单位)。 sqlite3_str_length(X) 返回的长度不包括零终止字节。
sqlite3_str_value(X) 方法返回指向正在 X 中构建的动态字符串的当前内容的指针。 sqlite3_str_value(X) 返回的值由 sqlite3_str 对象 X 管理,可能会被同一 sqlite3_str 对象上的任何后续方法释放或更改。应用程序在对同一对象进行任何后续方法调用后不得使用 sqlite3_str_value(X) 返回的指针。应用程序可以更改 sqlite3_str_value(X) 返回的字符串的内容,只要它们不写入 0 到 sqlite3_str_length(X) 范围之外的任何字节,并且在任何后续 sqlite3_str 方法调用后不读取或写入任何字节。