module SQL.CLI where
import Foreign.C.Types
import Foreign.Ptr (Ptr)
import Data.Bits ((.&.), complement)
type SQLCHAR = CUChar
#ifdef ODBC
type SQLINTEGER = CInt
#else
type SQLINTEGER = CLong
#endif
type SQLSMALLINT = CShort
type SQLDOUBLE = CDouble
type SQLFLOAT = CDouble
type SQLREAL = CFloat
type SQLPOINTER = Ptr ()
type SQLDATE = CUChar
type SQLTIME = CUChar
type SQLTIMESTAMP = CUChar
type SQLVARCHAR = CUChar
type SQLDECIMAL = CUChar
type SQLNUMERIC = CUChar
type SQLRETURN = SQLSMALLINT
type SQLHANDLE = CLong
type SQLHENV = SQLHANDLE
type SQLHDBC = SQLHANDLE
type SQLHSTMT = SQLHANDLE
type SQLHDESC = SQLHANDLE
type SQLLEN = CLong
type SQLULEN = CULong
sql_null_data :: Num a => a
sql_null_data = 1
sql_data_at_exec :: Num a => a
sql_data_at_exec = 2
sql_success :: SQLRETURN
sql_success = 0
sql_success_with_info :: SQLRETURN
sql_success_with_info = 1
sql_no_data :: SQLRETURN
sql_no_data = 100
sql_error :: SQLRETURN
sql_error = 1
sql_invalid_handle :: SQLRETURN
sql_invalid_handle = 2
sql_need_data :: SQLRETURN
sql_need_data = 99
sql_succeeded :: SQLRETURN -> Bool
sql_succeeded rc = (rc .&. (complement 1)) == 0
sql_nts :: Num a => a
sql_nts = 3
sql_ntsl :: Num a => a
sql_ntsl = 3
sql_max_message_length :: Num a => a
sql_max_message_length = 512
sql_max_id_length :: Num a => a
sql_max_id_length = 18
sql_date_len :: Num a => a
sql_date_len = 10
sql_time_len :: Num a => a
sql_time_len = 8
sql_timestamp_len :: Num a => a
sql_timestamp_len = 19
sql_handle_env :: Num a => a
sql_handle_env = 1
sql_handle_dbc :: Num a => a
sql_handle_dbc = 2
sql_handle_stmt :: Num a => a
sql_handle_stmt = 3
sql_handle_desc :: Num a => a
sql_handle_desc = 4
sql_attr_output_nts :: Num a => a
sql_attr_output_nts = 10001
sql_attr_auto_ipd :: Num a => a
sql_attr_auto_ipd = 10001
sql_attr_metadata_id :: Num a => a
sql_attr_metadata_id = 10014
sql_attr_app_row_desc :: Num a => a
sql_attr_app_row_desc = 10010
sql_attr_app_param_desc :: Num a => a
sql_attr_app_param_desc = 10011
sql_attr_imp_row_desc :: Num a => a
sql_attr_imp_row_desc = 10012
sql_attr_imp_param_desc :: Num a => a
sql_attr_imp_param_desc = 10013
sql_attr_cursor_scrollable :: Num a => a
sql_attr_cursor_scrollable = 1
sql_attr_cursor_sensitivity :: Num a => a
sql_attr_cursor_sensitivity = 2
sql_desc_count :: Num a => a
sql_desc_count = 1001
sql_desc_type :: Num a => a
sql_desc_type = 1002
sql_desc_length :: Num a => a
sql_desc_length = 1003
sql_desc_octet_length_ptr :: Num a => a
sql_desc_octet_length_ptr = 1004
sql_desc_precision :: Num a => a
sql_desc_precision = 1005
sql_desc_scale :: Num a => a
sql_desc_scale = 1006
sql_desc_datetime_interval_code :: Num a => a
sql_desc_datetime_interval_code = 1007
sql_desc_nullable :: Num a => a
sql_desc_nullable = 1008
sql_desc_indicator_ptr :: Num a => a
sql_desc_indicator_ptr = 1009
sql_desc_data_ptr :: Num a => a
sql_desc_data_ptr = 1010
sql_desc_name :: Num a => a
sql_desc_name = 1011
sql_desc_unnamed :: Num a => a
sql_desc_unnamed = 1012
sql_desc_octet_length :: Num a => a
sql_desc_octet_length = 1013
sql_desc_alloc_type :: Num a => a
sql_desc_alloc_type = 1099
sql_diag_returncode :: Num a => a
sql_diag_returncode = 1
sql_diag_number :: Num a => a
sql_diag_number = 2
sql_diag_row_count :: Num a => a
sql_diag_row_count = 3
sql_diag_sqlstate :: Num a => a
sql_diag_sqlstate = 4
sql_diag_native :: Num a => a
sql_diag_native = 5
sql_diag_message_text :: Num a => a
sql_diag_message_text = 6
sql_diag_dynamic_function :: Num a => a
sql_diag_dynamic_function = 7
sql_diag_class_origin :: Num a => a
sql_diag_class_origin = 8
sql_diag_subclass_origin :: Num a => a
sql_diag_subclass_origin = 9
sql_diag_connection_name :: Num a => a
sql_diag_connection_name = 10
sql_diag_server_name :: Num a => a
sql_diag_server_name = 11
sql_diag_dynamic_function_code :: Num a => a
sql_diag_dynamic_function_code = 12
sql_diag_alter_table :: Num a => a
sql_diag_alter_table = 4
sql_diag_create_index :: Num a => a
sql_diag_create_index = 1
sql_diag_create_table :: Num a => a
sql_diag_create_table = 77
sql_diag_create_view :: Num a => a
sql_diag_create_view = 84
sql_diag_delete_where :: Num a => a
sql_diag_delete_where = 19
sql_diag_drop_index :: Num a => a
sql_diag_drop_index = 2
sql_diag_drop_table :: Num a => a
sql_diag_drop_table = 32
sql_diag_drop_view :: Num a => a
sql_diag_drop_view = 36
sql_diag_dynamic_delete_cursor :: Num a => a
sql_diag_dynamic_delete_cursor = 38
sql_diag_dynamic_update_cursor :: Num a => a
sql_diag_dynamic_update_cursor = 81
sql_diag_grant :: Num a => a
sql_diag_grant = 48
sql_diag_insert :: Num a => a
sql_diag_insert = 50
sql_diag_revoke :: Num a => a
sql_diag_revoke = 59
sql_diag_select_cursor :: Num a => a
sql_diag_select_cursor = 85
sql_diag_unknown_statement :: Num a => a
sql_diag_unknown_statement = 0
sql_diag_update_where :: Num a => a
sql_diag_update_where = 82
sql_char :: Num a => a
sql_char = 1
sql_numeric :: Num a => a
sql_numeric = 2
sql_decimal :: Num a => a
sql_decimal = 3
sql_integer :: Num a => a
sql_integer = 4
sql_smallint :: Num a => a
sql_smallint = 5
sql_float :: Num a => a
sql_float = 6
sql_real :: Num a => a
sql_real = 7
sql_double :: Num a => a
sql_double = 8
sql_datetime :: Num a => a
sql_datetime = 9
sql_varchar :: Num a => a
sql_varchar = 12
sql_type_date :: Num a => a
sql_type_date = 91
sql_type_time :: Num a => a
sql_type_time = 92
sql_type_timestamp :: Num a => a
sql_type_timestamp = 93
sql_unspecified :: Num a => a
sql_unspecified = 0
sql_insensitive :: Num a => a
sql_insensitive = 1
sql_sensitive :: Num a => a
sql_sensitive = 2
sql_all_types :: Num a => a
sql_all_types = 0
sql_default :: Num a => a
sql_default = 99
sql_ard_type :: Num a => a
sql_ard_type = 99
sql_code_date :: Num a => a
sql_code_date = 1
sql_code_time :: Num a => a
sql_code_time = 2
sql_code_timestamp :: Num a => a
sql_code_timestamp = 3
sql_false :: Num a => a
sql_false = 0
sql_true :: Num a => a
sql_true = 1
sql_no_nulls :: Num a => a
sql_no_nulls = 0
sql_nullable :: Num a => a
sql_nullable = 1
sql_nullable_unknown :: Num a => a
sql_nullable_unknown = 2
sql_pred_none :: Num a => a
sql_pred_none = 0
sql_pred_char :: Num a => a
sql_pred_char = 1
sql_pred_basic :: Num a => a
sql_pred_basic = 2
sql_named :: Num a => a
sql_named = 0
sql_unnamed :: Num a => a
sql_unnamed = 1
sql_desc_alloc_auto :: Num a => a
sql_desc_alloc_auto = 1
sql_desc_alloc_user :: Num a => a
sql_desc_alloc_user = 2
sql_close :: Num a => a
sql_close = 0
sql_drop :: Num a => a
sql_drop = 1
sql_unbind :: Num a => a
sql_unbind = 2
sql_reset_params :: Num a => a
sql_reset_params = 3
sql_fetch_next :: Num a => a
sql_fetch_next = 1
sql_fetch_first :: Num a => a
sql_fetch_first = 2
sql_fetch_last :: Num a => a
sql_fetch_last = 3
sql_fetch_prior :: Num a => a
sql_fetch_prior = 4
sql_fetch_absolute :: Num a => a
sql_fetch_absolute = 5
sql_fetch_relative :: Num a => a
sql_fetch_relative = 6
sql_commit :: Num a => a
sql_commit = 0
sql_rollback :: Num a => a
sql_rollback = 1
sql_null_henv :: Num a => a
sql_null_henv = 0
sql_null_hdbc :: Num a => a
sql_null_hdbc = 0
sql_null_hstmt :: Num a => a
sql_null_hstmt = 0
sql_null_hdesc :: Num a => a
sql_null_hdesc = 0
sql_null_handle :: Num a => a
sql_null_handle = 0
sql_scope_currow :: Num a => a
sql_scope_currow = 0
sql_scope_transaction :: Num a => a
sql_scope_transaction = 1
sql_scope_session :: Num a => a
sql_scope_session = 2
sql_pc_unknown :: Num a => a
sql_pc_unknown = 0
sql_pc_non_pseudo :: Num a => a
sql_pc_non_pseudo = 1
sql_pc_pseudo :: Num a => a
sql_pc_pseudo = 2
sql_row_identifier :: Num a => a
sql_row_identifier = 1
sql_index_unique :: Num a => a
sql_index_unique = 0
sql_index_all :: Num a => a
sql_index_all = 1
sql_index_clustered :: Num a => a
sql_index_clustered = 1
sql_index_hashed :: Num a => a
sql_index_hashed = 2
sql_index_other :: Num a => a
sql_index_other = 3
sql_api_sqlallocconnect :: Num a => a
sql_api_sqlallocconnect = 1
sql_api_sqlallocenv :: Num a => a
sql_api_sqlallocenv = 2
sql_api_sqlallochandle :: Num a => a
sql_api_sqlallochandle = 1001
sql_api_sqlallocstmt :: Num a => a
sql_api_sqlallocstmt = 3
sql_api_sqlbindcol :: Num a => a
sql_api_sqlbindcol = 4
sql_api_sqlbindparam :: Num a => a
sql_api_sqlbindparam = 22
sql_api_sqlcancel :: Num a => a
sql_api_sqlcancel = 5
sql_api_sqlclosecursor :: Num a => a
sql_api_sqlclosecursor = 1003
sql_api_sqlcolattribute :: Num a => a
sql_api_sqlcolattribute = 6
sql_api_sqlcolumns :: Num a => a
sql_api_sqlcolumns = 40
sql_api_sqlconnect :: Num a => a
sql_api_sqlconnect = 7
sql_api_sqlcopydesc :: Num a => a
sql_api_sqlcopydesc = 1004
sql_api_sqldatasources :: Num a => a
sql_api_sqldatasources = 57
sql_api_sqldescribecol :: Num a => a
sql_api_sqldescribecol = 8
sql_api_sqldisconnect :: Num a => a
sql_api_sqldisconnect = 9
sql_api_sqlendtran :: Num a => a
sql_api_sqlendtran = 1005
sql_api_sqlerror :: Num a => a
sql_api_sqlerror = 10
sql_api_sqlexecdirect :: Num a => a
sql_api_sqlexecdirect = 11
sql_api_sqlexecute :: Num a => a
sql_api_sqlexecute = 12
sql_api_sqlfetch :: Num a => a
sql_api_sqlfetch = 13
sql_api_sqlfetchscroll :: Num a => a
sql_api_sqlfetchscroll = 1021
sql_api_sqlfreeconnect :: Num a => a
sql_api_sqlfreeconnect = 14
sql_api_sqlfreeenv :: Num a => a
sql_api_sqlfreeenv = 15
sql_api_sqlfreehandle :: Num a => a
sql_api_sqlfreehandle = 1006
sql_api_sqlfreestmt :: Num a => a
sql_api_sqlfreestmt = 16
sql_api_sqlgetconnectattr :: Num a => a
sql_api_sqlgetconnectattr = 1007
sql_api_sqlgetconnectoption :: Num a => a
sql_api_sqlgetconnectoption = 42
sql_api_sqlgetcursorname :: Num a => a
sql_api_sqlgetcursorname = 17
sql_api_sqlgetdata :: Num a => a
sql_api_sqlgetdata = 43
sql_api_sqlgetdescfield :: Num a => a
sql_api_sqlgetdescfield = 1008
sql_api_sqlgetdescrec :: Num a => a
sql_api_sqlgetdescrec = 1009
sql_api_sqlgetdiagfield :: Num a => a
sql_api_sqlgetdiagfield = 1010
sql_api_sqlgetdiagrec :: Num a => a
sql_api_sqlgetdiagrec = 1011
sql_api_sqlgetenvattr :: Num a => a
sql_api_sqlgetenvattr = 1012
sql_api_sqlgetfunctions :: Num a => a
sql_api_sqlgetfunctions = 44
sql_api_sqlgetinfo :: Num a => a
sql_api_sqlgetinfo = 45
sql_api_sqlgetstmtattr :: Num a => a
sql_api_sqlgetstmtattr = 1014
sql_api_sqlgetstmtoption :: Num a => a
sql_api_sqlgetstmtoption = 46
sql_api_sqlgettypeinfo :: Num a => a
sql_api_sqlgettypeinfo = 47
sql_api_sqllanguages :: Num a => a
sql_api_sqllanguages = 2001
sql_api_sqlnumresultcols :: Num a => a
sql_api_sqlnumresultcols = 18
sql_api_sqlparamdata :: Num a => a
sql_api_sqlparamdata = 48
sql_api_sqlprepare :: Num a => a
sql_api_sqlprepare = 19
sql_api_sqlputdata :: Num a => a
sql_api_sqlputdata = 49
sql_api_sqlreleaseenv :: Num a => a
sql_api_sqlreleaseenv = 1015
sql_api_sqlrowcount :: Num a => a
sql_api_sqlrowcount = 20
sql_api_sqlserverinfo :: Num a => a
sql_api_sqlserverinfo = 2002
sql_api_sqlsetconnectattr :: Num a => a
sql_api_sqlsetconnectattr = 1016
sql_api_sqlsetconnectoption :: Num a => a
sql_api_sqlsetconnectoption = 50
sql_api_sqlsetcursorname :: Num a => a
sql_api_sqlsetcursorname = 21
sql_api_sqlsetdescfield :: Num a => a
sql_api_sqlsetdescfield = 1017
sql_api_sqlsetdescrec :: Num a => a
sql_api_sqlsetdescrec = 1018
sql_api_sqlsetenvattr :: Num a => a
sql_api_sqlsetenvattr = 1019
sql_api_sqlsetparam :: Num a => a
sql_api_sqlsetparam = 22
sql_api_sqlsetstmtattr :: Num a => a
sql_api_sqlsetstmtattr = 1020
sql_api_sqlsetstmtoption :: Num a => a
sql_api_sqlsetstmtoption = 51
sql_api_sqlspecialcolumns :: Num a => a
sql_api_sqlspecialcolumns = 52
sql_api_sqlstatistics :: Num a => a
sql_api_sqlstatistics = 53
sql_api_sqltables :: Num a => a
sql_api_sqltables = 54
sql_api_sqltransact :: Num a => a
sql_api_sqltransact = 23
sql_max_driver_connections :: Num a => a
sql_max_driver_connections = 0
sql_max_concurrent_activities :: Num a => a
sql_max_concurrent_activities = 1
sql_data_source_name :: Num a => a
sql_data_source_name = 2
sql_fetch_direction :: Num a => a
sql_fetch_direction = 8
sql_server_name :: Num a => a
sql_server_name = 13
sql_search_pattern_escape :: Num a => a
sql_search_pattern_escape = 14
sql_dbms_name :: Num a => a
sql_dbms_name = 17
sql_dbms_ver :: Num a => a
sql_dbms_ver = 18
sql_accessible_tables :: Num a => a
sql_accessible_tables = 19
sql_cursor_commit_behavior :: Num a => a
sql_cursor_commit_behavior = 23
sql_data_source_read_only :: Num a => a
sql_data_source_read_only = 25
sql_default_txn_isolation :: Num a => a
sql_default_txn_isolation = 26
sql_identifier_case :: Num a => a
sql_identifier_case = 28
sql_identifier_quote_char :: Num a => a
sql_identifier_quote_char = 29
sql_max_column_name_len :: Num a => a
sql_max_column_name_len = 30
sql_max_cursor_name_len :: Num a => a
sql_max_cursor_name_len = 31
sql_max_schema_name_len :: Num a => a
sql_max_schema_name_len = 32
sql_max_catalog_name_len :: Num a => a
sql_max_catalog_name_len = 34
sql_max_table_name_len :: Num a => a
sql_max_table_name_len = 35
sql_scroll_concurrency :: Num a => a
sql_scroll_concurrency = 43
sql_txn_capable :: Num a => a
sql_txn_capable = 46
sql_user_name :: Num a => a
sql_user_name = 47
sql_txn_isolation_option :: Num a => a
sql_txn_isolation_option = 72
sql_integrity :: Num a => a
sql_integrity = 73
sql_getdata_extensions :: Num a => a
sql_getdata_extensions = 81
sql_null_collation :: Num a => a
sql_null_collation = 85
sql_alter_table :: Num a => a
sql_alter_table = 86
sql_order_by_columns_in_select :: Num a => a
sql_order_by_columns_in_select = 90
sql_special_characters :: Num a => a
sql_special_characters = 94
sql_max_columns_in_group_by :: Num a => a
sql_max_columns_in_group_by = 97
sql_max_columns_in_index :: Num a => a
sql_max_columns_in_index = 98
sql_max_columns_in_order_by :: Num a => a
sql_max_columns_in_order_by = 99
sql_max_columns_in_select :: Num a => a
sql_max_columns_in_select = 100
sql_max_columns_in_table :: Num a => a
sql_max_columns_in_table = 101
sql_max_index_size :: Num a => a
sql_max_index_size = 102
sql_max_row_size :: Num a => a
sql_max_row_size = 104
sql_max_statement_len :: Num a => a
sql_max_statement_len = 105
sql_max_tables_in_select :: Num a => a
sql_max_tables_in_select = 106
sql_max_user_name_len :: Num a => a
sql_max_user_name_len = 107
sql_oj_capabilities :: Num a => a
sql_oj_capabilities = 115
sql_xopen_cli_year :: Num a => a
sql_xopen_cli_year = 10000
sql_cursor_sensitivity :: Num a => a
sql_cursor_sensitivity = 10001
sql_describe_parameter :: Num a => a
sql_describe_parameter = 10002
sql_catalog_name :: Num a => a
sql_catalog_name = 10003
sql_collation_seq :: Num a => a
sql_collation_seq = 10004
sql_max_identifier_len :: Num a => a
sql_max_identifier_len = 10005
sql_at_add_column :: CLong
sql_at_add_column = 0x01
sql_at_drop_column :: CLong
sql_at_drop_column = 0x02
sql_at_alter_column :: CLong
sql_at_alter_column = 0x04
sql_at_add_constraint :: CLong
sql_at_add_constraint = 0x08
sql_at_drop_constraint :: CLong
sql_at_drop_constraint = 0x10
sql_cb_delete :: Num a => a
sql_cb_delete = 0
sql_cb_close :: Num a => a
sql_cb_close = 1
sql_cb_preserve :: Num a => a
sql_cb_preserve = 2
sql_fd_fetch_next :: CLong
sql_fd_fetch_next = 0x01
sql_fd_fetch_first :: CLong
sql_fd_fetch_first = 0x02
sql_fd_fetch_last :: CLong
sql_fd_fetch_last = 0x04
sql_fd_fetch_prior :: CLong
sql_fd_fetch_prior = 0x08
sql_fd_fetch_absolute :: CLong
sql_fd_fetch_absolute = 0x10
sql_fd_fetch_relative :: CLong
sql_fd_fetch_relative = 0x20
sql_gd_any_column :: CLong
sql_gd_any_column = 0x01
sql_gd_any_order :: CLong
sql_gd_any_order = 0x02
sql_ic_upper :: Num a => a
sql_ic_upper = 1
sql_ic_lower :: Num a => a
sql_ic_lower = 2
sql_ic_sensitive :: Num a => a
sql_ic_sensitive = 3
sql_ic_mixed :: Num a => a
sql_ic_mixed = 4
sql_oj_left :: CLong
sql_oj_left = 0x01
sql_oj_right :: CLong
sql_oj_right = 0x02
sql_oj_full :: CLong
sql_oj_full = 0x04
sql_oj_nested :: CLong
sql_oj_nested = 0x08
sql_oj_not_ordered :: CLong
sql_oj_not_ordered = 0x10
sql_oj_inner :: CLong
sql_oj_inner = 0x20
sql_oj_all_comparison_ops :: CLong
sql_oj_all_comparison_ops = 0x40
sql_scco_read_only :: CLong
sql_scco_read_only = 0x01
sql_scco_lock :: CLong
sql_scco_lock = 0x02
sql_scco_opt_rowver :: CLong
sql_scco_opt_rowver = 0x04
sql_scco_opt_values :: CLong
sql_scco_opt_values = 0x08
sql_tc_none :: Num a => a
sql_tc_none = 0
sql_tc_dml :: Num a => a
sql_tc_dml = 1
sql_tc_all :: Num a => a
sql_tc_all = 2
sql_tc_ddl_commit :: Num a => a
sql_tc_ddl_commit = 3
sql_tc_ddl_ignore :: Num a => a
sql_tc_ddl_ignore = 4
sql_txn_read_uncommitted :: CLong
sql_txn_read_uncommitted = 0x01
sql_txn_read_committed :: CLong
sql_txn_read_committed = 0x02
sql_txn_repeatable_read :: CLong
sql_txn_repeatable_read = 0x04
sql_txn_serializable :: CLong
sql_txn_serializable = 0x08
foreign import ccall "SQLAllocConnect" sqlallocconnect :: SQLHENV -> Ptr SQLHDBC -> IO SQLRETURN
foreign import ccall "SQLAllocEnv" sqlallocenv :: Ptr SQLHENV -> IO SQLRETURN
foreign import ccall "SQLAllocHandle" sqlallochandle :: SQLSMALLINT -> SQLHANDLE -> Ptr SQLHANDLE -> IO SQLRETURN
foreign import ccall "SQLAllocStmt" sqlallocstmt :: SQLHDBC -> Ptr SQLHSTMT -> IO SQLRETURN
foreign import ccall "SQLBindCol" sqlbindcol :: SQLHSTMT -> SQLSMALLINT -> SQLSMALLINT -> SQLPOINTER -> SQLLEN -> Ptr SQLLEN -> IO SQLRETURN
foreign import ccall "SQLBindParam" sqlbindparam :: SQLHSTMT -> SQLSMALLINT -> SQLSMALLINT -> SQLSMALLINT -> SQLULEN -> SQLSMALLINT -> SQLPOINTER -> Ptr SQLLEN -> IO SQLRETURN
foreign import ccall "SQLCancel" sqlcancel :: SQLHSTMT -> IO SQLRETURN
foreign import ccall "SQLCloseCursor" sqlclosecursor :: SQLHSTMT -> IO SQLRETURN
#ifdef ODBC
foreign import ccall "SQLColAttribute" sqlcolattribute :: SQLHSTMT -> SQLSMALLINT -> SQLSMALLINT -> SQLPOINTER -> SQLSMALLINT -> Ptr SQLSMALLINT -> Ptr SQLLEN -> IO SQLRETURN
#else
foreign import ccall "SQLColAttribute" sqlcolattribute :: SQLHSTMT -> SQLSMALLINT -> SQLSMALLINT -> SQLPOINTER -> SQLSMALLINT -> Ptr SQLSMALLINT -> SQLPOINTER -> IO SQLRETURN
#endif
foreign import ccall "SQLColumns" sqlcolumns :: SQLHSTMT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLConnect" sqlconnect :: SQLHDBC -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLCopyDesc" sqlopydesc :: SQLHDESC -> SQLHDESC -> IO SQLRETURN
foreign import ccall "SQLDataSources" sqldatasources :: SQLHENV -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLDescribeCol" sqldescribecol :: SQLHSTMT -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLSMALLINT -> Ptr SQLSMALLINT -> Ptr SQLULEN -> Ptr SQLSMALLINT -> Ptr SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLDisconnect" sqldisconnect :: SQLHDBC -> IO SQLRETURN
foreign import ccall "SQLEndTran" sqlendtran :: SQLSMALLINT -> SQLHANDLE -> SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLError" sqlerror :: SQLHENV -> SQLHDBC -> SQLHSTMT -> Ptr SQLCHAR -> Ptr SQLINTEGER -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLExecDirect" sqlexecdirect :: SQLHSTMT -> Ptr SQLCHAR -> SQLINTEGER -> IO SQLRETURN
foreign import ccall "SQLExecute" sqlexecute :: SQLHSTMT -> IO SQLRETURN
foreign import ccall "SQLFetch" sqlfetch :: SQLHSTMT -> IO SQLRETURN
foreign import ccall "SQLFetchScroll" sqlfetchscroll :: SQLHSTMT -> SQLSMALLINT -> SQLLEN -> IO SQLRETURN
foreign import ccall "SQLFreeConnect" sqlfreeconnect :: SQLHDBC -> IO SQLRETURN
foreign import ccall "SQLFreeEnv" sqlfreeenv :: SQLHENV -> IO SQLRETURN
foreign import ccall "SQLFreeHandle" sqlfreehandle :: SQLSMALLINT -> SQLHANDLE -> IO SQLRETURN
foreign import ccall "SQLFreeStmt" sqlfreestmt :: SQLHSTMT -> SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLGetConnectAttr" sqlgetconnectattr :: SQLHDBC -> SQLINTEGER -> SQLPOINTER -> SQLINTEGER -> Ptr SQLINTEGER -> IO SQLRETURN
foreign import ccall "SQLGetConnectOption" sqlgetconnectoption :: SQLHDBC -> SQLSMALLINT -> SQLPOINTER -> IO SQLRETURN
foreign import ccall "SQLGetCursorName" sqlgetcursorname :: SQLHSTMT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLGetData" sqlgetdata :: SQLHSTMT -> SQLSMALLINT -> SQLSMALLINT -> SQLPOINTER -> SQLLEN -> Ptr SQLLEN -> IO SQLRETURN
foreign import ccall "SQLGetDescField" sqlgetdescfield :: SQLHDESC -> SQLSMALLINT -> SQLSMALLINT -> SQLPOINTER -> SQLINTEGER -> Ptr SQLINTEGER -> IO SQLRETURN
foreign import ccall "SQLGetDescRec" sqlgetdescrec :: SQLHDESC -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLSMALLINT -> Ptr SQLSMALLINT -> Ptr SQLSMALLINT -> Ptr SQLLEN -> Ptr SQLSMALLINT -> Ptr SQLSMALLINT -> Ptr SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLGetDiagField" sqlgetdiagfield :: SQLSMALLINT -> SQLHANDLE -> SQLSMALLINT -> SQLSMALLINT -> SQLPOINTER -> SQLSMALLINT -> Ptr SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLGetDiagRec" sqlgetdiagrec :: SQLSMALLINT -> SQLHANDLE -> SQLSMALLINT -> Ptr SQLCHAR -> Ptr SQLINTEGER -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLGetEnvAttr" sqlgetenvattr :: SQLHENV -> SQLINTEGER -> SQLPOINTER -> SQLINTEGER -> Ptr SQLINTEGER -> IO SQLRETURN
foreign import ccall "SQLGetFunctions" sqlgetfunctions :: SQLHDBC -> SQLSMALLINT -> Ptr SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLGetInfo" sqlgetinfo :: SQLHDBC -> SQLSMALLINT -> SQLPOINTER -> SQLSMALLINT -> Ptr SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLGetStmtAttr" sqlgetstmtattr :: SQLHSTMT -> SQLINTEGER -> SQLPOINTER -> SQLINTEGER -> Ptr SQLINTEGER -> IO SQLRETURN
foreign import ccall "SQLGetStmtOption" sqlgetstmtoption :: SQLHSTMT -> SQLSMALLINT -> SQLPOINTER -> IO SQLRETURN
foreign import ccall "SQLGetTypeInfo" sqlgettypeinfo :: SQLHSTMT -> SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLNumResultCols" sqlnumresultcols :: SQLHSTMT -> Ptr SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLParamData" sqlparamdata :: SQLHSTMT -> Ptr SQLPOINTER -> IO SQLRETURN
foreign import ccall "SQLPrepare" sqlprepare :: SQLHSTMT -> Ptr SQLCHAR -> SQLINTEGER -> IO SQLRETURN
foreign import ccall "SQLPutData" sqlputdata :: SQLHSTMT -> SQLPOINTER -> SQLLEN -> IO SQLRETURN
foreign import ccall "SQLRowCount" sqlrowcount :: SQLHSTMT -> Ptr SQLLEN -> IO SQLRETURN
foreign import ccall "SQLSetConnectAttr" sqlsetconnectattr :: SQLHDBC -> SQLINTEGER -> SQLPOINTER -> SQLINTEGER -> IO SQLRETURN
foreign import ccall "SQLSetConnectOption" sqlsetconnectoption :: SQLHDBC -> SQLSMALLINT -> SQLPOINTER -> IO SQLRETURN
foreign import ccall "SQLSetCursorName" sqlsetcursorname :: SQLHSTMT -> Ptr SQLCHAR -> SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLSetDescField" sqlsetdescfield :: SQLHDESC -> SQLSMALLINT -> SQLSMALLINT -> SQLPOINTER -> SQLINTEGER -> IO SQLRETURN
foreign import ccall "SQLSetDescRec" sqlsetdescrec :: SQLHDESC -> SQLSMALLINT -> SQLSMALLINT -> SQLSMALLINT -> SQLINTEGER -> SQLSMALLINT -> SQLSMALLINT -> SQLPOINTER -> Ptr SQLLEN -> Ptr SQLLEN -> IO SQLRETURN
foreign import ccall "SQLSetEnvAttr" sqlsetenvattr :: SQLHENV -> SQLINTEGER -> SQLPOINTER -> SQLINTEGER -> IO SQLRETURN
foreign import ccall "SQLBindParam" sqlsetparam :: SQLHSTMT -> SQLSMALLINT -> SQLSMALLINT -> SQLSMALLINT -> SQLULEN -> SQLSMALLINT -> SQLPOINTER -> Ptr SQLLEN -> IO SQLRETURN
foreign import ccall "SQLSetStmtAttr" sqlsetstmtattr :: SQLHSTMT -> SQLINTEGER -> SQLPOINTER -> SQLULEN -> IO SQLRETURN
foreign import ccall "SQLSetStmtOption" sqlsetstmtoption :: SQLHSTMT -> SQLSMALLINT -> SQLPOINTER -> IO SQLRETURN
foreign import ccall "SQLSpecialColumns" sqlspecialcolumns :: SQLHSTMT -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> SQLSMALLINT -> SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLStatistics" sqlstatistics :: SQLHSTMT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> SQLSMALLINT -> SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLTables" sqltables :: SQLHSTMT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> Ptr SQLCHAR -> SQLSMALLINT -> IO SQLRETURN
foreign import ccall "SQLTransact" sqltransact :: SQLHENV -> SQLHDBC -> SQLSMALLINT -> IO SQLRETURN