pub struct Query<'a> { /* private fields */ }
Expand description
A query object with bind parameters.
Implementations
sourceimpl<'a> Query<'a>
impl<'a> Query<'a>
sourcepub fn new(sql: impl Into<Cow<'a, str>>) -> Self
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
.
sourcepub fn bind(&mut self, param: impl IntoSql<'a> + 'a)
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.
sourcepub async fn execute<'b, S>(
self,
client: &'b mut Client<S>
) -> Result<ExecuteResult> where
S: AsyncRead + AsyncWrite + Unpin + Send,
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?;
sourcepub async fn query<'b, S>(
self,
client: &'b mut Client<S>
) -> Result<QueryStream<'b>> where
S: AsyncRead + AsyncWrite + Unpin + Send,
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
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more