{-# OPTIONS_HADDOCK hide #-}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE TemplateHaskell #-}
module Database.MSSQLServer.Query.Row ( Row (..)
, RowCount (..)
, ReturnStatus (..)
) where
import Database.Tds.Message
import Database.MSSQLServer.Query.Only
import Database.MSSQLServer.Query.Template
import Control.Monad(forM)
import Language.Haskell.TH (runIO,pprint)
newtype RowCount = RowCount Int
newtype ReturnStatus = ReturnStatus Int
mcdTypeInfo :: MetaColumnData -> TypeInfo
mcdTypeInfo :: MetaColumnData -> TypeInfo
mcdTypeInfo (MetaColumnData MCDUserType
_ MCDUserType
_ TypeInfo
ti Maybe MCDTableName
_ MCDTableName
_) = TypeInfo
ti
class Row a where
fromListOfRawBytes :: [MetaColumnData] -> [RawBytes] -> a
instance (Data a) => Row (Only a) where
fromListOfRawBytes :: [MetaColumnData] -> [RawBytes] -> Only a
fromListOfRawBytes [MetaColumnData
m1] [RawBytes
b1] = forall a. a -> Only a
Only a
d1
where
!d1 :: a
d1 = forall a. Data a => TypeInfo -> RawBytes -> a
fromRawBytes (MetaColumnData -> TypeInfo
mcdTypeInfo MetaColumnData
m1) RawBytes
b1
fromListOfRawBytes [MetaColumnData]
_ [RawBytes]
_ = forall a. HasCallStack => [Char] -> a
error [Char]
"fromListOfRawBytes: List length must be 1"