問題タブ [libpq]

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 投票する
2 に答える
477 参照

c - 静的文字配列を使用したヘルパー関数の作成

PostgreSql C ライブラリを使用しており、関数を使用してポインタlibpqから値を取得できます。PGresultPQgetvalue

printf現在、10 ~ 20 列のテーブルがあり、簡単な呼び出しでそれらを印刷したいと考えています。

関数を使用してロードされた文字列はどこresAにありますか。さて、このアプローチでは 10 ~ 20 個のポインターを宣言する必要があり (単一の printf で出力したい場合)、次のような単純なものを使用するつもりでした。resBPGgetvalue

そして、次のように呼び出しますprintf

ただし、printf関数の出力は、呼び出しで以前の文字列を (念のために) 削除したにもかかわらず、すべてのgetField呼び出しがデータベースから最初に要求されたもの (この場合はフィールドの値) を返していることを示しています。Amemset

どこが間違っていますか?私のコードの何か、またはすべての getField 呼び出しが同じメモリへのポインターを返すと仮定した gcc であるため、実際には複数回呼び出していません。

または、printf関数は最初にすべてのパラメーターを (逆の順序で) 評価してから、実際に関数を呼び出していますか? これが事実である場合(そして私はそうであるに違いない)、私が試みていることを達成するためのより簡単なパターンはありますか?

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

c++ - libpq VS qpsql (postgre 用 QT ドライバー)

Postgresql接続ヘッダーとクラスを作成するために、QT 4.8とQT Postgresqlドライバーを使用してきましたが、最終的にそれを完了したとき、上司はそれを忘れてネイティブlibpqで再作成するように言いました...彼は、ヘッダーを使用するプログラムが存在する場所のアイデアとして QT を使用しています。プログラム的には、パラダイムを組み合わせるのは良い考えではありませんが、まあ...私は彼が言うようにやっています。そう!私が知りたい本当の質問は...これら2つを使用することの主な違いは何ですか? (一方が c で、もう一方が c++ であることを除いて)

つまり、プログラムの効率、パフォーマンス、サイズ、およびデータの種類の観点からですか? また、データベースへの接続が変更された可能性があります。ありがとう

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

c - ポインタを返す関数への未定義参照

PostgreSQL データベースに接続するためのヘッダーを作成する libpq 関数を独自の関数にカプセル化していますが、そのうちの 1 つで、タイプ PGconn のポインターを返すと思われるタイプのエラーが発生します...

ConexionPostgres.c:32:6: aviso: la asignación crea un puntero desde un entero sin una conversión [activado por defecto] /tmp/ccCeaewL.o: In functionmain ': ConexionPostgres.c:( .text+0x86): undefined reference toセットBD'

プロトタイプのせいだと思ったので、プロトを変更してメインの直前に定義を置きましたが、何も...何が起こっているのか誰か教えてもらえますか?

Postgres libpq のドキュメントと libpq-fe.h を直接チェックしてプロトを確認しているので、何も欠落していませんが、混乱しています。これが私のコードです:

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

c++ - スタティック ライブラリとして libpq を使用する LNK2005

静的ライブラリ (tinyxml2、sqlite3、openssl、libpq を含む) を介してすべてのサードパーティ コードをリンクするアプリケーションを作成しています。libpqd.lib にリンクしようとするたびに、すべてが正常に機能しています - 9.1.9 と 9.2.4 のソースを使用しました - 私は取得しています:

これが唯一のエラーで、これまでの検索は無駄でした。すべてのライブラリでマルチスレッド デバッグ ランタイム ライブラリを使用していることに注意してください/MTd。これは、postgresql にはデフォルトではありません。以前は構成できなかった/MTdandの代わりに andを使用するように、手動で win32.mak にパッチを適用しました。これにより、以前のリンカー エラーがいくつか解決されましたが、以前から存在していたため、この最後のエラーに関連しているとは思われません。/MT/MDd/MD

次の方法で libpq をコンパイルします。

そして、次の方法でリンクします。

ライブラリ ディレクトリはプロジェクト内で構成され、ライブラリはこのフォルダーにコピーされるため、使用されている正しいフォルダーであることがわかります。

これは通常、簡単に解決できるエラーですが、もうどこを見ればよいかわかりません。

postgresql サイトにはこれに関するスレッドが存在しますが、解決されていないようです: http://www.postgresql.org/message-id/39E6FC4547C24F9884435E23698B11DC@HIRO57887DE653

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

