問題タブ [libpqxx]

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 に答える
788 参照

postgresql - 名前で列にアクセスできないのはなぜですか?

サンプルコード:

私の出力は次のとおりです

最初の列名は「名前」で、行名を文字列「名前」に対してテストすると、真のステートメントが生成されます。しかし、その文字列でアクセスすると、例外が発生します。

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

c++ - libpqxx: 接続プロセスが終了した後に Postgresql データベースに再接続する方法

libpqxx を介して PostgreSQL 接続をインスタンス化します。データベースにクエリを実行すると、正しい応答が得られます。その後、次のエラー ケースを試しました。pqxx::connection のインスタンスが作成された後、プログラムを一時停止し、Linux のコマンド シェルから Postgre の接続プロセスを手動で強制終了して、プログラムを再開しました。これは、pqxx::broken_connection をスローする新しいトランザクション pqxx::work を作成しようとするまで続きます。この例外を処理し、pqxx::connection::activate() への呼び出しで再接続を試みますが、別の pqxx::broken_connection がスローされます。別の pqxx::connection をインスタンス化せずに DB に再接続するには?

PS の再活性化は阻害されません。私は標準の接続タイプを使用しています -

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

c++ - cv :: Matへのopencvバイナリデータjpg画像

postgresql データベースから取得したイメージを c++ opencv にロードしたいと考えています。拡張子jpgの画像はベースにバイナリデータ(bytea型)で保存されており、libpqxxでアクセスできます。

問題は、データを cv::Mat インスタンスに変換する方法がわからないことです。通常の画像では imread('myImage.jpg', ...) を使用できますが、この場合、bmp ではなく jpeg であるため、Mat のデータ属性にデータベース画像をロードすることさえできません。

何か案が ?バイナリデータを直接理解して適切な構造に変換できるopencvメソッドはありますか? imdecode() 関数はビットマップ データに使用されているようです。

edit : Berak、ベクトルを使用すると imdecode 関数は null を返します。コードは次のとおりです。

何が欠けていますか?

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

c++ - 致命的なエラー: 'libpq++' ファイルが見つかりません

C++ プロジェクトで libpq++ ライブラリを使用したいのですが、うまくいきません。

これまでのところ、libpqxx-dev libpqxx-4.0Ubuntu 14.04 にパッケージをインストールし、-llibpq++ を clang++ に提供しました。

ただし、何をしても、次のエラーが発生します。

libpq++ を正しくインストールしていないようですが、特に問題はありません。どんな助けでも大歓迎です。

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

c++ - pqxx の再利用 / 作業トランザクションの再アクティブ化

複数のクエリとコミットメントに pqxx::work を使用したいのですが、コミット機能により、再度使用することはできません。簡単な例を次に示します。

'bar' 値を挿入しようとすると、コミット後に pqxx::usage_error が発生します。Error executing query. Attempt to activate transaction<READ COMMITTED> which is already closed

変更をコミットした後に接続を閉じないようにするにはどうすればよいですか? G_work=pqxx::work(G_connexion) などの後続の等価物で G_work をリセットできますか? また、1 つの不正な要求によってプロセス全体がクラッシュすることはなく、処理中の 1 つだけがクラッシュするはずです (G_work は失敗後も使用可能です)。

プログラム内の多くの場所から呼び出されるグローバル変数になるため、同じ変数 G_Work を保持する必要があります。

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

c++ - Oracle Solaris Studio 12.3 を使用して Solaris 10 で libpqxx-4.0.1 をコンパイルしようとするとエラーが発生する

問題の説明

Solaris Studio 12.3 を使用して、Solaris 10 で libpqxx-4.0.1 をコンパイルできません。

バックグラウンド

libpqxx が必要になったときに私が最初にしたことは、 を使用して OpenCSW で検索することでした/opt/csw/bin/pkgutil -a libpqxx。ただし、OpenCSW のパッケージはバージョン「5.0,REV=2012.05.06」としてリストされて おり、OpenCSW Web サイトのCSWlibpqxx5-0を見ると、これが古くて不安定なスナップショットであることが示されているようです。安定版が欲しいです。

