Trait odbc_api::ParameterCollection [−][src]
pub unsafe trait ParameterCollection {
fn parameter_set_size(&self) -> u32;
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>;
}SQL Parameters used to execute a query.
ODBC allows to place question marks (?) in the statement text as placeholders. For each such
placeholder a parameter needs to be bound to the statement before executing it.
Examples
This trait is implemented by single parameters.
use odbc_api::Environment; let env = unsafe { Environment::new()? }; let mut conn = env.connect("YourDatabase", "SA", "<YourStrong@Passw0rd>")?; let year = 1980; if let Some(cursor) = conn.execute("SELECT year, name FROM Birthdays WHERE year > ?;", &year)? { // Use cursor to process query results. }
Tuples of Parameters implement this trait, too.
use odbc_api::Environment; let env = unsafe { Environment::new()? }; let mut conn = env.connect("YourDatabase", "SA", "<YourStrong@Passw0rd>")?; let too_old = 1980; let too_young = 2000; if let Some(cursor) = conn.execute( "SELECT year, name FROM Birthdays WHERE ? < year < ?;", (&too_old, &too_young), )? { // Use cursor to congratulate only persons in the right age group... }
And so do array slices of Parameters.
use odbc_api::Environment; let env = unsafe { Environment::new()? }; let mut conn = env.connect("YourDatabase", "SA", "<YourStrong@Passw0rd>")?; let params = [1980, 2000]; if let Some(cursor) = conn.execute( "SELECT year, name FROM Birthdays WHERE ? < year < ?;", ¶ms[..])? { // Use cursor to process query results. }
Required methods
fn parameter_set_size(&self) -> u32[src]
Number of values per parameter in the collection. This can be different from the maximum
batch size a buffer may be able to hold. Returning 0 will cause the the query not to be
executed.
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
Safety
Implementers should take care that the values bound by this method to the statement live at
least for the Duration of self. The most straight forward way of achieving this is of
course, to bind members.
Implementations on Foreign Types
impl ParameterCollection for ()[src]
impl ParameterCollection for ()[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<A: Parameter> ParameterCollection for (A,)[src]
impl<A: Parameter> ParameterCollection for (A,)[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<A: Parameter, B: Parameter> ParameterCollection for (A, B)[src]
impl<A: Parameter, B: Parameter> ParameterCollection for (A, B)[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<A: Parameter, B: Parameter, C: Parameter> ParameterCollection for (A, B, C)[src]
impl<A: Parameter, B: Parameter, C: Parameter> ParameterCollection for (A, B, C)[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter> ParameterCollection for (A, B, C, D)[src]
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter> ParameterCollection for (A, B, C, D)[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter> ParameterCollection for (A, B, C, D, E)[src]
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter> ParameterCollection for (A, B, C, D, E)[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter, F: Parameter> ParameterCollection for (A, B, C, D, E, F)[src]
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter, F: Parameter> ParameterCollection for (A, B, C, D, E, F)[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter, F: Parameter, G: Parameter> ParameterCollection for (A, B, C, D, E, F, G)[src]
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter, F: Parameter, G: Parameter> ParameterCollection for (A, B, C, D, E, F, G)[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter, F: Parameter, G: Parameter, H: Parameter> ParameterCollection for (A, B, C, D, E, F, G, H)[src]
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter, F: Parameter, G: Parameter, H: Parameter> ParameterCollection for (A, B, C, D, E, F, G, H)[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter, F: Parameter, G: Parameter, H: Parameter, I: Parameter> ParameterCollection for (A, B, C, D, E, F, G, H, I)[src]
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter, F: Parameter, G: Parameter, H: Parameter, I: Parameter> ParameterCollection for (A, B, C, D, E, F, G, H, I)[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter, F: Parameter, G: Parameter, H: Parameter, I: Parameter, J: Parameter> ParameterCollection for (A, B, C, D, E, F, G, H, I, J)[src]
impl<A: Parameter, B: Parameter, C: Parameter, D: Parameter, E: Parameter, F: Parameter, G: Parameter, H: Parameter, I: Parameter, J: Parameter> ParameterCollection for (A, B, C, D, E, F, G, H, I, J)[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<T> ParameterCollection for &[T] where
T: InputParameter, [src]
impl<T> ParameterCollection for &[T] where
T: InputParameter, [src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
Implementors
impl ParameterCollection for &ColumnarRowSet[src]
impl ParameterCollection for &ColumnarRowSet[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl ParameterCollection for &TextRowSet[src]
impl ParameterCollection for &TextRowSet[src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>
impl<T> ParameterCollection for T where
T: Parameter, [src]
impl<T> ParameterCollection for T where
T: Parameter, [src]fn parameter_set_size(&self) -> u32[src]
unsafe fn bind_parameters_to(
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>[src]
self,
stmt: &mut StatementImpl<'_>
) -> Result<(), Error>