relational-query-HDBC-0.6.0.1: 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

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.