[SIMILAR] WITH 43139 hdbc WITH 39263 odbc WITH 22494 printwithlen WITH 21640 nullptr WITH 16283 database WITH 15241 unixodbc WITH 15241 sqldriverconnect WITH 14319 qualified WITH 13911 connector WITH 13911 connectodbc WITH 12535 connection WITH 11917 conn WITH 8640 000000000 WITH 8317 mysql WITH 7748 quickquery WITH 7748 noprompt WITH 7748 checkerror WITH 7748 dbchandle WITH 7748 fdbcptr WITH 7620 dbcptr WITH 7438 catchsql WITH 7438 sqlstring WITH 7438 fromintegral WITH 6955 putstrln WITH 6812 mapm WITH 6590 hsc WITH 6198 bracket WITH 6058 てmy WITH 5926 disconnect WITH 5551 process WITH 5064 import WITH 4605 orig の検索結果 35 件中 1 - 10 件目 (0.023997378 秒)
HDBC-1.0.1.0を使ってMySQL 5.0.24に接続するテスト。HDBCにはMySQLのドライバが無いので、unixODBCを使ってODBC経由で接続します。 unixODBCは2.2.11、mysql-connector-odbcは3.51.12、HDBC-ODBCは1.0.1.0を使います。 import IO import qualified Database.HDBC as DB import qualified Database.HDBC.ODBC a ...
ライブラリ側の対応も進んできたようなので、GHC 6.6を入れてみました。 Crypto FastCGI HDBC HDBC-ODBC HTTP NewBinary などは(一部fpsに依存している部分があったのでcabalファイルを修正しましたが)問題なく入りました。Streams-0.21は色々とパッチを当てる必要があります。0.1eはそのまま入るようです。 ...
# (スコア:5159)
Invalid TextNewCGIはCGIモナドで、DBのアクセスはIOモナドの中で行われるので、もはや関数型というよりは単なる手続き型にしか見えません… import Control.Monad.Trans import Data.Maybe import qualified Database.HDBC as DB import qualified Database.HDBC.ODBC as ODBC import IO import Network.NewCGI ...
# (スコア:4010)
HSQL-1.7を使ってMySQL 5.0.24に接続してみるテスト。 module Main where import IO import qualified Database.HSQL as DB import qualified Database.HSQL.MySQL as MySQL host = "localhost" db = "test" user = "root" password = "password" main :: IO () main = process `DB.catchSql` print where proc ...
# (スコア:3344)
Haskellにはバイナリを読み書きする時に使えるBitSyntaxというライブラリがあります。rubyで言うところのpackとかunpackに近いでしょうか。パースする時には返り値の型が引数に依存するので、その部分のコードはTemplate Haskellになっています。例えば、tzfile形式のファイルをパースするならこんな感じになり ...
# (スコア:2025)
Invalid Textたとえば、HDBCを使うときに普通にIOモナドの中から直接扱うには、 f :: IO () f = bracket (connectODBC dsn) (disconnect) (\conn -> ...) のようにすればOKです。ところがこれをIOモナドを合成するモナドの中で扱うとすると、bracketの型がIO a -> (a -> IO b) -> (a -> IO c) -> IO cなのでbra ...
# (スコア:1925)
Invalid TextData Familiesは、型パラメータに依って実装を変えたいときに使えます。C++のテンプレートでの特殊化みたいなものでしょうか。 {-# LANGUAGE TypeFamilies #-} import qualified Data.Sequence as Seq data family Vector a -- BoolのVectorはリストで表現 data instance Vector Bool = BoolVector ...
# (スコア:1712)
上の例だと、GADTを使っても同じような事ができます。 {-# LANGUAGE GADTs #-} import qualified Data.Sequence as Seq data Vector a where BoolVector :: [Bool] -> Vector Bool IntVector :: Seq Int -> Vector Int add :: a -> Vector a -> Vector a add v (BoolVector l) = BoolVector $ v:l add v (IntVe ...
# (スコア:1712)
SMPやHTなPCだとWin-TAPのドライバが時々ハングってしまう(ホストごとお亡くなりになってしまう)ので、brigedにしてみました。 default.colinux.xmlのネットワークの設定を以下のように変更します。 <network index="0" name="Intel(R) PRO/100 VE Network Connection" type="bridged"></network> coLinuxのイ ...
# (スコア:1499)
{-# OPTIONS_GHC -fallow-overlapping-instances #-} import Network.NewCGI main :: IO () main = runCGI (handleErrors cgiMain) cgiMain :: CGI CGIResult cgiMain = do setHeader "Content-Type" "text/plain; charset=us-ascii" output "Hello, world!" ちなみに、NewCGIには以下のパッチを当てないとビル ...
# (スコア:1170)
# (スコア:10000)