私はで作業しており、行を格納SQLite3 in .cpp
するためにを使用しています。すべて問題ありませんが、からstd::map<std::string, special_variant_type>
の場合、列名がラッパーを保持しているように見えることがわかりました。SELECT
(subqueries)
これらのクエリを比較します。
SELECT `name` FROM `sqlite_master` WHERE `type`='table'; // works as I expected
および(いずれかを選択):
// do not work as I expected but might work as expected...
SELECT `name` FROM (SELECT `name` FROM `sqlite_master` WHERE `type`='table');
SELECT [name] FROM (SELECT `name` FROM `sqlite_master` WHERE `type`='table');
問題:最初の1つは、装飾されていない列名をもたらします。したがって、列名はname
です。サブクエリから選択する2番目の場合、列名は変更されません。返さbackticks, square brackets [], double quotes "
れる...必要な名前ラッパー...IMO、破棄されます。
これは予想される動作ですか?一貫性がないようです。ラッパーを保持するか、破棄してください...
PS:列マップをペアリングしているときに、それらを破棄していますが、それでも...これが正しいかどうか疑問に思っています...
PPS:sqlite3ライブラリとNavicatクライアントの両方で発生します。
クイックソリューション:3.7.14が壊れています。クライアントを新しいバージョンに更新してください!この問題が発生しているサードパーティソフトウェア内のDLLを置き換えます(ただし、念のためバックアップコピーを保持します)。