問題タブ [hdbc]

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

haskell - Haskellの同時DB接続プール

私はHaskellを学ぶJavaプログラマーです。
私はHappstackを使用し、HDBCを介してデータベースと通信する小さなWebアプリで作業しています。

select関数とexec関数を作成し、次のように使用します。

ご覧のとおり、非常にシンプルです。クエリパラメータ結果があります。
接続の作成とコミット/ロールバックはselectとexecの中に隠されています。
これは良いことです。「ロジック」コードでは気にしたくありません。

悪い点:

  • 呼び出しごとに常に新しい接続が作成されます-これにより、高負荷でのパフォーマンスが低下します
  • DBURL「users.db」はハードコードされています-編集せずに他のプロジェクトでこれらの関数を再利用することはできません

質問1:定義された(最小、最大)数の同時接続で接続のプールを導入して、接続がselect / exec呼び出し間で再利用されるようにするにはどうすればよいですか?

質問2:「users.db」文字列を構成可能にする方法は?(クライアントコードに移動する方法は?)

これは透過的な機能である必要があります。ユーザーコードは、明示的な接続処理/解放を必要としないはずです。

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

macos - Haskell、HDBC、ODBC、MySQL、および Mac OS X

Haskell (バージョン 6.10.3) と HDBC を使用して MySQL データベースに接続しようとしています。Haskell ODBC を使用することにしました。cabal を使用して HDBC (2.1.1) と HDBC-ODBC (2.1.0.0) をインストールしました。MySQL ODBC ドライバー (5.1.5) をダウンロードしてインストールしました。macports を使用して unixODBC (2.2.14_1) をインストールしました。これらすべてが Mac OS X (10.5.8) の上にあります。

私は主にこのページhttp://en.wikibooks.org/wiki/Haskell/Databaseの手順を使用しています。この時点で:

"# mysql ドライバーを odbcinst.ini ファイル ($ODBC_HOME/etc/ の下) に追加し、データ ソースを $HOME/.odbc.ini に追加します。"

unixODBC の macports バージョンは /opt/local/ の下にすべてをインストールするようです。/opt/local/etc/ に odbcinst.ini を配置し、ホーム ディレクトリに次のような .odbc.ini を作成しました (UID と USERNAME および PWD とパスワード):

そして、私はこのHaskellプログラムを書いてコンパイルしました:

「DSN=myodbc」の DSN を試すと、次のエラーが発生します。

ただし、「DSN=myodbc;UID=[hidden];PWD=[hidden]」という DSN を試すと、データベース内のすべてのテーブルが一覧表示されます。

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

haskell - FireBird データベース用の HDBC ドライバー

誰かが FireBird データベース用の HDBC(Haskell) ドライバーを教えてくれませんか? Google では何も見つかりませんでした。現時点で、HDBC-ODBC ブリッジを使用して Haskell プログラムから FireBird データベースに接続するのが最善の方法ですか?

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

mysql - MySQL接続がまだ生きているかどうかを判断する最も安価な方法

Web ベースのデータ サービス用の MySQL 接続のプールがあります。リクエストの処理を開始すると、使用するプールからの接続が必要になります。問題は、その特定の接続が使用されてからかなりの一時停止があった場合、サーバーがタイムアウトして終了した可能性があることです。プール管理コードでこれを検出できるようにしたいと思います。

秘訣は次のとおりです。私がコーディングしている環境では、接続への非常に抽象的な API しか提供されません。基本的にSQL文しか実行できません。実際のソケットにアクセスしたり、MySQL クライアント API に直接アクセスしたりすることはできません。

問題は、接続が機能しているかどうかを判断するために接続で実行できる最も安価な MySQL ステートメントは何かということです。たとえば、SELECT 1;うまくいくはずですが、もっと安いものがあるのだろうか?おそらく、ネットワークを経由することさえありませんが、MySQL クライアント ライブラリで処理され、同じ質問に効果的に答えるものでしょうか?

明確化: MySQL サーバーが実行されているかどうか、またはデータベース構成がクエリに応答するのに十分であるかどうかを確認することについては心配していません。それらがダウンしている場合、サービスが実行する後続の SQL は、適切なエラーを取得して処理します。私が本当に気にかけているのは、TCP 接続が開いているかどうかだけです。サーバーが接続を閉じた場合、Web サービスの SQL は「再接続してもう一度やり直してください」という意味のエラーを受け取ります。サービスコードのくず。

