| Copyright | 2013 Kei Hibino |
|---|---|
| License | BSD3 |
| Maintainer | ex8k.hibino@gmail.com |
| Stability | experimental |
| Portability | unknown |
| Safe Haskell | None |
| Language | Haskell2010 |
Database.HDBC.Record.Statement
Description
This module provides typed statement running sequence which intermediate structres are typed.
- data PreparedStatement p a
- untypePrepared :: PreparedStatement p a -> Statement
- unsafePrepare :: IConnection conn => conn -> String -> IO (PreparedStatement p a)
- finish :: PreparedStatement p a -> IO ()
- withUnsafePrepare :: IConnection conn => conn -> String -> (PreparedStatement p a -> IO b) -> IO b
- withPrepareNoFetch :: (UntypeableNoFetch s, IConnection conn) => conn -> s p -> (PreparedStatement p () -> IO a) -> IO a
- data BoundStatement a = BoundStatement {}
- bind' :: RecordToSql SqlValue p -> PreparedStatement p a -> p -> BoundStatement a
- bind :: ToSql SqlValue p => PreparedStatement p a -> p -> BoundStatement a
- bindTo :: ToSql SqlValue p => p -> PreparedStatement p a -> BoundStatement a
- data ExecutedStatement a
- executed :: ExecutedStatement a -> Statement
- result :: ExecutedStatement a -> Integer
- execute :: BoundStatement a -> IO (ExecutedStatement a)
- prepareNoFetch :: (UntypeableNoFetch s, IConnection conn) => conn -> s p -> IO (PreparedStatement p ())
- executeNoFetch :: BoundStatement () -> IO Integer
- runPreparedNoFetch :: ToSql SqlValue a => PreparedStatement a () -> a -> IO Integer
- runNoFetch :: (UntypeableNoFetch s, IConnection conn, ToSql SqlValue a) => conn -> s a -> a -> IO Integer
- mapNoFetch :: (UntypeableNoFetch s, IConnection conn, ToSql SqlValue a) => conn -> s a -> [a] -> IO [Integer]
Documentation
data PreparedStatement p a Source #
Typed prepared statement type.
untypePrepared :: PreparedStatement p a -> Statement Source #
Unsafely untype prepared statement.
Arguments
| :: IConnection conn | |
| => conn | Database connection |
| -> String | Raw SQL String |
| -> IO (PreparedStatement p a) | Result typed prepared query with parameter type |
Run prepare and unsafely make Typed prepared statement.
finish :: PreparedStatement p a -> IO () Source #
Close PreparedStatement. Useful for connection pooling cases.
Arguments
| :: IConnection conn | |
| => conn | Database connection |
| -> String | Raw SQL String |
| -> (PreparedStatement p a -> IO b) | |
| -> IO b |
Bracketed prepare operation. Unsafely make Typed prepared statement.
withPrepareNoFetch :: (UntypeableNoFetch s, IConnection conn) => conn -> s p -> (PreparedStatement p () -> IO a) -> IO a Source #
Bracketed prepare operation.
Generalized prepare inferred from UntypeableNoFetch instance.
data BoundStatement a Source #
Typed prepared statement which has bound placeholder parameters.
Constructors
| BoundStatement | |
Arguments
| :: RecordToSql SqlValue p | Proof object to convert from parameter type |
| -> PreparedStatement p a | Prepared query to bind to |
| -> p | Parameter to bind |
| -> BoundStatement a | Result parameter bound statement |
Typed operation to bind parameters.
bind :: ToSql SqlValue p => PreparedStatement p a -> p -> BoundStatement a Source #
Typed operation to bind parameters. Infered RecordToSql is used.
bindTo :: ToSql SqlValue p => p -> PreparedStatement p a -> BoundStatement a Source #
Same as bind except for argument is flipped.
data ExecutedStatement a Source #
Typed executed statement.
executed :: ExecutedStatement a -> Statement Source #
Untyped executed statement.
result :: ExecutedStatement a -> Integer Source #
Result of HDBC execute.
execute :: BoundStatement a -> IO (ExecutedStatement a) Source #
Typed execute operation.
prepareNoFetch :: (UntypeableNoFetch s, IConnection conn) => conn -> s p -> IO (PreparedStatement p ()) Source #
Generalized prepare inferred from UntypeableNoFetch instance.
executeNoFetch :: BoundStatement () -> IO Integer Source #
Typed execute operation. Only get result.
runPreparedNoFetch :: ToSql SqlValue a => PreparedStatement a () -> a -> IO Integer Source #
Bind parameters, execute statement and get execution result.
runNoFetch :: (UntypeableNoFetch s, IConnection conn, ToSql SqlValue a) => conn -> s a -> a -> IO Integer Source #
Prepare and run sequence for polymorphic no-fetch statement.
mapNoFetch :: (UntypeableNoFetch s, IConnection conn, ToSql SqlValue a) => conn -> s a -> [a] -> IO [Integer] Source #
Prepare and run it against each parameter list.