の使用には (潜在的な) 問題がありますsqlite3_errmsg()
:
最初のエラーが発生してからこれらのインターフェイスが呼び出されるまでの間に、別のスレッドで 2 番目のエラーが発生する場合があります。
何らかの関数から既にエラー コードが返されている場合、対応するエラー メッセージを別の方法で取得できますか?
の使用には (潜在的な) 問題がありますsqlite3_errmsg()
:
最初のエラーが発生してからこれらのインターフェイスが呼び出されるまでの間に、別のスレッドで 2 番目のエラーが発生する場合があります。
何らかの関数から既にエラー コードが返されている場合、対応するエラー メッセージを別の方法で取得できますか?
仕事をする機能は
SQLITE_PRIVATE const char *sqlite3ErrStr(int);
PRIVATE
しかし、別名として宣言されていstatic
ます。
ドキュメントでは、データベース接続をロックしてから、エラー コードとエラー メッセージの両方を読み取ることを提案しています。
別の簡単な解決策は、ソース コードにアクセスできる場合、関数を公開することです。
使用できる sqliteErrStr() のパブリック API ラッパーがあります。
SQLITE_API const char *sqlite3_errstr(int rc);