クロージャ:ハック/* ping */はまさに​​私が探していたものですが、残念ながら JDBC 経由でしか利用できません。そのハックのドキュメントを読むと、私が欲しかったのとまったく同じ理由でそこに置かれたことは明らかです. 興味深いことに、私はHDBCHDBC-mysqlを使用してHaskelで作業しています。HDBC-mysql の作成者に、直接または同様のハックを介して呼び出す方法を追加するよう依頼するつもりです。mysql_ping()

Vlad のDO 1ものも私が求めていたものでした。他のハックは JDBC 以外では利用できないため、私はそれを使用します。

素晴らしい議論、特に @Vlad に感謝します!

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

mysql - mysqlで使用するために時間を変換する

タイムスタンプをmysqlにロードしようとしています。私の時間はすべてUTCTimeオブジェクトです。HDBC mysqlの実装は、UTCTimeオブジェクトを好まないようですが、内部的には、ドキュメントには、常にUTC時間であるかのように扱われると記載されています。HDBC mysql実装がSqlEpochTimeのバインドをサポートしているように見えるので、UTCTimeをEpochTimeに変換する必要があると思います。UTCTimeを取得してEpochTimeを取得する方法を理解できませんでした。

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

haskell - HaskellHDBC-Sqlite3は常にSqlByteString値を返します

私はHDBCsqlite3haskellドライバーを使用してローカルsqlite3データベースにアクセスしています。

そしてその結果、例えば

私はいつも次のような結果を得ています:

それは変だ!はい、タイトルには「国」の記号が含まれています。はい、idタイプはINTEGER。です。

したがって、質問は次のとおりです。

  1. 1つのUnicodeシンボルが2つのASCIIのようなシンボルとして脅かされるのはなぜですか?
  2. 整数列がバイト文字列値になるのはなぜですか?
0 投票する
1 に答える
1159 参照

haskell-platform - HDBC -odbc haskell で接続

Haskellでdbに接続したいので、cabalを使ってHDBC-ODBC、HSQL-ODBC、HDBC-mysqlをインストールしようとしましたが、sqlite3の設定はできましたが、これらのパッケージを追加するにはどうすればよいですか? cabal を使用してインストールしようとすると、このエラーが発生します

これには何ができますか?

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

haskell - HDBCを読み込めません-postgresql

私はWindowsXPを使用しています。このページの手順に従ってYesodをインストールしました:http ://www.yesodweb.com/page/five-minutes

Postgresqlの永続性を備えたスキャフォールドアプリケーションを作成しました。初めて「yesoddevel」を実行したときに、postgresqlパッケージが見つからないというエラーが表示されたので(名前は覚えていません)、cabalを使用してインストールしました。「yesoddevel」を実行すると、以下のエラーが発生します。

HDBC-postgresql-2.2.3.3をインストールし、-extra-lib-dirsをすべてのDLLでpostgresqlのbinフォルダーに設定してインストールしましたが、役に立ちませんでした。

私が理解している限り、それはpq.dllをロードしようとしていますが、システムにそれがなく、libpq.dllがあるので、dllの名前を変更しようとしましたが無駄になりました。迷っています。

助けてください

コンスタンチン

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

postgresql - Database.HaskellDB.HDBC.PostgreSQL モジュールで postgresqlConnect を使用するにはどうすればよいですか?

postgresqlConnectモジュールの関数を使用Database.HaskellDB.HDBC.PostgreSQLして PostgreSQL データベースに接続する方法がよくわかりません。Haddock のドキュメント ページには、型シグネチャのみが記載されています。

あるべきものは何aですか?

を使用して PostgreSQL サーバーに接続するにはどうすればよいpostgresqlConnectですか?

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

mysql - HDBC-mysql「コマンドが同期していません」

Snap 0.6 と Snaplet-hdbc インフラストラクチャを使用して Web アプリを作成しています。バックエンドでは、HDBC-mysql を使用して MySQL に接続しています。しかし、アプリを実行すると、MySQL から「コマンドが同期されていません。現在、このコマンドを実行できません」というエラーが表示されます。各クエリに「withTransaction」を使用しています。グーグルで調べたところ、MySQL は複数のクエリをサポートしていないようです。しかし、HDBC を使用してそれを回避するにはどうすればよいでしょうか?