問題タブ [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.
c - libpq を使用して postgreSQL サーバーに接続できない
私はPostgreSQLを学ぼうとしている完全な初心者です。libpq を使用して C プログラムを介して postgres サーバーに接続しようとしています。
サーバーのステータスは次のとおりです。
コンパイルするときは、次を使用します。
./a.out でプログラムを実行すると、次のように表示されます。
私は PQconnectdb を正しく使用していないと思いますが、他のことが原因である可能性があります。
ここに私のCファイルがあります:test.c
どんな入力でも大歓迎です、ありがとう!
理解した!
有効な hostaddr を使用していませんでした。私はそれを次のように置き換えました:
dbname=Project も削除しました。実行すると、次のようになります。
postgresql - SQL構文エラーまたはlibpqからの実行例外からエラー行/列番号を取得する方法は?
経由で SQL コマンドを実行すると、libpq
このようなエラーが発生するとエラー メッセージが表示されます。
これは文字列メッセージです。メッセージは非常に規則的であるため、行/列番号を取得するために解析できますが、それは信頼できません。行/列番号を取得するための他の API はありますか? 正規化された整数形式はどれでもいいでしょう。
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)
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 オブジェクトを保持します。主な機能
次のことを行います- ROS の初期化を行う
- データベースへの接続を構築するPostgresqlDatabaseオブジェクトを初期化するdatabaseBindingオブジェクトを作成します
PostgresqlDatabase::listenToChannel(std::string channel)
-関数を呼び出すPostgresqlDatabase::checkNotify(notification &no)
-関数を使用して定期的に NOTIFY をチェックするループに入ります
いくつかのコード
NOTIFY の確認
1 秒あたり約 5 回トリガーされる checkNotify 関数:
チャンネルを聞く
c++ - libpqを使用してdouble値を取得するには?
libpq ドキュメントの例は、整数値をホスト エンディアン表現に変換して取得する方法を示しています。
libpq を使用して (libpqtyppes なしで) 倍精度値を取得するにはどうすればよいですか? 私はreinterpret_cast
運がないことを試みました。
また、なぜテキストとバイトデータはエンディアン変換を必要としないのですか?
DB は Windows 7 でローカルに実行されます。私は Visual C++ 2013 を使用しています。
pptr
私が取得しようとしている二重値です。
postgresql - libpq での SO_REUSEADDR の設定
ライブラリが開くソケットのオプションlibpq
を設定するようにライブラリに指示する方法はありますか?SO_REUSEADDR
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 を見つけられないようにするアンダースコアですか? コンパイラがシンボルにアンダースコアを追加するのはなぜですか?
どうすればこの問題を解決できますか?
postgresql - 「libpq」を使用して、PostgreSQL の SELECT クエリに含まれるすべてのテーブルを取得します
libpq でクエリされたすべてのテーブルの名前または (Oid の) を取得することは可能ですか? 一般的な標準SQLの方法が存在する場合、私はそれを好みます。
c - Julia: Ptr{Void} ファイナライザ エラー
Julia について勉強していて、libpq (PostgreSQL C ライブラリ) ラッパーを書こうとしています。
CPQconnectdb
関数は PostgreSQL 接続を開始し、接続構造体へのポインターを返します。接続構造体は、役に立たないため、libpq によって公開されません。接続が終了したら、C 関数を使用して接続を閉じる必要があります。この関数PQfinish
は、とりわけ、構造体メモリを解放するように注意します。
したがって、接続がGCによってファイナライズされたときに関数を呼び出す必要があると思いますPQfinish
。これは、次のコードの目的です(Juliaバージョン: 0.3.0-744~ubuntu13.10.1):
しかし、私はこのエラーが発生します:
タイプエイリアスに別のタイプを使用する必要があると思いますPGconn
が、どのタイプかわかりません。何か案が?