問題タブ [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.

0 投票する
1 に答える
273 参照

c++ - SOCIの問題

MySQL に簡単にアクセスするために SOCI ライブラリを使用しようとしていますが、ライブラリのインストールに行き詰まっています。

私がこれまでに行ったことは次のとおりです。

  • プロジェクトを作ってCMakeでコンパイル
  • コンパイル後に作成された lib/release ディレクトリにプロジェクトをリンクしました。
  • プロジェクトを MySQL C Connector lib ディレクトリにリンクしました

ここに私の追加のインクルードディレクトリがあります: http://puu.sh/6qGNP.png

しかし、どういうわけか、サンプル プログラムをコンパイルすると、次のようなリンカ エラーが大量に発生します。

1>main.obj : エラー LNK2019: 未解決の外部シンボル "パブリック: 仮想 __thiscall soci::details::standard_into_type::~standard_into_type(void)" (??1standard_into_type@details@soci@@UAE@XZ) 関数で参照" public: virtual __thiscall soci::details::into_type::~into_type(void)" (??1?$into_type@H@details@soci@@UAE@XZ) 1>main.obj: エラー LNK2001: 未解決の外部シンボル「保護: 仮想 void __thiscall soci::details::standard_into_type::post_fetch(bool,bool)」 (?post_fetch@standard_into_type@details@soci@@MAEX_N0@Z)

どこで台無しにしましたか?

0 投票する
1 に答える
1713 参照

c++ - C++ の SOCI/ODBC 経由の SQL Server ストアド プロシージャ

SOCI ライブラリを使用して、ODBC 経由で SQL Server DB とプログラムでやり取りしています。ストアド プロシージャの出力パラメータを介して値を取得できません。いくつかのコード ( SOCI ドキュメントをモデルにしたもの)...

私のコードはエラーや例外をスローしませんが、何もフェッチされません。execさまざまな方法 (通常の構文、ODBCcall構文など) で呼び出してみましたが、何も機能しないようです。ここからエラーがこれに戻るかどうか疑問に思っています...

入力/出力パラメーターが省略された場合、またはパラメーターにリテラルが指定された場合、ドライバーは出力値を破棄します。

残念ながら、少なくとも私が知る限り、SOCI は実際にはパラメーター マーカーをサポートしていないようです。

この種の構文を使用してコードを機能させました...

しかし、それは理想的ではありません。理由は明白だと思います。

SOCI を使用していて、これを機能させるために私が別の方法で行う必要があることについて意見を持っている人はいますか?

編集: soci-users フォーラム/メーリング リストから次の応答を受け取りました...

私はSOCIを数年間使用していませんが、2011年末のsociバージョン2のSQL Serverでストアドプロシージャを正常にODBCで動作させることができました(私はそう思います)。

それを行うには、プロシージャではなくステートメントを使用する必要があったことを覚えています。

ループで SQLMoreResults を呼び出すようにバックエンドを修正する必要がありました。

SOCI ではサポートされていないと思われる出力パラメーターを ODBC で直接処理しましたが、その上に C++ レイヤーもありました。

しかし、私は最近大学を卒業したばかりで (今月最初の仕事を始めたばかりです!)、C++ とデータベース アプリケーションの経験が比較的少ないため、できるだけ多くの支援を提供していただければ幸いです。たとえば、上記の回答に関しては、最後の 2 点がはっきりとわかりません。

0 投票する
1 に答える
288 参照

c++ - soci ライブラリの未解決のシンボル エラー

未解決のシンボル エラーが何であるかは理解していますが、この特定のライブラリでこの特定の状況でエラーが発生する理由がわかりません。これがエラーの出力です。

次のリンク フラグを使用していることに注意してください。

soci::session他のシンボル (コンストラクターやデストラクタなど)への参照が解決されていることにも注意してください。

私は何を間違っていますか?リンクする必要がある別のソーシャルライブラリはありますか?

編集:私はMac OS Xで作業しており、自作(経由brew install soci --with-pg)によるインストールと、3.2.2および3.2.1のスタンドアロンインストールの両方を試したことに注意してください。

0 投票する
2 に答える
407 参照

c++ - MsgPack の問題 - デストラクタ、pack_raw_body など

C++ データベース アクセス APIMsgPack用に作成しているカスタム バックエンドの一部として使用しています。当初、一部のクラスにはメンバー変数としてオブジェクトがありましたが、オブジェクトのデストラクタでいくつかの問題に遭遇しました。この問題は、参照がそのオブジェクトの一部をカウントする方法と、複数解放されるオブジェクトの基礎となるメモリに関連していると思います回。SOCISOCIMsgPack::sbufferSOCISOCIMsgPack

この問題を解決するために、MsgPack::sbufferメンバー変数をメンバー変数に置き換え、これらを使用してメソッドを使用して s をstd::vector<char>埋めることにしました。残念ながら、これにも問題があります。MsgPack::sbufferpack_raw_body

次の(疑似)コードスニペットを検討してください...

出力...

一般に、MsgPack オブジェクトの操作方法を理解するのに苦労しているだけで、ドキュメントや例が少しまばらです。人々が提供できるどんな助けも大歓迎です!

0 投票する
0 に答える
276 参照

c++ - SOCIでSQLite3ネイティブAPIにアクセスするには?

現在、SQLite3 で SOCI を使用しています。カスタム拡張機能をデータベース ( http://www.sqlite.org/loadext.html )にロードできるようにするために、ネイティブ SQLite3 関数を呼び出す必要があるという点に到達するまで、すべてが正常に機能していました。私が使用しているコードは次のとおりです。

コードの最後の行に到達すると、実行時にセグメンテーション違反が発生します。デバッガーを使用して、バックエンドが返すポインターが有効かどうかを確認しましたが、有効です。他のネイティブ SQLite3 API 関数も呼び出してみましたが、すべてセグメンテーション エラーが発生します。ここで何が欠けていますか?これらは私のコードに含まれています:

sqlite3.h も含めようとしましたが、同じ結果が得られます。私はclang ++を使用しています。何か案は?

0 投票する
2 に答える
556 参照

c++ - SOCI 外部シンボル未解決 "struct soci::mysql_backend_factory const soci::mysql"

私は本当に混乱しています、私はこの問題で立ち往生しています、私はあなたが私を助けてくれることを願っています:

私が使用するもの: Windows 8.1、Visual Studio Express 2013、および SOCI 3.2.2

libsoci_mysql と libsoci_core の両方をコンパイルしてプロジェクトにリンクしましたが、コンパイルを開始すると次のエラーが表示されます。

エラー 1 エラー LNK2001: 外部シンボルが解決されていません "struct soci::mysql_backend_factory const soci::mysql" (?mysql@soci@@3Umysql_backend_factory@1@B) dbConnection.obj サーバー

私はウィンドウで少し迷っていますが、libsoci_mysql.libが見つかり、(GNU emacsで.libを開いています)シンボルが含まれていることはほぼ確実です。

0 投票する
1 に答える
255 参照

oracle - SOCI セッション SQL 戻り値

私のオフィスでは、データベース接続をチェックしてテストする基本的な領域でいくつかのテストケースを書くように頼まれました. sociを使用したC ++のGtest(googleテスト)、

だから今、私はこのようなテストケースを持っています、

テーブルがドロップされたかどうかに関係なく、

だから私はこのようなコードを書いた、

SQLステートメントが正常に実行されたかどうかを確認したいのですが、このようなことはできますか?

こんな風に自分の状態を確認できるEXPECT_EQ(true,output);ように。

助けが必要です。正しいやり方や答えがわからない場合は、コメントを入れないでください。

ありがとう

0 投票する
1 に答える
1244 参照

postgresql - ローカル ファイルからリモート データベースへの COPY

同様の質問がありますが、私の問題に対処していません。リモート データベースにストアド プロシージャを定義しています。その操作の一部として、SP はローカル ファイルから (ローカル マシンで実行されているアプリケーションを介して) 一括挿入する必要があります。手順は次のとおりです。

SP に提供されるパスは、ローカル マシン上にあります。

したがって、次のエラーが発生します。

私の頭に浮かぶ唯一のことは、どういうわけか自動的scpにファイルをpostgresqlサーバーに送信してからSPを実行することですが、これは最良のアイデアではありません。解決策を見つけるのを手伝ってもらえますか? どうもどうも

0 投票する
2 に答える
1521 参照

c++ - Windows の cmake に soci を含める

JetBrains CLionにプロジェクトがあり、うまくビルドできるようにHelloWorldセットアップしました。boost

プロジェクトの外部sociを使用cmakemakeてビルドすることができました。mingwHelloWorld

私が使用したブーストのために:

sociにライブラリを含めるにはどうすればよいcmakeですか? を含めるための同様の方法はありsociますか?どこから始めたらいいのかわからない?

アップデート

もう少し先だと思います。

cmake オプションに以下を追加しました。

そしてこれを私のCMakeLists.txt

それでも取得できSOCI NOT FOUNDますが、少なくともsoci変数はcmakeキャッシュに表示されます。

0 投票する
0 に答える
191 参照

postgresql - SOCI で PostgreSQL 配列を読み取るにはどうすればよいですか?

PostgreSQL 配列を返す (SELECT) クエリを実行する必要がありますが、SOCI の PostgreSQL バックエンドのドキュメントには配列については何も言及されていません。

に入れようとするsoci::rowsetと、それは文字列列で"{1, 2, 3}"あると見なされ、解析したくないような文字列が返されます。SOCI にそのデータ型を自動的に処理させる方法はありますsoci::intosoci::rowset? または、結果セットで個別の行を取得するために、配列との結合に頼る必要がありますか?

SOCI 3.2 と PostgreSQL 9.3 を使用しています。