pub struct Rows<'a> { /* private fields */ }
Expand description
Result set of a query
Implementations§
source§impl<'a> Rows<'a>
impl<'a> Rows<'a>
sourcepub fn next(&self) -> Result<Option<Row<'_>>>
Available on crate feature blocking
only.
pub fn next(&self) -> Result<Option<Row<'_>>>
blocking
only.Returns the next row in the SELECT’s result set.
Example
let stmt = session.prepare("
SELECT street_address, postal_code, city, state_province
FROM hr.locations
WHERE country_id = :id
ORDER BY location_id
")?;
let rows = stmt.query("CA")?;
let mut res = Vec::new();
while let Some( row ) = rows.next()? {
// &str does not live long enough to be useful for
// the `street_address`
let street_address : Option<String> = row.get(0)?;
let postal_code : Option<&str> = row.get(1)?;
let city : Option<&str> = row.get(2)?;
let state_province : Option<&str> = row.get(3)?;
let city_address = format!("{} {} {}",
city .unwrap_or_default(),
state_province .unwrap_or_default(),
postal_code .unwrap_or_default(),
);
res.push((street_address.unwrap_or_default(), city_address));
}
assert_eq!(res.len(), 2);
assert_eq!(res[0].1, "Toronto Ontario M5V 2L7");
assert_eq!(res[1].1, "Whitehorse Yukon YSW 9T2");
source§impl<'a> Rows<'a>
impl<'a> Rows<'a>
sourcepub async fn next(&'a self) -> Result<Option<Row<'a>>>
Available on crate feature nonblocking
only.
pub async fn next(&'a self) -> Result<Option<Row<'a>>>
nonblocking
only.Returns the next row in the SELECT’s result set.
Example
let stmt = session.prepare("
SELECT street_address, postal_code, city, state_province
FROM hr.locations
WHERE country_id = :id
ORDER BY location_id
").await?;
let rows = stmt.query("CA").await?;
let mut res = Vec::new();
while let Some( row ) = rows.next().await? {
// &str does not live long enough to be useful for
// the `street_address`
let street_address : Option<String> = row.get(0)?;
let postal_code : Option<&str> = row.get(1)?;
let city : Option<&str> = row.get(2)?;
let state_province : Option<&str> = row.get(3)?;
let city_address = format!("{} {} {}",
city .unwrap_or_default(),
state_province .unwrap_or_default(),
postal_code .unwrap_or_default(),
);
res.push((street_address.unwrap_or_default(), city_address));
}
assert_eq!(res.len(), 2);
assert_eq!(res[0].1, "Toronto Ontario M5V 2L7");
assert_eq!(res[1].1, "Whitehorse Yukon YSW 9T2");