Struct tiberius::Query

source ·
pub struct Query<'a> { /* private fields */ }
Expand description

A query object with bind parameters.

Implementations§

source§

impl<'a> Query<'a>

source

pub fn new(sql: impl Into<Cow<'a, str>>) -> Self

Construct a new query object with the given SQL. If the SQL is parameterized, the given number of parameters must be bound to the object before executing.

The sql can define the parameter placement by annotating them with @PN, where N is the index of the parameter, starting from 1.

source

pub fn bind(&mut self, param: impl IntoSql<'a> + 'a)

Bind a new parameter to the query. Must be called exactly as many times as there are parameters in the given SQL. Otherwise the query will fail on execution.

source

pub async fn execute<'b, S>( self, client: &'b mut Client<S> ) -> Result<ExecuteResult>where S: AsyncRead + AsyncWrite + Unpin + Send,

Executes SQL statements in the SQL Server, returning the number rows affected. Useful for INSERT, UPDATE and DELETE statements. See Client#execute for a simpler API if the parameters are statically known.

Example
let mut query = Query::new("INSERT INTO ##Test (id) VALUES (@P1), (@P2), (@P3)");

query.bind("foo");
query.bind(2i32);
query.bind(String::from("bar"));

let results = query.execute(&mut client).await?;
source

pub async fn query<'b, S>( self, client: &'b mut Client<S> ) -> Result<QueryStream<'b>>where S: AsyncRead + AsyncWrite + Unpin + Send,

Executes SQL statements in the SQL Server, returning resulting rows. Useful for SELECT statements. See Client#query for a simpler API if the parameters are statically known.

Example
let mut query = Query::new("SELECT @P1, @P2, @P3");

query.bind(1i32);
query.bind(2i32);
query.bind(3i32);

let stream = query.query(&mut client).await?;

Trait Implementations§

source§

impl<'a> Debug for Query<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for Query<'a>

§

impl<'a> Send for Query<'a>

§

impl<'a> Sync for Query<'a>

§

impl<'a> Unpin for Query<'a>

§

impl<'a> UnwindSafe for Query<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more