[−][src]Struct tiberius::Row
A row of data from a query.
Data can be accessed either by copying through get
or try_get
methods, or moving by value using the IntoIterator
implementation.
// by-reference let row = client .query("SELECT @P1 AS col1", &[&"test"]) .await? .into_row() .await? .unwrap(); assert_eq!(Some("test"), row.get("col1")); // ...or by-value let row = client .query("SELECT @P1 AS col1", &[&"test"]) .await? .into_row() .await? .unwrap(); for val in row.into_iter() { assert_eq!( Some(String::from("test")), String::from_sql_owned(val)? ) }
Implementations
impl Row
[src]
pub fn columns(&self) -> &[Column]
[src]
Columns defining the row data. Columns listed here are in the same order as the resulting data.
Example
let row = client .query("SELECT 1 AS foo, 2 AS bar", &[]) .await? .into_row() .await? .unwrap(); assert_eq!("foo", row.columns()[0].name()); assert_eq!("bar", row.columns()[1].name());
pub fn len(&self) -> usize
[src]
Returns the number of columns in the row.
Example
let row = client .query("SELECT 1, 2", &[]) .await? .into_row() .await? .unwrap(); assert_eq!(2, row.len());
pub fn get<'a, R, I>(&'a self, idx: I) -> Option<R> where
R: FromSql<'a>,
I: QueryIdx,
[src]
R: FromSql<'a>,
I: QueryIdx,
Retrieve a column value for a given column index, which can either be the zero-indexed position or the name of the column.
Example
let row = client .query("SELECT @P1 AS col1", &[&1i32]) .await? .into_row() .await? .unwrap(); assert_eq!(Some(1i32), row.get(0)); assert_eq!(Some(1i32), row.get("col1"));
Panics
- The requested type conversion (SQL->Rust) is not possible.
- The given index is out of bounds (column does not exist).
Use try_get
for a non-panicking version of the function.
pub fn try_get<'a, R, I>(&'a self, idx: I) -> Result<Option<R>> where
R: FromSql<'a>,
I: QueryIdx,
[src]
R: FromSql<'a>,
I: QueryIdx,
Retrieve a column's value for a given column index.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Row
impl Send for Row
impl Sync for Row
impl Unpin for Row
impl UnwindSafe for Row
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<I> IntoIterator for I where
I: Iterator,
[src]
I: Iterator,
type Item = <I as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = I
Which kind of iterator are we turning this into?
fn into_iter(self) -> I
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,