Haskell での最初のプロジェクトとして、パーサー + SQLite データ インポーターを移植しています。私は解析部分に parsec を使用しており、データベースにデータを挿入するジョブを実行する SQLite クエリをピットアウトする変換関数を使用しています。
現在、パーセックパーサーを使用しているため、結果のデータのタイプは次のとおりです。
IO (Either ParseError [(String, [SqlValue])])
これはデータのサンプルです
Right ("INSERT OR REPLACE INTO utterances
(id,name,filelength,updated_at,checksum_algorithm, checksum) VALUES (ifnull(NULL,
(select id from utterances where name = ?)) , ? ,?, datetime(),'MD5',?);",[SqlString
"testdata/testdata.TextGrid",SqlString "testdata/testdata.TextGrid",SqlDouble
1.0,SqlString "FAKE"])
ここで、単一のトランザクションでクエリを実行する必要がありますが、データが IO (どちらか xa)) パッケージにある場合、どうすればよいでしょうか?
私が言ったように、私は Haskell に非常に慣れていないので、ここで得られるすべての助けに感謝します