問題タブ [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 に答える
4151 参照

c - libpq を使用して postgreSQL サーバーに接続できない

私はPostgreSQLを学ぼうとしている完全な初心者です。libpq を使用して C プログラムを介して postgres サーバーに接続しようとしています。

サーバーのステータスは次のとおりです。

コンパイルするときは、次を使用します。

./a.out でプログラムを実行すると、次のように表示されます。

私は PQconnectdb を正しく使用していないと思いますが、他のことが原因である可能性があります。

ここに私のCファイルがあります:test.c

どんな入力でも大歓迎です、ありがとう!

理解した!

有効な hostaddr を使用していませんでした。私はそれを次のように置き換えました:

dbname=Project も削除しました。実行すると、次のようになります。

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

postgresql - SQL構文エラーまたはlibpqからの実行例外からエラー行/列番号を取得する方法は?

経由で SQL コマンドを実行すると、libpqこのようなエラーが発生するとエラー メッセージが表示されます。

これは文字列メッセージです。メッセージは非常に規則的であるため、行/列番号を取得するために解析できますが、それは信頼できません。行/列番号を取得するための他の API はありますか? 正規化された整数形式はどれでもいいでしょう。

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

ruby-on-rails - gem install pg は機能しますが、bundle install は機能しません

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config動作しますが、bundle install を実行しようとすると、このエラーがスローされます

Can't find the PostgreSQL client library (libpq)

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

c++ - C++ プログラムで libpq を使用して NOTIFY を取得しない

ROS (ロボット オペレーティング システム) スタックsql_databaseを拡張して、postgresqls LISTEN および NOTIFY コマンドを処理できるようにしています。前述のように、C++ プログラム内で Ubuntu12.04 の libpq バージョン 9.1.10-0 を使用しています。しかし、何らかの理由で NOTIFY を取得できません。

例 (例 28-2. libpq サンプル プログラム 2) があり、完全に正常に動作することは知っています。私はかなり長い間それをいじりましたが、それを私のコードにできるだけ正確にコピーし、問題が発生しているコードにより似た方法でサンプルコードを変更しようとしました。しかし、それは私の問題には役に立ちませんでした。

サンプルプログラムとデータベースへの手動ログインで通知を受け取ることができますが、使用したいコードでは受け取りません。

他に何を試しましたか:

  • 別のデータベースへの接続 - 何も変更されませんでした。
  • コマンドを実行したCOMMIT;後に実行しLISTEN <channel>;ます。しかし、これにより、開いているトランザクションがなかったため、予想どおり警告が発生しました。
  • 私が行う前に接続が死んでいるかどうかを確認してくださいPQconsumeInput(connection_);- それは純粋に生きています
  • 同じ関数でLISTENコマンドを実行します.NOTIFYをチェックしています(ブレークポイントを使用してその間にNOTIFYをトリガーします)-何も変更しませんでした。

NOTIFY は常に手動でトリガーされましたNOTIFY <channel>;

コード構造

このコードは、github (不安定なブランチ)でも確認できます。

  • class PostgresqlDatabase (github の sql_interface->database_interface->src 内)
    このクラスは接続 PGconn を保持し、次のようなタスクを提供します

    このクラスの主な目的は、SQL クエリを抽象化して、ROS プログラマーがそれらを気にする必要がなくなるようにすることです。

  • class databaseBinding
    ROS とデータベース機能の間の接着剤です。データベース接続を取得し、タスクを呼び出すための PostgresqlDatabase オブジェクトを保持します。

  • 主な機能
    次のことを行います

    1. ROS の初期化を行う
    2. データベースへの接続を構築するPostgresqlDatabaseオブジェクトを初期化するdatabaseBindingオブジェクトを作成します
    3. PostgresqlDatabase::listenToChannel(std::string channel)-関数を呼び出す
    4. PostgresqlDatabase::checkNotify(notification &no)-関数を使用して定期的に NOTIFY をチェックするループに入ります

いくつかのコード

NOTIFY の確認

1 秒あたり約 5 回トリガーされる checkNotify 関数:

チャンネルを聞く

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

c++ - libpqを使用してdouble値を取得するには?

libpq ドキュメントの例は、整数値をホスト エンディアン表現に変換して取得する方法を示しています。

libpq を使用して (libpqtyppes なしで) 倍精度値を取得するにはどうすればよいですか? 私はreinterpret_cast運がないことを試みました。

また、なぜテキストとバイトデータはエンディアン変換を必要としないのですか?

DB は Windows 7 でローカルに実行されます。私は Visual C++ 2013 を使用しています。

pptr私が取得しようとしている二重値です。

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

postgresql - libpq での SO_REUSEADDR の設定

ライブラリが開くソケットのオプションlibpqを設定するようにライブラリに指示する方法はありますか?SO_REUSEADDR

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

qt - libpq へのリンクが未解決のシンボル _PQconnectdb で失敗しました

Qt5、msvc2010、windows7 64bit を使用しています。

libpq.lib をリンクできるかどうかをテストしたい。

http://www.postgresql.org/docs/9.2/static/libpq-example.html

上記の例を QtCreator でビルドします。

そして得る

error LNK2019: unresolved external symbol _PQconnectdb in function "_main"

libpq.lib の使用を確認しますdumpbin libpq.lib /exports

そして得る

Windows ライブラリ (*.lib) の内容を表示する方法

なので差はありPQconnectdb and _PQconnectdbます。

リンカーが実際のシンボル PQconnectdb を見つけられないようにするアンダースコアですか? コンパイラがシンボルにアンダースコアを追加するのはなぜですか?

どうすればこの問題を解決できますか?

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

postgresql - create function 未終了のドル引用文字列

postgres ( pq lib ) データベースを使用してGooseでこの関数を作成しようとしています。

私のコードは次のとおりです。

私がしようとするgoose upと、エラーが発生します:

Goose は基本的にライブラリ エラーをエコーするpqので、Goose ではなく pq-library にあると思います。pgAdmin III でクエリが正常に実行されます。

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

postgresql - 「libpq」を使用して、PostgreSQL の SELECT クエリに含まれるすべてのテーブルを取得します

libpq でクエリされたすべてのテーブルの名前または (Oid の) を取得することは可能ですか? 一般的な標準SQLの方法が存在する場合、私はそれを好みます。

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

c - Julia: Ptr{Void} ファイナライザ エラー

Julia について勉強していて、libpq (PostgreSQL C ライブラリ) ラッパーを書こうとしています。

CPQconnectdb関数は PostgreSQL 接続を開始し、接続構造体へのポインターを返します。接続構造体は、役に立たないため、libpq によって公開されません。接続が終了したら、C 関数を使用して接続を閉じる必要があります。この関数PQfinishは、とりわけ、構造体メモリを解放するように注意します。

したがって、接続がGCによってファイナライズされたときに関数を呼び出す必要があると思いますPQfinish。これは、次のコードの目的です(Juliaバージョン: 0.3.0-744~ubuntu13.10.1):

しかし、私はこのエラーが発生します:

タイプエイリアスに別のタイプを使用する必要があると思いますPGconnが、どのタイプかわかりません。何か案が?