postgresql - Psycopg2 Python アプリのデプロイの問題

私のコンピューターでテストされ、完全に動作する Python でアプリケーションを作成しました (Mac OSX 10.8.3 Python2.7.3 Postgresql9.2.4 Psycopg2-2.5)。アプリは py2app を使用してコンパイルされており、ビルドによってすべてのパッケージ/モジュールがアプリケーションのコンテンツ フォルダーに正常に含まれていることがわかります。

Psycopg2 は私のマシンに正しくインポートされ、アプリは正常に動作しますが、アプリケーションが別のコンピューターで実行されると (私は 4 つの異なるコンピューターを試しました...)、開くことができず、コンソール メッセージに ImportError: dlopen(/ Applications/app.app/Contents/Resources/lib/python2.7/psycopg2/_psycopg.so、2): ライブラリがロードされていません: libpq.5.dylib

SOとGoogleでコードを広範囲に検索して変更しましたが、役に立ちませんでした。psycopg2 リンクも、特にこの問題に対処していません。http://initd.org/psycopg/articles/2010/11/11/links-about-building-psycopg-mac-os-x/

ソース、macports、自作などからビルドして、psycopg2とpostgresqlを何度も削除して再インストールしました。現在の環境は上記にリストされており、postgresql 9.2.4が自作でインストールされ、psycopg2-2.5がソースからインストールされ、pg_configの場所を明示的にリンクしていますsetup.cfg で

_psycopg.so で otool -l を実行すると、次のようになります。

ビルドされたアプリケーションにこれらのファイルを含める (または利用可能な場合はターゲット ユーザーにファイルを参照させる) にはどうすればよいですか? これは正しいアプローチですか?もちろん、Py2app は /usr/lib/ のシステム ファイルを "frameworks" オプションに含めません。

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

c++ - c++ プログラムから実行すると psql \copy コマンド エラーが発生する

C++ プログラムからコマンドを実行すると、このエラーが発生します。

psql プロンプトから同じコマンドを実行すると、エラーなく動作します。

私が間違ったことをしましたか?

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

sql - Embedded SQL と libpq の機能を組み合わせる

PostgreSQL データベースの変数を定期的にホスト変数にポーリングし、データベースからの通知をリッスンするプログラムを C で作成しました。1. Embedded SQL (ECPG) を使用してデータベースからの通知をリッスンするか、2. libpq コマンド PQexec から INTO ホスト変数を選択して解析し続けることなく、1 つのステップで選択できるソリューションがあるかどうか疑問に思っています。つまり、SELECT INTO (複数のホスト変数) と同じ機能を持ちます。

現在、2 つの接続をセットアップする必要があります。1 つは SELECT INTO 機能用の EXEC SQL 経由で、もう 1 つは接続ポインタを作成するために libpq 経由です。接続ポインタは後で PQnotify が通知をリッスンするために使用されます。プログラムは現在動作していますが、同じデータベースへの両方の接続を設定する必要があるのは冗長に思えます。

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

c++ - VS 2012 プロジェクトで libpq (PostgreSQL) ライブラリを使用する

Windows 7 x64 で VS 2012 を使用しています。私の友人は、libpq を使用する C++ クラスを書いてくれました。

プロジェクトをビルドしようとするたびに LNK2019 エラーが発生します。スクリーンショットPostgresをインストールして、プロジェクト プロパティへのパスをいくつかロードし ました。

0 投票する
3 に答える
7046 参照

c++ - PQprepare と PQexecPrepared の使い方

誰かが PQprepare と PQexecPrepared の使い方を手伝ってくれることを願っています。私は何か間違っているに違いないと確信していますが、私が試したことは何もうまくいかないようです。

準備されたクエリを使用してテーブルに挿入しようとしていますが、このエラーが発生し続けます

ERROR: invalid input syntax for integer: "50.2000008"

これは、Oid を 701 (float8) に設定した緯度の値ですが、整数であると表示されています。私は何かを完全に見逃していますか、それとも何かが間違っていますか?

\d data_plus

ありがとう、

マーク

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

c++ - C++ コードでの PL/pgSQL 関数のメッセージの処理

PL/pgSQL 関数で計算を実行しており、その計算結果を C++ コードで使用したいと考えています。それを行う最善の方法は何ですか?

その結果をテーブルに挿入してそこから使用することはできますが、それがベスト プラクティスでどれだけうまくいくかはわかりません。また、にメッセージを送信できますが、コードstderrRAISE NOTICEそのメッセージを使用できるかわかりません。