1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
mod as_handle;
mod bind;
mod buffer;
mod column_description;
mod connection;
mod data_type;
mod description;
mod diagnostics;
mod environment;
mod error;
mod logging;
mod statement;
pub use {
as_handle::AsHandle,
bind::{CData, CDataMut, Input},
column_description::{ColumnDescription, Nullable},
connection::Connection,
data_type::DataType,
description::Description,
diagnostics::Record,
environment::Environment,
error::Error,
statement::{ParameterDescription, Statement},
};
use odbc_sys::{Handle, HandleType, SQLFreeHandle, SqlReturn};
use std::thread::panicking;
unsafe fn drop_handle(handle: Handle, handle_type: HandleType) {
match SQLFreeHandle(handle_type, handle) {
SqlReturn::SUCCESS => (),
other => {
if !panicking() {
panic!("Unexpected return value of SQLFreeHandle: {:?}", other)
}
}
}
}