問題タブ [soci]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - SOCIを使用してデータベースから行全体を取得するには?
...そしてそれを自己定義のオブジェクトタイプに保存しますか? 私はPostgreSQLを使用しています。すべてを 1 つのファイルにまとめると、うまくいきます。しかし、cpp で書くときにいつも行うように、これをクラス ファイルに分割したかったのです。コードを *.h ファイルと *.cpp ファイルに分割すると、エラーが発生します。
ここに私のファイルがあります:
test.h
test.cpp
main.cpp
私は次のようにコンパイルします:
g++ main_test.cpp test.h test.cpp -o App -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci -I /usr/include/postgresql
これらのエラーが発生しました:
上記の問題は解決しました。@JohnBandela ANSWER をご覧ください。
c++ - SOCIを使用してデータベースから行全体をユーザー定義のオブジェクト型に取得する方法は?
クラスを拡張して (この質問から: SOCI を使用してデータベースから行全体を取得する方法は? )、2 つのプライベート メンバーを持ち、ゲッターとセッターも追加しました。しかし、プログラムをコンパイルすると、再びエラーが発生します。
myClass.h
myClass.cpp
myClassTest.cpp
私は次のようにコンパイルします:
g++ myClassTest.cpp myClass.h myClass.cpp -o App -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci -I /usr/include/postgresql
そして、私が得たエラーは次のとおりです。
visual-c++ - VisualC++ プロジェクトで GCC でコンパイルされたライブラリを使用する (およびその逆)
GCC をコンパイラとして使用するプロジェクトで、VisualC++ でコンパイルされたコード (およびライブラリ) (したがって .lib 拡張子を使用) を使用することは可能ですか? または、それらを再構築する必要がありますか?
GCC をコンパイラとして使用するプロジェクトで、VisualC++ でコンパイルした SOCI 3.1 ライブラリを使用しようとしていますが、エラーが発生し、その理由がわかりません..
c++ - PostgreSQLを使用する場合のSOCIライブラリの高精度タイムスタンプ
SOCIライブラリは、タイムスタンプを処理するためのstd::tmのバインディングについて説明しています。std :: tm構造の精度は2番目ですが、PostgreSQLタイムスタンプの方が精度が高くなります。2秒未満の精度でタイムスタンプにアクセスするための最適な方法をアドバイスできますか?
タイムスタンプにアクセスするためにunsignedlongおよびlonglongデータ型を試しましたが、成功しませんでした。私が成功した唯一の方法は文字列ですが、これには解析が必要になります(たとえば、ミリ秒単位の長い、またはさらに優れたc ++ 11 time_pointなど、従来の値を使用する必要があります)。これは最適とはほど遠いものです。
前もって感謝します。
c++ - soci :: Indicators[C++]でSOCIを使用してテーブルから行を取得します
'person'という名前のテーブルから行を取得したいと思います。名がない場合の例外を避けるために、インジケーターを使ってやりたいと思います。これを行う方法?
私はコードを書きました:
ただし、行を追加した場合にのみ、行は表示されません。
ifステートメントの前に、データベースからの名が表示されます。
c++ - SOCI ライブラリを使用して変数を準備済みステートメントにバインドするにはどうすればよいですか?
現在、私のアプリケーションは SQLite データベースのみをサポートしていますが、SQLite データベースと MySQL データベースの両方をサポートしたいので、SOCI ライブラリをテストして、必要なことができるかどうかを確認しています。ただし、例とドキュメントにもかかわらず、SOCI が準備済みステートメントをどのように処理するかを理解できません。
SQLite C APIを使用する場合、次のステートメントを準備します。
その後、値を :id プレースホルダーにバインドし、ステートメントを実行して結果をステップ実行します。
SOCIでこれを行うにはどうすればよいですか? ネイティブ SQLite API のように、準備とバインドの概念が分離されていないようです。soci::use() を使用して準備中にバインドを行う必要がありますか?
更新 1 : 質問を十分に説明していない場合: これは、SQLite C API を使用した小さくて動作する C++ の例です。これが SOCI を使用して再実装されているのを見ることができれば、質問に答えることができます。
SOCI を使用して部分的に実装された同じプログラム ( HELPMEとしてマークされた 2 つのスタブ関数に注意してください)
更新 2 : cppdb ライブラリを見つけたとき、私はSOCI を捨てることになりました。SOCI とは異なり、これはネイティブ C API の非常に薄いラッパーであり、現時点での私のニーズに合っています。
mysql - OS X での SOCI MySQL の問題
私のプロジェクトでは、C++ から簡単に MySQL データベースにアクセスできるように SOCI を取り入れようとしています。私のチームメイトの 1 人が、MySQL バックエンドを使用して Linux で実行中の SOCI テスト プログラムを作成し、彼の CMake ファイルには次のリンクのみが含まれていました。
ただし、Mac では、プログラムを実行しようとすると、セッション作成行でエラーが発生します。
このエラーで:
私は間違いなくMySQLをインストールしており、間違いなくMySQLをサポートするSOCIを構築しました。SOCIのmakeは、MySQLライブラリが見つかったとさえ言っています。
MySQL バックエンドで SOCI を使用する CMake プロジェクトは、MySQL または SOCI MySQL プラグインにもリンクする必要がありますか? そのルートをたどってみましたが、次のようなさまざまなランタイム エラーが発生します。
必要に応じてテストプログラムを提供できます。ありがとうございます。