問題タブ [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++ - Linux/ubuntu の静的ライブラリとしての Soci?
セキュリティ上の理由から、プログラムを静的に soci にリンクする必要があります。
バックエンドが postgresql であるため、静的ライブラリ libsoci_core.a と libsoci_postgresql.a をビルドしました。
私の問題は、これらのライブラリを使用してプログラムをビルドすると、リンク エラーが発生することです。
[...]/lib/libsoci_core.a(backend-loader.cpp.o): 関数 `(anonymous namespace)::do_unload(std::basic_string, std::allocator > const&)':
backend-loader.cpp:(.text+0x623): `dlclose' への未定義の参照
backend-loader.cpp のコードを見ると、dlclose およびその他の動的ライブラリ ロード関数が呼び出されます。
したがって、これらのエラーを回避して「真の」静的ビルドを作成することさえ可能かどうか疑問に思っています。
または、このエラーが発生しないようにするにはどのオプションを使用する必要があり、コードは静的 posgresql ライブラリを呼び出しますか?
ありがとう!
c++ - Xubuntu で SOCI (SQL ラッパー) を使用すると、コンパイル中に単純なプログラムが失敗する
データベースを使用するアプリケーションの書き方を最終的に知りたいです。C++、PostgreSQL、および SOCI (C++ への SQL ラッパー) を選択しました。Xubuntu 11.4 を使用し、簡単なプログラムを実行するために必要なすべてをインストールしました。
私がインストールしたSOCIを使用するには:
1) libboost-dev 2) libpq-dev 3) libtool 4) SOCI: http://soci.sourceforge.net/doc/backends/postgresql.html#requiredを使用し、次のコマンドで SOCI をコンパイルしました: cmake cmake - G "Unix Makefile" -DWITH_BOOST=ON -DWITH_POSTGRESQL=ON ../
私の単純なプログラムは非常に単純です。
私は次のようにコンパイルします:
しかし、それは私にエラーを与えます:
test.cpp:1:29: 致命的なエラー: soci-postgresql.h: そのようなファイルまたはディレクトリのコンパイルは終了しませんでした。
これを修正する方法、何が問題なのですか? 何かをインストールするのを逃しましたか?
いくつかの詳細情報:
私もこれを試しましg++ test.cpp -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci/postgresql
た:そしてエラーが発生しました:
g++ test.cpp -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci/postgresql test.cpp:1:0 からインクルードされたファイル: /usr/local/include/soci/postgresql/soci-postgresql .h:27:26: 致命的なエラー: soci-backend.h: そのようなファイルまたはディレクトリのコンパイルは終了しませんでした。
c++ - SOCI (SQL C++ ラッパー) - PostgreSQL はコマンドを実行しません (?)
簡単なプログラムをコンパイルする方法を見つけたとき、別の問題が発生しました... PostgreSQL をインストールし、データベースとテーブルを作成しました。
1) createdb testDB 2) テーブル都市を作成します (city varchar(80), location varchar(80));
そして、私のまだ非常に単純なプログラム:
このコードは、testDB に既にある行のみを表示し、挿入したばかりの行は表示しません。例: 私のtestDBのテーブルcityには、次のものがあります:
ワルシャワ ポーランド ベルリン ドイツ パリ フランス
上記のコードは私を示しています:
ワルシャワ、ポーランド
しかし、表示されません:
ベルリン ドイツ パリ フランス ロンドン イギリス
助けてください:(
c++ - SOCI C ++(SQLラッパー)致命的:データベース「testDB」は存在しません
Sociのもう1つの問題...作成したばかりのtestDBに接続したいのですが、以下のコードは致命的なエラーを示しています。
これは私がしました:
PostgreSQLの場合:
私のC++コード:
コンパイル後、私はこれを手に入れました:
どうしたの?
c++ - SOCIを使用してPostgreSQLデータベースからデータを取得しているときにキャストが正しくありません
PostgreSQLにデータベースがあります。そして私はSQLクエリを持っています(これはPostgreSQLでうまく機能するので、SQLコードは間違っていません):
creation_date Date;
ここで、作成日はPostgreSQLのように定義されています。クエリは次のように返されます(データベースにあるものによって異なります)。
このクエリからデータを取得するためにSOCI+C++を使用しています。私のC++コード全体:
しかし、アプリケーションを実行しようとすると、このエラーが発生しました(コンパイルは問題ありません):
'std :: bad_cast'のインスタンスをスローした後に呼び出された終了
what():std :: bad_cast割り込み(コアダンプ)
助けてください、コンパイルがうまくいくとき、私は本当にこれを修正する方法を知りません。
おそらく問題は、creation_dateがDATEであり、tmも時刻を保持していることです...?もしそうなら、これを修正する方法は?
c++ - wchar_t(またはwchar_t*またはCORBA:: WChar *)を文字列に変換する方法は?
私のアプリでは、CORBA :: WChar *(または同等のwchar_t *)を使用する必要がありますが、プログラムはPostgreSQLデータベースにいくつかの情報を保存する必要もあります。C ++でPostgreSQLにデータを挿入するには、SOCIを使用します。そして、問題があります:
したがって、wchar_t *またはwstringはサポートされていません...そして、CORBA :: WChar(またはwchar_tまたはwchar_t *)を文字列に変換する必要があります。これを行う方法?
CodeBlocks 10.5を使用したワイド文字(および文字列)にも問題があります。
ショー:
それを修正する方法は?
また、UNIX / LinuxとWindowsの両方で実行できるように、コードを移植可能にする必要があります。
c++ - Soci:結果を保存するカスタムクラスを作成します
私はSociを使用してデータベースクエリを作成します。次に、soci::rowsetをラップアラウンドするカスタム結果セットクラスが必要です。コピーコンストラクターがsociでプライベートであるという理由だけで、コードが以下のように機能するようにできません(ソースファイルではサポートされていません)。複雑なコードを使用せずに、soci :: rows(ここではRowにtypedef-ed)のリストを使用してラッパーを作成するにはどうすればよいですか?どのように進むかについてのデザインや方向性は高く評価されています
私のヘッダーファイル
ソースファイル
これが、接続のExecuteQuery関数での使用方法です。m_sessionはsoci::sessionです
後でクラスをどのように使用したいかの例
c++ - How to code for SELECT * with SOCI?
In most examples for SOCI, the caller must know the fields and types in a query and specifies them through a soci::rowset<>
of boost::tuple<>
or through some other means.
Is there a way to code without knowing the types and number of columns beforehand, as in a SELECT * FROM ...
query?
If so, could you post a short example?
c++ - Qt で SOCI を使用する = 適切な *.pro ファイルを作成するには?
Qt と SOCI を使用して GUI アプリを作成したいと考えています。エラーなしでプロジェクトをコンパイルするために適切な *.pro ファイルを作成する方法は? 私はこれを書きました:
それは機能しますが、それが正しいかどうかはわかりません。
c++ - SOCI と C++ を使用してテーブル内の行数を確認する方法は?
簡単な質問です。私はテーブル人を持っています。私はそれに2行あります:
テーブルにある行の数を教えてくれる (返す) SOCI ステートメントの書き方は? (ここで、私の例では、2 つの行があります)。