libpqxx Web サイトから libpqxx-4.0.1.tar.gz をダウンロードしてコンパイルしました。g++私はそれと他のツールを持っていたので、それはでコンパイルされました$PATH。出来た。すべてが順調に進んでいました。SELECTデータベースなどからできました。

次に、コードにとって最も重要な段階に到達しました。独自の C++ API と通信します。g++この API のライブラリへのリンクを試みた後、私のコードは でコンパイルできなくなりました。API には、私が以前に を使用してコンパイルした例が含まれていCCます。例は、 を使用してコンパイルされません g++CCを使用する代わりに、 を使用してコードをコンパイルする必要があると考えましたg++。私のコードは、を使用してコンパイルされませんでしCCた。g++コンパイルされた libpqxx-4.0.1 にCCは気に入らないものがありました。

CCしたがって、を使用する代わりに、も使用して libpqxx-4.0.1 をコンパイルする必要があると判断しg++ました。

実行した手順

誤って設定された可能性のある環境 (2012 年からシステムで自分のアカウントを使用しており、時間の経過とともにさまざまな環境変数などが蓄積された) によって引き起こされる問題を排除するために、クリーンなホーム ディレクトリを使用してシステムに新しいユーザーを作成しました。

以下は、ビルド エラーに至るまでの、次に行ったことのトランスクリプトです。

-bash-3.2$ pwd

-bash-3.2$ ls -al

-bash-3.2$ /usr/sfw/bin/gtar xf libpqxx-4.0.1.tar.gz

Solaris 10の Python 2.4.6/usr/bin/pythonはスクリプトに問題があったため、迅速で汚いパッチを適用しました。

-bash-3.2$ diff libpqxx-4.0.1/tools/splitconfig splitconfig

-bash-3.2$ cp splitconfig libpqxx-4.0.1/tools/

$PATHこの時点で私のはただ/usr/binです。

-bash-3.2$ echo $PATH

が必要ldです。にあります/usr/ccs/bin

-bash-3.2$ export PATH=$PATH:/usr/ccs/bin

CCは Oracle Solaris Studio 12.3 のものです。(詳細については、見出しの追加情報を参照してください。)

-bash-3.2$ which CC

-bash-3.2$ cd libpqxx-4.0.1

-bash-3.2$ ./configure --prefix=/var/tmp/build/install_test --enable-shared --enable-documentation

makefrom/usr/ccs/binは以前にビルドできなかったので、今度は dmakeOracle Solaris Studio 12.3 から使用してみます。

-bash-3.2$ which make

-bash-3.2$ which dmake

-bash-3.2$ dmake

追加情報

-bash-3.2$ cat /etc/release

-bash-3.2$ /usr/bin/version

-bash-3.2$ pkgchk -l -p /usr/bin/CC

-bash-3.2$ pkginfo | grep SPRO

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

c++ - pqxx 挿入されたばかりの行の ID を返します

私はc ++ 4.8(利用可能な4.9)とpqxxドライバーバージョンを使用しています。4.0.1。postgresdb は最新の安定版です。

私の問題は、複雑さとリソースのバランスに関するものです。

データベースへの挿入を実行する必要があり (オプションで pqxx::result があります)、そのテーブルの id は nextval(table_seq_id) に基づいています

結果として挿入された行のIDを取得することは可能ですか? これには回避策があり、db に currentvalue について順番に尋ね、currentvalue+1 (または +n) でクエリを挿入するだけですが、これには「挿入して尋ねる」チェーンを実行する必要があります。

Db は、1 秒あたり 6K を超える大きなリクエストを格納できる必要があります。だから私はできるだけ頻繁にIDについて尋ねたいと思います. 一括挿入はオプションではありません。