an object representing a JDBC Prepared statement
this class emulates named (:param) parameters and accepts binding arguments
keyed using either the named parameter, if it exists or the position of the
argument using its index number. Positional binding works regardless of whether
the query was constructed using named parameters.
CompiledStatement objects are bound to the JDBC connection they were created from,
and are closed when an exception occurs. Otherwise, a compiled statement may be
reused. Bindings are saved between executions, so once bound may be used without
rebinding, or may be rebound as necessary. See bind, clear_parameters,
Sql.Sql.compile_query.