{-# LANGUAGE FlexibleContexts #-}
module Database.HDBC.Record.Delete (
PreparedDelete, prepare, prepareDelete, withPrepareDelete,
runPreparedDelete, runDelete
) where
import Database.HDBC (IConnection, SqlValue)
import Database.Relational (Delete)
import Database.Record (ToSql)
import Database.HDBC.Record.Statement
(prepareNoFetch, withPrepareNoFetch, PreparedStatement, executeNoFetch, runNoFetch)
type PreparedDelete p = PreparedStatement p ()
prepare :: IConnection conn
=> conn
-> Delete p
-> IO (PreparedDelete p)
prepare :: forall conn p.
IConnection conn =>
conn -> Delete p -> IO (PreparedDelete p)
prepare = forall (s :: * -> *) conn p.
(UntypeableNoFetch s, IConnection conn) =>
conn -> s p -> IO (PreparedStatement p ())
prepareNoFetch
prepareDelete :: IConnection conn
=> conn
-> Delete p
-> IO (PreparedDelete p)
prepareDelete :: forall conn p.
IConnection conn =>
conn -> Delete p -> IO (PreparedDelete p)
prepareDelete = forall conn p.
IConnection conn =>
conn -> Delete p -> IO (PreparedDelete p)
prepare
withPrepareDelete :: IConnection conn
=> conn
-> Delete p
-> (PreparedDelete p -> IO a)
-> IO a
withPrepareDelete :: forall conn p a.
IConnection conn =>
conn -> Delete p -> (PreparedDelete p -> IO a) -> IO a
withPrepareDelete = forall (s :: * -> *) conn p a.
(UntypeableNoFetch s, IConnection conn) =>
conn -> s p -> (PreparedStatement p () -> IO a) -> IO a
withPrepareNoFetch
runPreparedDelete :: ToSql SqlValue p
=> PreparedDelete p
-> p
-> IO Integer
runPreparedDelete :: forall p. ToSql SqlValue p => PreparedDelete p -> p -> IO Integer
runPreparedDelete = forall p. ToSql SqlValue p => PreparedDelete p -> p -> IO Integer
executeNoFetch
runDelete :: (IConnection conn, ToSql SqlValue p)
=> conn
-> Delete p
-> p
-> IO Integer
runDelete :: forall conn p.
(IConnection conn, ToSql SqlValue p) =>
conn -> Delete p -> p -> IO Integer
runDelete = forall (s :: * -> *) conn a.
(UntypeableNoFetch s, IConnection conn, ToSql SqlValue a) =>
conn -> s a -> a -> IO Integer
runNoFetch