mod sqlreturn;
pub use self::sqlreturn::*;
mod info_type;
pub use self::info_type::*;
mod fetch_orientation;
pub use self::fetch_orientation::*;
mod attributes;
pub use self::attributes::*;
use std::os::raw::{c_void, c_short, c_ushort, c_int};
mod c_data_type;
pub use self::c_data_type::*;
pub enum Obj {}
pub enum Env {}
pub enum Dbc {}
pub enum Stmt {}
pub type SQLHANDLE = *mut Obj;
pub type SQLHENV = *mut Env;
pub type SQLHDBC = *mut Dbc;
pub type SQLHSTMT = *mut Stmt;
pub type SQLSMALLINT = c_short;
pub type SQLUSMALLINT = c_ushort;
pub type SQLINTEGER = c_int;
pub type SQLPOINTER = *mut c_void;
pub type SQLCHAR = u8;
#[cfg(all(windows, target_pointer_width = "64"))]
pub type SQLLEN = i64;
#[cfg(all(windows, target_pointer_width = "32"))]
pub type SQLLEN = SQLINTEGER;
#[cfg(not(windows))]
pub type SQLLEN = SQLINTEGER;
pub type SQLHWND = SQLPOINTER;
pub const SQL_NTS: SQLSMALLINT = -3;
pub const SQL_NTSL: SQLINTEGER = -3;
pub const SQL_MAX_MESSAGE_LENGTH: SQLSMALLINT = 512;
pub const SQL_SQLSTATE_SIZE: usize = 5;
pub const SQL_NULL_DATA: SQLLEN = -1;
pub const SQL_NO_TOTAL: SQLLEN = -4;
#[repr(i16)]
#[allow(non_camel_case_types)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum SqlDataType {
SQL_UNKNOWN_TYPE = 0, SQL_CHAR = 1,
SQL_NUMERIC = 2,
SQL_DECIMAL = 3,
SQL_INTEGER = 4,
SQL_SMALLINT = 5,
SQL_FLOAT = 6,
SQL_REAL = 7,
SQL_DOUBLE = 8,
SQL_DATETIME = 9,
SQL_VARCHAR = 12,
#[cfg(feature = "odbc_version_4")]
SQL_UDT = 17,
#[cfg(feature = "odbc_version_4")]
SQL_ROW = 19,
#[cfg(feature = "odbc_version_4")]
SQL_ARRAY = 50,
#[cfg(feature = "odbc_version_4")]
SQL_MULTISET = 55,
}
pub use self::SqlDataType::*;
#[repr(i16)]
#[allow(non_camel_case_types)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum HandleType {
SQL_HANDLE_ENV = 1,
SQL_HANDLE_DBC = 2,
SQL_HANDLE_STMT = 3,
SQL_HANDLE_DESC = 4,
}
pub use self::HandleType::*;
#[repr(u16)]
#[allow(non_camel_case_types)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum SqlDriverConnectOption {
SQL_DRIVER_NOPROMPT = 0,
SQL_DRIVER_COMPLETE = 1,
SQL_DRIVER_PROMPT = 2,
SQL_DRIVER_COMPLETE_REQUIRED = 3,
}
pub use self::SqlDriverConnectOption::*;
#[cfg_attr(windows, link(name="odbc32"))]
#[cfg_attr(not(windows), link(name="odbc"))]
extern "C" {
pub fn SQLAllocHandle(handle_type: HandleType,
input_handle: SQLHANDLE,
output_Handle: *mut SQLHANDLE)
-> SQLRETURN;
pub fn SQLFreeHandle(handle_type: HandleType, handle: SQLHANDLE) -> SQLRETURN;
pub fn SQLSetEnvAttr(environment_handle: SQLHENV,
attribute: EnvironmentAttribute,
value: SQLPOINTER,
string_length: SQLINTEGER)
-> SQLRETURN;
pub fn SQLDisconnect(connection_handle: SQLHDBC) -> SQLRETURN;
pub fn SQLGetDiagRec(handle_type: HandleType,
handle: SQLHANDLE,
RecNumber: SQLSMALLINT,
state: *mut SQLCHAR,
native_error_ptr: *mut SQLINTEGER,
message_text: *mut SQLCHAR,
buffer_length: SQLSMALLINT,
text_length_ptr: *mut SQLSMALLINT)
-> SQLRETURN;
pub fn SQLExecDirect(statement_handle: SQLHSTMT,
statement_text: *const SQLCHAR,
text_length: SQLINTEGER)
-> SQLRETURN;
pub fn SQLNumResultCols(statement_handle: SQLHSTMT,
column_count_ptr: *mut SQLSMALLINT)
-> SQLRETURN;
pub fn SQLGetData(statement_handle: SQLHSTMT,
col_or_param_num: SQLUSMALLINT,
target_type: SqlCDataType,
target_value_ptr: SQLPOINTER,
buffer_length: SQLLEN,
str_len_or_ind_ptr: *mut SQLLEN)
-> SQLRETURN;
pub fn SQLFetch(statement_handle: SQLHSTMT) -> SQLRETURN;
pub fn SQLGetInfo(connection_handle: SQLHDBC,
info_type: InfoType,
info_value_ptr: SQLPOINTER,
buffer_length: SQLSMALLINT,
string_length_ptr: *mut SQLSMALLINT)
-> SQLRETURN;
pub fn SQLConnect(connection_handle: SQLHDBC,
server_name: *const SQLCHAR,
name_length_1: SQLSMALLINT,
user_name: *const SQLCHAR,
name_length_2: SQLSMALLINT,
authentication: *const SQLCHAR,
name_length_3: SQLSMALLINT)
-> SQLRETURN;
pub fn SQLTables(statement_handle: SQLHSTMT,
catalog_name: *const SQLCHAR,
name_length_1: SQLSMALLINT,
schema_name: *const SQLCHAR,
name_length_2: SQLSMALLINT,
table_name: *const SQLCHAR,
name_length_3: SQLSMALLINT,
TableType: *const SQLCHAR,
name_length_4: SQLSMALLINT)
-> SQLRETURN;
pub fn SQLDataSources(environment_handle: SQLHENV,
direction: FetchOrientation,
server_name: *mut SQLCHAR,
buffer_length_1: SQLSMALLINT,
name_length_1: *mut SQLSMALLINT,
description: *mut SQLCHAR,
buffer_length_2: SQLSMALLINT,
name_length_2: *mut SQLSMALLINT)
-> SQLRETURN;
pub fn SQLDriverConnect(connection_handle: SQLHDBC,
window_handle: SQLHWND,
in_connection_string: *const SQLCHAR,
string_length_1: SQLSMALLINT,
out_connection_string: *mut SQLCHAR,
buffer_length: SQLSMALLINT,
string_length_2: *mut SQLSMALLINT,
DriverCompletion: SqlDriverConnectOption)
-> SQLRETURN;
pub fn SQLDrivers(henv: SQLHENV,
direction: FetchOrientation,
driver_desc: *mut SQLCHAR,
driver_desc_max: SQLSMALLINT,
out_driver_desc: *mut SQLSMALLINT,
driver_attributes: *mut SQLCHAR,
drvr_attr_max: SQLSMALLINT,
out_drvr_attr: *mut SQLSMALLINT)
-> SQLRETURN;
pub fn SQLCloseCursor(hstmt: SQLHSTMT) -> SQLRETURN;
}