relational-query-HDBC-0.3.0.0: HDBC instance of relational-query and typed query interface for HDBC

Copyright2013 Kei Hibino
LicenseBSD3
Maintainerex8k.hibino@gmail.com
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

Database.HDBC.Record.Statement

Description

This module provides typed statement running sequence which intermediate structres are typed.

Synopsis

Documentation

data PreparedStatement p a Source

Typed prepared statement type.

untypePrepared :: PreparedStatement p a -> Statement Source

Unsafely untype prepared statement.

unsafePrepare Source

Arguments

:: IConnection conn 
=> conn

Database connection

-> String

Raw SQL String

-> IO (PreparedStatement p a)

Result typed prepared query with parameter type p and result type a

Run prepare and unsafely make Typed prepared statement.

finish :: PreparedStatement p a -> IO () Source

Close PreparedStatement. Useful for connection pooling cases.

withUnsafePrepare Source

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 

Fields

bound :: Statement

Untyped prepared statement before executed.

params :: [SqlValue]

Bound parameters.

bind' Source

Arguments

:: RecordToSql SqlValue p

Proof object to convert from parameter type p into SqlValue list.

-> 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.