// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Ib_intf.pas' rev: 10.00

#ifndef Ib_intfHPP
#define Ib_intfHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Ibase.hpp>	// Pascal unit
#include <Ib_installheader.hpp>	// Pascal unit
#include <Ib_externals.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Ib_intf
{
//-- type declarations -------------------------------------------------------
__interface IIBClientLibrary;
typedef System::DelphiInterface<IIBClientLibrary> _di_IIBClientLibrary;
__interface  INTERFACE_UUID("{BB362CBF-2BD0-41A8-8982-F5E3327354A6}") IIBClientLibrary  : public IInterface 
{
	
public:
	virtual AnsiString __fastcall GetLibName(void) = 0 ;
	virtual int __fastcall GetIBClientVersion(void) = 0 ;
	virtual int __fastcall GetIBClientMinorVersion(void) = 0 ;
	virtual int __fastcall isc_attach_database(Ib_externals::PISC_STATUS status_vector, short db_name_length, char * db_name, Ibase::PISC_DB_HANDLE db_handle, short parm_buffer_length, char * parm_buffer) = 0 ;
	virtual int __fastcall isc_array_get_slice(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE trans_handle, Ibase::PISC_QUAD array_id, Ibase::PISC_ARRAY_DESC descriptor, Ib_externals::PVoid dest_array, int slice_length) = 0 ;
	virtual int __fastcall isc_array_lookup_bounds(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE trans_handle, char * table_name, char * column_name, Ibase::PISC_ARRAY_DESC descriptor) = 0 ;
	virtual int __fastcall isc_array_lookup_desc(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE trans_handle, char * table_name, char * column_name, Ibase::PISC_ARRAY_DESC descriptor) = 0 ;
	virtual int __fastcall isc_array_set_desc(Ib_externals::PISC_STATUS status_vector, char * table_name, char * column_name, Ib_externals::PShort sql_dtype, Ib_externals::PShort sql_length, Ib_externals::PShort sql_dimensions, Ibase::PISC_ARRAY_DESC descriptor) = 0 ;
	virtual int __fastcall isc_array_put_slice(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE trans_handle, Ibase::PISC_QUAD array_id, Ibase::PISC_ARRAY_DESC descriptor, Ib_externals::PVoid source_array, Ib_externals::PISC_LONG slice_length) = 0 ;
	virtual int __fastcall isc_blob_info(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_BLOB_HANDLE blob_handle, short item_list_buffer_length, char * item_list_buffer, short result_buffer_length, char * result_buffer) = 0 ;
	virtual int __fastcall isc_blob_lookup_desc(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE trans_handle, char * table_name, char * column_name, Ibase::PISC_BLOB_DESC descriptor, Ib_externals::PUChar global) = 0 ;
	virtual int __fastcall isc_blob_set_desc(Ib_externals::PISC_STATUS status_vector, char * table_name, char * column_name, short subtype, short charset, short segment_size, Ibase::PISC_BLOB_DESC descriptor) = 0 ;
	virtual int __fastcall isc_cancel_blob(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_BLOB_HANDLE blob_handle) = 0 ;
	virtual int __fastcall isc_cancel_events(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ib_externals::PISC_LONG event_id) = 0 ;
	virtual int __fastcall isc_que_events(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ib_externals::PISC_LONG event_id, short length, char * event_buffer, Ibase::TISC_CALLBACK event_function, Ib_externals::PVoid event_function_arg) = 0 ;
	virtual int __fastcall isc_wait_for_event(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, short length, char * event_buffer, char * result_buffer) = 0 ;
	virtual int __fastcall isc_close_blob(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_BLOB_HANDLE blob_handle) = 0 ;
	virtual int __fastcall isc_create_blob2(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_BLOB_HANDLE blob_handle, Ibase::PISC_QUAD blob_id, short bpb_length, char * bpb_address) = 0 ;
	virtual int __fastcall isc_commit_retaining(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle) = 0 ;
	virtual int __fastcall isc_commit_transaction(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle) = 0 ;
	virtual int __fastcall isc_transaction_info(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, short item_list_buffer_length, char * item_list_buffer, short result_buffer_length, char * result_buffer) = 0 ;
	virtual int __fastcall isc_database_info(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, short item_list_buffer_length, char * item_list_buffer, short result_buffer_length, char * result_buffer) = 0 ;
	virtual void __fastcall isc_decode_date(Ibase::PISC_QUAD ib_date, Ib_externals::PCTimeStructure tm_date) = 0 ;
	virtual void __fastcall isc_decode_sql_date(Ibase::PISC_DATE ib_date, Ib_externals::PCTimeStructure tm_date) = 0 ;
	virtual void __fastcall isc_decode_sql_time(Ibase::PISC_TIME ib_time, Ib_externals::PCTimeStructure tm_date) = 0 ;
	virtual void __fastcall isc_decode_timestamp(Ibase::PISC_TIMESTAMP ib_timestamp, Ib_externals::PCTimeStructure tm_date) = 0 ;
	virtual int __fastcall isc_detach_database(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle) = 0 ;
	virtual int __fastcall isc_drop_database(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle) = 0 ;
	virtual int __fastcall isc_dsql_alloc_statement2(const Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_STMT_HANDLE stmt_handle) = 0 ;
	virtual int __fastcall isc_dsql_describe(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, Word dialect, Ibase::PXSQLDA xsqlda) = 0 ;
	virtual int __fastcall isc_dsql_describe_bind(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, Word dialect, Ibase::PXSQLDA xsqlda) = 0 ;
	virtual int __fastcall isc_dsql_execute(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_STMT_HANDLE stmt_handle, Word dialect, Ibase::PXSQLDA xsqlda) = 0 ;
	virtual int __fastcall isc_dsql_execute2(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_STMT_HANDLE stmt_handle, Word dialect, Ibase::PXSQLDA in_xsqlda, Ibase::PXSQLDA out_xsqlda) = 0 ;
	virtual int __fastcall isc_dsql_execute_immediate(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE tran_handle, Word length, char * statement, Word dialect, Ibase::PXSQLDA xsqlda) = 0 ;
	virtual int __fastcall isc_dsql_exec_immed2(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE tran_handle, Word length, char * statement, Word dialect, Ibase::PXSQLDA in_xsqlda, Ibase::PXSQLDA out_xsqlda) = 0 ;
	virtual int __fastcall isc_dsql_fetch(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, Word dialect, Ibase::PXSQLDA xsqlda) = 0 ;
	virtual int __fastcall isc_dsql_free_statement(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, Word options) = 0 ;
	virtual int __fastcall isc_dsql_prepare(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_STMT_HANDLE stmt_handle, Word length, char * statement, Word dialect, Ibase::PXSQLDA xsqlda) = 0 ;
	virtual int __fastcall isc_dsql_set_cursor_name(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, char * cursor_name, Word _type) = 0 ;
	virtual int __fastcall isc_dsql_sql_info(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, short item_length, char * items, short buffer_length, char * buffer) = 0 ;
	virtual void __fastcall isc_encode_date(Ib_externals::PCTimeStructure tm_date, Ibase::PISC_QUAD ib_date) = 0 ;
	virtual void __fastcall isc_encode_sql_date(Ib_externals::PCTimeStructure tm_date, Ibase::PISC_DATE ib_date) = 0 ;
	virtual void __fastcall isc_encode_sql_time(Ib_externals::PCTimeStructure tm_date, Ibase::PISC_TIME ib_time) = 0 ;
	virtual void __fastcall isc_encode_timestamp(Ib_externals::PCTimeStructure tm_date, Ibase::PISC_TIMESTAMP ib_timestamp) = 0 ;
	virtual int __fastcall isc_event_block(Ib_externals::PPChar event_buffer, Ib_externals::PPChar result_buffer, Word id_count, char * * event_list, const int event_list_Size) = 0 ;
	virtual void __fastcall isc_event_counts(Ib_externals::PISC_STATUS status_vector, short buffer_length, char * event_buffer, char * result_buffer) = 0 ;
	virtual int __fastcall isc_free(char * isc_arg1) = 0 ;
	virtual int __fastcall isc_get_segment(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_BLOB_HANDLE blob_handle, Ib_externals::PUShort actual_seg_length, Word seg_buffer_length, char * seg_buffer) = 0 ;
	virtual int __fastcall isc_put_segment(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_BLOB_HANDLE blob_handle, Word seg_buffer_len, char * seg_buffer) = 0 ;
	virtual int __fastcall isc_interprete(char * buffer, Ib_externals::PPISC_STATUS status_vector) = 0 ;
	virtual int __fastcall isc_open_blob2(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_BLOB_HANDLE blob_handle, Ibase::PISC_QUAD blob_id, short bpb_length, char * bpb_buffer) = 0 ;
	virtual int __fastcall isc_prepare_transaction2(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, short msg_length, char * msg) = 0 ;
	virtual int __fastcall isc_rollback_retaining(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle) = 0 ;
	virtual int __fastcall isc_rollback_transaction(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle) = 0 ;
	virtual int __fastcall isc_start_multiple(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, short db_handle_count, Ibase::PISC_TEB teb_vector_address) = 0 ;
	virtual int __fastcall isc_sqlcode(Ib_externals::PISC_STATUS status_vector) = 0 ;
	virtual void __fastcall isc_sql_interprete(short sqlcode, char * buffer, short buffer_length) = 0 ;
	virtual int __fastcall isc_vax_integer(char * buffer, short length) = 0 ;
	virtual int __fastcall isc_add_user(Ib_externals::PISC_STATUS status_vector, Ibase::PUserSecData user_sec_data) = 0 ;
	virtual int __fastcall isc_delete_user(Ib_externals::PISC_STATUS status_vector, Ibase::PUserSecData user_sec_data) = 0 ;
	virtual int __fastcall isc_modify_user(Ib_externals::PISC_STATUS status_vector, Ibase::PUserSecData user_sec_data) = 0 ;
	virtual int __fastcall isc_prepare_transaction(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle) = 0 ;
	virtual int __fastcall BLOB_put(char isc_arg1, Ibase::PBSTREAM isc_arg2) = 0 ;
	virtual int __fastcall BLOB_get(Ibase::PBSTREAM isc_arg1) = 0 ;
	virtual int __fastcall isc_dsql_batch_execute_immed(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE tran_handle, Word Dialect, unsigned no_of_sql, Ib_externals::PPChar statement, Ib_externals::PULong rows_affected) = 0 ;
	virtual int __fastcall isc_dsql_batch_execute(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_STMT_HANDLE stmt_handle, Word Dialect, Ibase::PXSQLDA insqlda, Word no_of_rows, Ibase::PPXSQLVAR batch_vars, Ib_externals::PULong rows_affected) = 0 ;
	virtual int __fastcall isc_service_attach(Ib_externals::PISC_STATUS status_vector, Word isc_arg2, char * isc_arg3, Ibase::PISC_SVC_HANDLE service_handle, Word isc_arg5, char * isc_arg6) = 0 ;
	virtual int __fastcall isc_service_detach(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_SVC_HANDLE service_handle) = 0 ;
	virtual int __fastcall isc_service_query(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_SVC_HANDLE service_handle, Ibase::PISC_SVC_HANDLE recv_handle, Word isc_arg4, char * isc_arg5, Word isc_arg6, char * isc_arg7, Word isc_arg8, char * isc_arg9) = 0 ;
	virtual int __fastcall isc_service_start(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_SVC_HANDLE service_handle, Ibase::PISC_SVC_HANDLE recv_handle, Word isc_arg4, char * isc_arg5) = 0 ;
	virtual void __fastcall isc_get_client_version(char * buffer) = 0 ;
	virtual int __fastcall isc_get_client_major_version(void) = 0 ;
	virtual int __fastcall isc_get_client_minor_version(void) = 0 ;
	virtual __int64 __fastcall isc_portable_integer(char * buffer, short length) = 0 ;
	virtual void __fastcall FreeIBLibrary(void) = 0 ;
	__property AnsiString LibraryName = {read=GetLibName};
	__property int ClientMinorVersion = {read=GetIBClientMinorVersion};
	__property int ClientVersion = {read=GetIBClientVersion};
};

typedef Exception EAPICallException;
;

class DELPHICLASS TIBClientLibrary;
class PASCALIMPLEMENTATION TIBClientLibrary : public System::TInterfacedObject 
{
	typedef System::TInterfacedObject inherited;
	
private:
	unsigned FLibraryHandle;
	AnsiString FLibraryName;
	int FIBClientVersion;
	int FIBClientMinorVersion;
	Ibase::TBLOB_get FBLOB_get;
	Ibase::TBLOB_put FBLOB_put;
	Ibase::Tisc_sqlcode Fisc_sqlcode;
	Ibase::Tisc_sql_interprete Fisc_sql_interprete;
	Ibase::Tisc_interprete Fisc_interprete;
	Ibase::Tisc_vax_integer Fisc_vax_integer;
	Ibase::Tisc_blob_info Fisc_blob_info;
	Ibase::Tisc_open_blob2 Fisc_open_blob2;
	Ibase::Tisc_close_blob Fisc_close_blob;
	Ibase::Tisc_get_segment Fisc_get_segment;
	Ibase::Tisc_put_segment Fisc_put_segment;
	Ibase::Tisc_create_blob2 Fisc_create_blob2;
	Ibase::Tisc_blob_lookup_desc Fisc_blob_lookup_desc;
	Ibase::Tisc_blob_set_desc Fisc_blob_set_desc;
	Ibase::Tisc_cancel_blob Fisc_cancel_blob;
	Ibase::Tisc_service_attach Fisc_service_attach;
	Ibase::Tisc_service_detach Fisc_service_detach;
	Ibase::Tisc_service_query Fisc_service_query;
	Ibase::Tisc_service_start Fisc_service_start;
	Ibase::Tisc_decode_date Fisc_decode_date;
	Ibase::Tisc_decode_sql_date Fisc_decode_sql_date;
	Ibase::Tisc_decode_sql_time Fisc_decode_sql_time;
	Ibase::Tisc_decode_timestamp Fisc_decode_timestamp;
	Ibase::Tisc_encode_date Fisc_encode_date;
	Ibase::Tisc_encode_sql_date Fisc_encode_sql_date;
	Ibase::Tisc_encode_sql_time Fisc_encode_sql_time;
	Ibase::Tisc_encode_timestamp Fisc_encode_timestamp;
	Ibase::Tisc_dsql_free_statement Fisc_dsql_free_statement;
	Ibase::Tisc_dsql_execute2 Fisc_dsql_execute2;
	Ibase::Tisc_dsql_execute Fisc_dsql_execute;
	Ibase::Tisc_dsql_set_cursor_name Fisc_dsql_set_cursor_name;
	Ibase::Tisc_dsql_fetch Fisc_dsql_fetch;
	Ibase::Tisc_dsql_sql_info Fisc_dsql_sql_info;
	Ibase::Tisc_dsql_alloc_statement2 Fisc_dsql_alloc_statement2;
	Ibase::Tisc_dsql_prepare Fisc_dsql_prepare;
	Ibase::Tisc_dsql_describe_bind Fisc_dsql_describe_bind;
	Ibase::Tisc_dsql_describe Fisc_dsql_describe;
	Ibase::Tisc_dsql_execute_immediate Fisc_dsql_execute_immediate;
	Ibase::Tisc_dsql_exec_immed2 Fisc_dsql_exec_immed2;
	Ibase::Tisc_drop_database Fisc_drop_database;
	Ibase::Tisc_detach_database Fisc_detach_database;
	Ibase::Tisc_attach_database Fisc_attach_database;
	Ibase::Tisc_database_info Fisc_database_info;
	Ibase::Tisc_start_multiple Fisc_start_multiple;
	Ibase::Tisc_commit_transaction Fisc_commit_transaction;
	Ibase::Tisc_commit_retaining Fisc_commit_retaining;
	Ibase::Tisc_rollback_transaction Fisc_rollback_transaction;
	Ibase::Tisc_rollback_retaining Fisc_rollback_retaining;
	Ibase::Tisc_cancel_events Fisc_cancel_events;
	Ibase::Tisc_que_events Fisc_que_events;
	Ibase::Tisc_event_counts Fisc_event_counts;
	Ibase::Tisc_event_block Fisc_event_block;
	Ibase::Tisc_free Fisc_free;
	Ibase::Tisc_wait_for_event Fisc_wait_for_event;
	Ibase::Tisc_transaction_info Fisc_transaction_info;
	Ibase::Tisc_prepare_transaction Fisc_prepare_transaction;
	Ibase::Tisc_prepare_transaction2 Fisc_prepare_transaction2;
	Ibase::Tisc_array_lookup_bounds Fisc_array_lookup_bounds;
	Ibase::Tisc_array_get_slice Fisc_array_get_slice;
	Ibase::Tisc_array_put_slice Fisc_array_put_slice;
	Ibase::Tisc_array_set_desc Fisc_array_set_desc;
	Ibase::Tisc_array_lookup_desc Fisc_array_lookup_desc;
	Ibase::Tisc_portable_integer Fisc_portable_integer;
	Ibase::Tisc_add_user Fisc_add_user;
	Ibase::Tisc_delete_user Fisc_delete_user;
	Ibase::Tisc_modify_user Fisc_modify_user;
	Ibase::Tisc_get_client_version Fisc_get_client_version;
	Ibase::Tisc_get_client_major_version Fisc_get_client_major_version;
	Ibase::Tisc_get_client_minor_version Fisc_get_client_minor_version;
	Ibase::Tisc_dsql_batch_execute_immed Fisc_dsql_batch_execute_immed;
	Ibase::Tisc_dsql_batch_execute Fisc_dsql_batch_execute;
	AnsiString __fastcall GetLibName();
	int __fastcall GetIBClientVersion(void);
	int __fastcall GetIBClientMinorVersion(void);
	int __fastcall isc_attach_database(Ib_externals::PISC_STATUS status_vector, short db_name_length, char * db_name, Ibase::PISC_DB_HANDLE db_handle, short parm_buffer_length, char * parm_buffer);
	int __fastcall isc_array_get_slice(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE trans_handle, Ibase::PISC_QUAD array_id, Ibase::PISC_ARRAY_DESC descriptor, Ib_externals::PVoid dest_array, int slice_length);
	int __fastcall isc_array_lookup_bounds(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE trans_handle, char * table_name, char * column_name, Ibase::PISC_ARRAY_DESC descriptor);
	int __fastcall isc_array_lookup_desc(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE trans_handle, char * table_name, char * column_name, Ibase::PISC_ARRAY_DESC descriptor);
	int __fastcall isc_array_set_desc(Ib_externals::PISC_STATUS status_vector, char * table_name, char * column_name, Ib_externals::PShort sql_dtype, Ib_externals::PShort sql_length, Ib_externals::PShort sql_dimensions, Ibase::PISC_ARRAY_DESC descriptor);
	int __fastcall isc_array_put_slice(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE trans_handle, Ibase::PISC_QUAD array_id, Ibase::PISC_ARRAY_DESC descriptor, Ib_externals::PVoid source_array, Ib_externals::PISC_LONG slice_length);
	int __fastcall isc_blob_info(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_BLOB_HANDLE blob_handle, short item_list_buffer_length, char * item_list_buffer, short result_buffer_length, char * result_buffer);
	int __fastcall isc_blob_lookup_desc(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE trans_handle, char * table_name, char * column_name, Ibase::PISC_BLOB_DESC descriptor, Ib_externals::PUChar global);
	int __fastcall isc_blob_set_desc(Ib_externals::PISC_STATUS status_vector, char * table_name, char * column_name, short subtype, short charset, short segment_size, Ibase::PISC_BLOB_DESC descriptor);
	int __fastcall isc_cancel_blob(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_BLOB_HANDLE blob_handle);
	int __fastcall isc_cancel_events(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ib_externals::PISC_LONG event_id);
	int __fastcall isc_que_events(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ib_externals::PISC_LONG event_id, short length, char * event_buffer, Ibase::TISC_CALLBACK event_function, Ib_externals::PVoid event_function_arg);
	int __fastcall isc_wait_for_event(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, short length, char * event_buffer, char * result_buffer);
	int __fastcall isc_close_blob(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_BLOB_HANDLE blob_handle);
	int __fastcall isc_commit_retaining(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle);
	int __fastcall isc_commit_transaction(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle);
	int __fastcall isc_transaction_info(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, short item_list_buffer_length, char * item_list_buffer, short result_buffer_length, char * result_buffer);
	int __fastcall isc_create_blob2(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_BLOB_HANDLE blob_handle, Ibase::PISC_QUAD blob_id, short bpb_length, char * bpb_address);
	int __fastcall isc_database_info(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, short item_list_buffer_length, char * item_list_buffer, short result_buffer_length, char * result_buffer);
	void __fastcall isc_decode_date(Ibase::PISC_QUAD ib_date, Ib_externals::PCTimeStructure tm_date);
	void __fastcall isc_decode_sql_date(Ibase::PISC_DATE ib_date, Ib_externals::PCTimeStructure tm_date);
	void __fastcall isc_decode_sql_time(Ibase::PISC_TIME ib_time, Ib_externals::PCTimeStructure tm_date);
	void __fastcall isc_decode_timestamp(Ibase::PISC_TIMESTAMP ib_timestamp, Ib_externals::PCTimeStructure tm_date);
	int __fastcall isc_detach_database(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle);
	int __fastcall isc_drop_database(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle);
	int __fastcall isc_dsql_alloc_statement2(const Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_STMT_HANDLE stmt_handle);
	int __fastcall isc_dsql_describe(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, Word dialect, Ibase::PXSQLDA xsqlda);
	int __fastcall isc_dsql_describe_bind(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, Word dialect, Ibase::PXSQLDA xsqlda);
	int __fastcall isc_dsql_execute(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_STMT_HANDLE stmt_handle, Word dialect, Ibase::PXSQLDA xsqlda);
	int __fastcall isc_dsql_execute2(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_STMT_HANDLE stmt_handle, Word dialect, Ibase::PXSQLDA in_xsqlda, Ibase::PXSQLDA out_xsqlda);
	int __fastcall isc_dsql_execute_immediate(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE tran_handle, Word length, char * statement, Word dialect, Ibase::PXSQLDA xsqlda);
	int __fastcall isc_dsql_exec_immed2(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE tran_handle, Word length, char * statement, Word dialect, Ibase::PXSQLDA in_xsqlda, Ibase::PXSQLDA out_xsqlda);
	int __fastcall isc_dsql_fetch(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, Word dialect, Ibase::PXSQLDA xsqlda);
	int __fastcall isc_dsql_free_statement(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, Word options);
	int __fastcall isc_dsql_prepare(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_STMT_HANDLE stmt_handle, Word length, char * statement, Word dialect, Ibase::PXSQLDA xsqlda);
	int __fastcall isc_dsql_set_cursor_name(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, char * cursor_name, Word _type);
	int __fastcall isc_dsql_sql_info(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_STMT_HANDLE stmt_handle, short item_length, char * items, short buffer_length, char * buffer);
	void __fastcall isc_encode_date(Ib_externals::PCTimeStructure tm_date, Ibase::PISC_QUAD ib_date);
	void __fastcall isc_encode_sql_date(Ib_externals::PCTimeStructure tm_date, Ibase::PISC_DATE ib_date);
	void __fastcall isc_encode_sql_time(Ib_externals::PCTimeStructure tm_date, Ibase::PISC_TIME ib_time);
	void __fastcall isc_encode_timestamp(Ib_externals::PCTimeStructure tm_date, Ibase::PISC_TIMESTAMP ib_timestamp);
	int __fastcall isc_event_block(Ib_externals::PPChar event_buffer, Ib_externals::PPChar result_buffer, Word id_count, char * * event_list, const int event_list_Size);
	void __fastcall isc_event_counts(Ib_externals::PISC_STATUS status_vector, short buffer_length, char * event_buffer, char * result_buffer);
	int __fastcall isc_free(char * isc_arg1);
	int __fastcall isc_get_segment(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_BLOB_HANDLE blob_handle, Ib_externals::PUShort actual_seg_length, Word seg_buffer_length, char * seg_buffer);
	int __fastcall isc_put_segment(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_BLOB_HANDLE blob_handle, Word seg_buffer_len, char * seg_buffer);
	int __fastcall isc_interprete(char * buffer, Ib_externals::PPISC_STATUS status_vector);
	int __fastcall isc_open_blob2(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_BLOB_HANDLE blob_handle, Ibase::PISC_QUAD blob_id, short bpb_length, char * bpb_buffer);
	int __fastcall isc_prepare_transaction2(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, short msg_length, char * msg);
	int __fastcall isc_rollback_retaining(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle);
	int __fastcall isc_rollback_transaction(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle);
	int __fastcall isc_start_multiple(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, short db_handle_count, Ibase::PISC_TEB teb_vector_address);
	int __fastcall isc_sqlcode(Ib_externals::PISC_STATUS status_vector);
	void __fastcall isc_sql_interprete(short sqlcode, char * buffer, short buffer_length);
	int __fastcall isc_vax_integer(char * buffer, short length);
	int __fastcall isc_add_user(Ib_externals::PISC_STATUS status_vector, Ibase::PUserSecData user_sec_data);
	int __fastcall isc_delete_user(Ib_externals::PISC_STATUS status_vector, Ibase::PUserSecData user_sec_data);
	int __fastcall isc_modify_user(Ib_externals::PISC_STATUS status_vector, Ibase::PUserSecData user_sec_data);
	int __fastcall isc_prepare_transaction(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle);
	int __fastcall BLOB_put(char isc_arg1, Ibase::PBSTREAM isc_arg2);
	int __fastcall BLOB_get(Ibase::PBSTREAM isc_arg1);
	int __fastcall isc_service_attach(Ib_externals::PISC_STATUS status_vector, Word isc_arg2, char * isc_arg3, Ibase::PISC_SVC_HANDLE service_handle, Word isc_arg5, char * isc_arg6);
	int __fastcall isc_service_detach(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_SVC_HANDLE service_handle);
	int __fastcall isc_service_query(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_SVC_HANDLE service_handle, Ibase::PISC_SVC_HANDLE recv_handle, Word isc_arg4, char * isc_arg5, Word isc_arg6, char * isc_arg7, Word isc_arg8, char * isc_arg9);
	int __fastcall isc_service_start(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_SVC_HANDLE service_handle, Ibase::PISC_SVC_HANDLE recv_handle, Word isc_arg4, char * isc_arg5);
	void __fastcall isc_get_client_version(char * buffer);
	int __fastcall isc_get_client_major_version(void);
	int __fastcall isc_get_client_minor_version(void);
	__int64 __fastcall isc_portable_integer(char * buffer, short length);
	int __fastcall isc_dsql_batch_execute_immed(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_DB_HANDLE db_handle, Ibase::PISC_TR_HANDLE tran_handle, Word Dialect, unsigned no_of_sql, Ib_externals::PPChar statement, Ib_externals::PULong rows_affected);
	int __fastcall isc_dsql_batch_execute(Ib_externals::PISC_STATUS status_vector, Ibase::PISC_TR_HANDLE tran_handle, Ibase::PISC_STMT_HANDLE stmt_handle, Word Dialect, Ibase::PXSQLDA insqlda, Word no_of_rows, Ibase::PPXSQLVAR batch_vars, Ib_externals::PULong rows_affected);
	
public:
	__fastcall TIBClientLibrary(const AnsiString aLibName);
	__fastcall virtual ~TIBClientLibrary(void);
	void __fastcall LoadIBLibrary(void);
	void __fastcall FreeIBLibrary(void);
private:
	void *__IIBClientLibrary;	/* Ib_intf::IIBClientLibrary */
	
public:
	operator IIBClientLibrary*(void) { return (IIBClientLibrary*)&__IIBClientLibrary; }
	
};


//-- var, const, procedure ---------------------------------------------------
static const Word IBDateDelta = 0x3aaa;
extern PACKAGE char describe_bind_info[12];
extern PACKAGE char describe_select_info[13];
extern PACKAGE Ib_installheader::Tisc_install_clear_options isc_install_clear_options;
extern PACKAGE Ib_installheader::Tisc_install_execute isc_install_execute;
extern PACKAGE Ib_installheader::Tisc_install_get_info isc_install_get_info;
extern PACKAGE Ib_installheader::Tisc_install_get_message isc_install_get_message;
extern PACKAGE Ib_installheader::Tisc_install_load_external_text isc_install_load_external_text;
extern PACKAGE Ib_installheader::Tisc_install_precheck isc_install_precheck;
extern PACKAGE Ib_installheader::Tisc_install_set_option isc_install_set_option;
extern PACKAGE Ib_installheader::Tisc_uninstall_execute isc_uninstall_execute;
extern PACKAGE Ib_installheader::Tisc_uninstall_precheck isc_uninstall_precheck;
extern PACKAGE Ib_installheader::Tisc_install_unset_option isc_install_unset_option;
extern PACKAGE _di_IIBClientLibrary __fastcall GetClientLibrary(const AnsiString aLibName);
extern PACKAGE void __fastcall LoadIBInstallLibrary(void);
extern PACKAGE void __fastcall FreeIBInstallLibrary(void);
extern PACKAGE void __fastcall CheckIBInstallLoaded(void);

}	/* namespace Ib_intf */
using namespace Ib_intf;
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Ib_intf
