arrow obdc
use arrow_odbc::{odbc_api::Environment, OdbcReader};
const CONNECTION_STRING: &str = "Driver={PostgreSQL ANSI(x64)}; Server=127.0.0.1;Port=5433; UID=postgres; PWD=postgres;";
#const CONNECTION_STRING: &str = "Driver={SQL Server}; Server=1234;Port=31; UID=admin; PWD=admin;";
fn main() {
let odbc_environment = Environment::new().unwrap();
// Connect with database.
let connection = odbc_environment.connect_with_connection_string(CONNECTION_STRING).unwrap();
// This SQL statement does not require any arguments.
let parameters = ();
// Execute query and create result set
let cursor = connection
.execute("SELECT * FROM hzfc limit 3", parameters).unwrap()
.expect("SELECT statement must produce a cursor");
// Each batch shall only consist of maximum 10.000 rows.
let max_batch_size = 10_000;
// Read result set as arrow batches. Infer Arrow types automatically using the meta
// information of `cursor`.
let arrow_record_batches = OdbcReader::new(cursor, max_batch_size).unwrap();
for batch in arrow_record_batches {
println!("{:?}", batch.unwrap());
println!("===============================\n");
}
// Ok(())
}
浙公网安备 33010602011771号