問題タブ [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 投票する
2 に答える
1806 参照

c - Sqlite外部キー

HDBC-sqlite3haskellライブラリを使用して外部キーを有効にしようとしています。このライブラリは少しヘルパーc-関数を使用します

これは順番にsqlite3_open1つを呼び出します。sqliteのドキュメントで、外部キーを有効にすることになっている素晴らしいsqlite3_db_config関数を見つけました。それをテストするために、私はすぐに2行を追加しましたsqlite3_open2(リストの最後の2行):

私の驚きは結果でした:Foreign Keys: ON/OFF:0 ERR:1

誰かが私に何が間違っているのか、または外部キーを有効にする適切な方法は何であるかについてのヒントを教えてもらえますか?

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

haskell - (予期しないSQL_NO_TOTAL)4096バイトを超えるテキストフィールドでのエラー

バグレポートを提出しました:https ://github.com/hdbc/hdbc-odbc/issues/4

しかし、これはhdbc-odbcの問題ではない可能性があるため、ここでも質問します。

OS:linux 64ビット(archlinux)、ghc-7.4.1、hdbc-odbc-2.3.1.0

MSSQLサーバー2005に接続しています。

4096バイトを超えるテキストフィールドを取得しています。

unixodbc2.3.0およびfreetds0.82では正常に機能します

unixodbc2.3.1およびfreetds0.91では、「予期しないSQL_NO_TOTAL」というエラーが発生します。

tsqlユーティリティは、freetds0.91で大きなテキストフィールドを取得して表示します。

最新のfreetds、大きなテキストフィールド、MS SQLサーバーに問題があった人はいますか?

編集:大きなテキストフィールドの正しい処理をhdbc-odbcに追加しました。パッチはここにあります: https ://github.com/vagifverdi/hdbc-odbc/commit/8134f715c18a0d60cc7b0329c7c2dbfee3e3e932

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

haskell - Haskell HDBC メモリ リーク

先日、リソース プールと HDBC をまとめてみましたが、クエリごとにメモリが増え続けていることに気付きました。次に、できるだけ少ない関数を使用して簡単なテスト コードを作成し、次のようにしました。

コード全体: http://upaste.me/40f2229cef7157f

チェック関数を再帰するたびに、プログラムはより多くのメモリを使用します。結果は新しい再帰呼び出しでガベージコレクションされるべきではありませんか、それとも「必要な」場合に備えてプログラムがその関数を終了するまでメモリに残りますか?

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

haskell - Haskell 算術演算と任意/固定精度数値の DB 永続性

Haskell (GHC プラットフォーム) の初心者として、通貨/通貨操作を含むビジネス ドメインに関連するデータ型と算術演算の問題に遭遇し、解決策を探しています。

私は、(独立した)会計モジュールと(Webサービスを介して)インターフェースすることになっているアプリケーションを開発していますが、同時に、別のデータベース(PostgreSQL)に保存されているアドホックデータ入力用の(Web)ユーザーインターフェースを持っています。

私は C#/F# 環境から来ており、System.Decimal はそこでのコア ニーズをすべてカバーしています。私が間違っている場合は訂正してください。ただし、Haskell には、同等と見なされる統合された (デフォルトの) データ型がないようです。

理想的な選択は、任意精度の演算を提供するデータ型、または少なくとも Decimal128 (IEEE 754) の行にあるデータ型です。型は、丸め (最も近いものへの結合、ゼロからの結合、可能であれば偶数への結合) と、加算、減算、乗算、除算 (理想的には平方根も) をサポートする必要があります。型間の変換もサポートする必要があります。

私が見つけたものから、Hackageには計算を正確に実行することになっている2つのHaskellモジュールがあります-Data.FixedとData.Decimal(ちなみに、Haskellでカスタムリテラルを作成する方法はありますか-たとえば、123.45mをコピーしますF# から ?)。少なくとも後者は、(簡単なテストの後)私が知る限り、前の段落で説明したもののほとんどを有効にしますが、DB(Persistent / HDBC経由のPostgreSQL)とWebフレームワーク(YESOD)を追加するとミックスのものはそれほど桃色に見えません。そこでのサポートは不足しているようです。

私が説明したことをエンドツーエンド(データ入力=>データ処理=>ストレージ)で最小限の摩擦で可能にする他の組み合わせはありますか(たとえば、DBからロードした後の文字列からの手動キャストは、本当に強く型付けされた言語を持つのは奇妙に思えます)精度を失うことなく(任意のポインターを歓迎します)?

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

haskell - Haskell には、ActiveRecord や Sequel のような SQL クエリ作成ライブラリがありますか?

Ruby の ActiveRecord またはSequelを使用すると、SQL クエリを段階的に構築し、実行時の条件に応じて or 句をwhereクエリに追加joinできます。order

ASCIIcastsから取った簡単な例を次に示します。

この例は、 equalsarticlesという名前の HTTP 要求クエリ パラメーターの場合に、テーブルの基になる SQL クエリに WHERE 句を追加する方法を示しています。hidden1

Haskell で HDBC と postgresql-simple を見てきました。postgresql-simple は、SQL インジェクションを防ぐために、動的に連結された部分から SQL クエリを構築することを意図的に難しくしているようです。HDBC は、実行時の条件に基づいて異なる構造の SQL クエリを構築するのに十分柔軟であるように見えますが、ActiveRecord または Sequel が提供する抽象化のレベルを提供していないようです。

Haskell データベース ライブラリの 1 つを使用して、ActiveRecord の動的クエリ構築機能をエミュレートする良い方法を誰か提案できますか?

HDBC が適している場合は、それで問題ありません。しかし、イラストをいただければ幸いです。

私が探しているのは、PostgreSQL バックエンドに対して動的にクエリを作成する機能だと思います。

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

database - プログラム内から HDBC / Haskell を使用して SQLite3 データベースに複数のエントリを追加する

Database.HDBC と Database.HDBC.Sqlite3 を使用しようとしています。

テーブルを SQLite3 データベースに追加するには、GHCI に次のようなコマンドを入力します。

文字列のリストを使用して、プログラム内からテーブル名をデータベースに追加したいと考えています。

これは私が扱っている変数です:

テーブルは、私が作成した addTables という関数に渡されます。

しかし、私のaddTables関数はこのエラーを返します:

Haskell は、何も出力しないリスト内包表記を好まないのではないでしょうか?

ヘルプや提案をいただければ幸いです。

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

haskell - HDBC-ODBCSQLServerはquickQueryの後にコミットする必要があります

ODBCを使用してローカルSQLServerに接続するHDBCへの最初のステップを示しています。

接続した後quickQuery、私はそれをすることができませんclose。私はcommit最初に実行する必要があります。

これは本来あるべき姿ですか?commitクエリのみを実行しているのになぜ必要なのですか?

GHCiについて:

行を削除するとcommit conn、例外が発生します。

メッセージはポルトガル語で、「無効なトランザクション状態」を意味します。

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

haskell - 「Convertible SqlValue UTCTime」がありませんか?

SqlValue私は aを次のように変換しようとしていましたUTCTime:

ConvertibleしかしGHCは、これを行うためのインスタンスが不足していると不平を言っています:

HDBCのソース コードを見ると、のインスタンスUTCTimeがあります。

何か不足していますか?

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

mysql - HDBC ODBC MySQL - クエリはコンパイル時にのみ失敗します

私のプログラムは runghc で実行されますが、「クエリ中に MySQL サーバーへの接続が失われました」というエラーでコンパイルされると、同じプログラムが一貫して失敗します。この失敗は、実行時間の長いクエリには関連付けられていません (小さなテーブルでの CREATE VIEW です)。MySQL エラー ログには何も記録されておらず、log_warnings=1 です。環境 - ubuntu (13.04 ;-)、ローカル データベース)

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

ado.net - F# の Haskell HDBC エレガンス?

Haskell の簡潔さと優雅さに感銘を受けました。しかし、私は .Net ハウスで働いているので、F# を使いこなせるときは F# を使用しています。全国で F# を使用しているのは、おそらく私だけです。

ADO.NET または F# は、HDBC のように簡潔でエレガントなものを提供しますexecuteManyか? 私はReal World Haskellを通り抜けています。第21章では、次の例を提供しています。

F# でこの優雅さと簡潔さを実現したいと考えています。SQL インジェクション攻撃を回避するためにパラメーター化されたクエリを使用するという誇大宣伝をたくさん見てきました。この場合、次の 3 つの理由でそれらを使用していません。

  1. .Net のパラメーター化されたクエリは見苦しく、負担が大きいと思います。
  2. 私のデータは本社からのものなので、(ほとんど) クリーンです。
  3. 私のテーブルには34列あります。クエリを 34 列でパラメータ化するという考えは大嫌いです。

これが私のF#コードです:

セキュリティ上の理由から、テーブルのフィールドの名前を変更しました。

テーブルのすべてのフィールドはテキストであるため、それらを簡単に Array.map してエスケープし、値を引用することができます。

2 つのテーブルのそれぞれに 1 日あたり 9,000 から 10,000 レコードをインポートするので、これをできるだけ効率的に行いたいと考えています。したがって、executeManyHaskell に興味があります。とはいえ、パラメーター化されたクエリの背後にあるアイデアも好きですし、Hasell がそれらを実装する方法も気に入っています。F# の簡潔さと優雅さに相当するものはありますか?