⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdint.hpp

📁 SQLDirect Component Library is a light-weight Borland Database Engine replacement for Borland Delphi
💻 HPP
📖 第 1 页 / 共 5 页
字号:
typedef TISC_TEB TISC_TEB_ARRAY[1];

typedef TISC_TEB *PISC_TEB_ARRAY;

struct TUSER_SEC_DATA
{
	short sec_flags;
	int uid;
	int gid;
	int protocol;
	char *server;
	char *user_name;
	char *password;
	char *group_name;
	char *first_name;
	char *middle_name;
	char *last_name;
	char *dba_user_name;
	char *dba_password;
} ;

typedef TUSER_SEC_DATA *PUSER_SEC_DATA;

class DELPHICLASS TIntFunctions;
class PASCALIMPLEMENTATION TIntFunctions : public System::TObject 
{
	typedef System::TObject inherited;
	
protected:
	unsigned FLibHandle;
	
public:
	int __stdcall (*isc_attach_database)(PISC_STATUS status_vector, short db_name_length, char * db_name
		, PISC_DB_HANDLE db_handle, short parm_buffer_length, char * parm_buffer);
	void __stdcall (*isc_blob_default_desc)(PISC_BLOB_DESC desc, char * table_name, char * column_name)
		;
	int __stdcall (*isc_blob_gen_bpb)(PISC_STATUS status_vector, PISC_BLOB_DESC to_desc, PISC_BLOB_DESC 
		from_desc, Word bpb_buffer_length, char * bpb_buffer, PUShort bpb_length);
	int __stdcall (*isc_blob_info)(PISC_STATUS status_vector, void * &blob_handle, short item_list_buffer_length
		, char * item_list_buffer, short result_buffer_length, char * result_buffer);
	int __stdcall (*isc_blob_lookup_desc)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, PISC_TR_HANDLE 
		trans_handle, char * table_name, char * column_name, PISC_BLOB_DESC desc, char * global_column_name
		);
	int __stdcall (*isc_blob_set_desc)(PISC_STATUS status_vector, char * table_name, char * column_name
		, short subtype, short charset, short segment_size, PISC_BLOB_DESC desc);
	int __stdcall (*isc_cancel_blob)(PISC_STATUS status_vector, void * &blob_handle);
	int __stdcall (*isc_cancel_events)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, PISC_LONG event_id
		);
	int __stdcall (*isc_close_blob)(PISC_STATUS status_vector, void * &blob_handle);
	int __stdcall (*isc_commit_retaining)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle);
	int __stdcall (*isc_commit_transaction)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle);
	int __stdcall (*isc_create_blob)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, PISC_TR_HANDLE 
		tran_handle, void * &blob_handle, PISC_QUAD blob_id);
	int __stdcall (*isc_create_blob2)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, PISC_TR_HANDLE 
		tran_handle, void * &blob_handle, PISC_QUAD blob_id, short bpb_length, char * bpb_address);
	int __stdcall (*isc_create_database)(PISC_STATUS status_vector, short db_name_length, char * db_name
		, PISC_DB_HANDLE db_handle, short parm_buffer_length, char * parm_buffer, short parm_7);
	int __stdcall (*isc_database_info)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, short item_list_buffer_length
		, char * item_list_buffer, short result_buffer_length, char * result_buffer);
	void __stdcall (*isc_decode_date)(PISC_QUAD ib_date, TTimeDateRec &tm_date);
	void __stdcall (*isc_decode_sql_date)(PISC_DATE ib_date, TTimeDateRec &tm_date);
	void __stdcall (*isc_decode_sql_time)(PISC_TIME ib_time, TTimeDateRec &tm_date);
	void __stdcall (*isc_decode_timestamp)(PISC_TIMESTAMP ib_timestamp, TTimeDateRec &tm_date);
	int __stdcall (*isc_detach_database)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle);
	int __stdcall (*isc_drop_database)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle);
	int __stdcall (*isc_dsql_allocate_statement)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, PISC_STMT_HANDLE 
		stmt_handle);
	int __stdcall (*isc_dsql_alloc_statement2)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, PISC_STMT_HANDLE 
		stmt_handle);
	int __stdcall (*isc_dsql_describe)(PISC_STATUS status_vector, PISC_STMT_HANDLE stmt_handle, Word dialect
		, PXSQLDA xsqlda);
	int __stdcall (*isc_dsql_describe_bind)(PISC_STATUS status_vector, PISC_STMT_HANDLE stmt_handle, Word 
		dialect, PXSQLDA xsqlda);
	int __stdcall (*isc_dsql_execute)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle, PISC_STMT_HANDLE 
		stmt_handle, Word dialect, PXSQLDA xsqlda);
	int __stdcall (*isc_dsql_execute2)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle, PISC_STMT_HANDLE 
		stmt_handle, Word dialect, PXSQLDA in_xsqlda, PXSQLDA out_xsqlda);
	int __stdcall (*isc_dsql_execute_immediate)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, PISC_TR_HANDLE 
		tran_handle, Word length, char * statement, Word dialect, PXSQLDA xsqlda);
	int __stdcall (*isc_dsql_exec_immed2)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, PISC_TR_HANDLE 
		tran_handle, Word length, char * statement, Word dialect, PXSQLDA in_xsqlda, PXSQLDA out_xsqlda);
	int __stdcall (*isc_dsql_fetch)(PISC_STATUS status_vector, PISC_STMT_HANDLE stmt_handle, Word dialect
		, PXSQLDA xsqlda);
	int __stdcall (*isc_dsql_finish)(PISC_DB_HANDLE db_handle);
	int __stdcall (*isc_dsql_free_statement)(PISC_STATUS status_vector, PISC_STMT_HANDLE stmt_handle, Word 
		option);
	int __stdcall (*isc_dsql_prepare)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle, PISC_STMT_HANDLE 
		stmt_handle, Word length, char * statement, Word dialect, PXSQLDA xsqlda);
	int __stdcall (*isc_dsql_set_cursor_name)(PISC_STATUS status_vector, PISC_STMT_HANDLE stmt_handle, 
		char * cursor_name, Word type_reserved);
	int __stdcall (*isc_dsql_sql_info)(PISC_STATUS status_vector, PISC_STMT_HANDLE stmt_handle, short item_length
		, char * items, short buffer_length, char * buffer);
	void __stdcall (*isc_encode_date)(TTimeDateRec &tm_date, PISC_QUAD ib_date);
	void __stdcall (*isc_encode_sql_date)(TTimeDateRec &tm_date, PISC_DATE ib_date);
	void __stdcall (*isc_encode_sql_time)(TTimeDateRec &tm_date, PISC_TIME ib_time);
	void __stdcall (*isc_encode_timestamp)(TTimeDateRec &tm_date, PISC_TIMESTAMP ib_timestamp);
	void __stdcall (*isc_event_counts)(PISC_STATUS status_vector, short buffer_length, char * event_buffer
		, char * result_buffer);
	int __stdcall (*isc_get_segment)(PISC_STATUS status_vector, void * &blob_handle, Word &actual_seg_length
		, Word seg_buffer_length, char * seg_buffer);
	int __stdcall (*isc_interprete)(char * buffer, PISC_STATUS &status_vector);
	int __stdcall (*isc_open_blob)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, PISC_TR_HANDLE 
		tran_handle, void * &blob_handle, PISC_QUAD blob_id);
	int __stdcall (*isc_open_blob2)(PISC_STATUS status_vector, PISC_DB_HANDLE db_handle, PISC_TR_HANDLE 
		tran_handle, void * &blob_handle, const TGDS_QUAD blob_id, short bpb_length, char * bpb_buffer);
	int __stdcall (*isc_prepare_transaction)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle);
	int __stdcall (*isc_prepare_transaction2)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle, short 
		msg_length, char * msg);
	void __stdcall (*isc_print_sqlerror)(short sqlcode, PISC_STATUS status_vector);
	int __stdcall (*isc_print_status)(PISC_STATUS status_vector);
	int __stdcall (*isc_put_segment)(PISC_STATUS status_vector, void * &blob_handle, Word seg_buffer_len
		, char * seg_buffer);
	int __stdcall (*isc_rollback_retaining)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle);
	int __stdcall (*isc_rollback_transaction)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle);
	int __stdcall (*isc_start_multiple)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle, short db_handle_count
		, TISC_TEB &teb_vector_address);
	int __cdecl (*isc_start_transaction)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle, short db_handle_count
		, PISC_DB_HANDLE db_handle, int tpb_length, char * tpb_address);
	int __stdcall (*isc_sqlcode)(PISC_STATUS &status_vector);
	void __stdcall (*isc_sql_interprete)(short sql_code, char * buffer, short buffer_length);
	int __stdcall (*isc_transaction_info)(PISC_STATUS status_vector, PISC_TR_HANDLE tran_handle, short 
		item_list_buffer_length, char * item_list_buffer, short result_buffer_length, char * result_buffer
		);
	int __stdcall (*isc_vax_integer)(char * buffer, short length);
	int __stdcall (*isc_version)(PISC_DB_HANDLE db_handle, TISC_CALLBACK isc_arg2, void * isc_arg3);
	int __stdcall (*isc_add_user)(PISC_STATUS status_vector, TUSER_SEC_DATA &user_sec_data);
	int __stdcall (*isc_delete_user)(PISC_STATUS status_vector, TUSER_SEC_DATA &user_sec_data);
	int __stdcall (*isc_modify_user)(PISC_STATUS status_vector, TUSER_SEC_DATA &user_sec_data);
	virtual void __fastcall SetApiCalls(unsigned ASqlLibModule);
	virtual void __fastcall ClearApiCalls(void);
	bool __fastcall IsAvailFunc(AnsiString AName);
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TIntFunctions(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TIntFunctions(void) { }
	#pragma option pop
	
};


class DELPHICLASS ESDIntError;
class PASCALIMPLEMENTATION ESDIntError : public Sdcommon::ESDEngineError 
{
	typedef Sdcommon::ESDEngineError inherited;
	
public:
	#pragma option push -w-inl
	/* ESDEngineError.Create */ inline __fastcall ESDIntError(int AErrorCode, int ANativeError, const AnsiString 
		Msg, int AErrorPos) : Sdcommon::ESDEngineError(AErrorCode, ANativeError, Msg, AErrorPos) { }
	#pragma option pop
	#pragma option push -w-inl
	/* ESDEngineError.CreateDefPos */ inline __fastcall virtual ESDIntError(int AErrorCode, int ANativeError
		, const AnsiString Msg) : Sdcommon::ESDEngineError(AErrorCode, ANativeError, Msg) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall ESDIntError(const AnsiString Msg, const System::TVarRec 
		* Args, const int Args_Size) : Sdcommon::ESDEngineError(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall ESDIntError(int Ident)/* overload */ : Sdcommon::ESDEngineError(
		Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall ESDIntError(int Ident, const System::TVarRec * Args, 
		const int Args_Size)/* overload */ : Sdcommon::ESDEngineError(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall ESDIntError(const AnsiString Msg, int AHelpContext) : 
		Sdcommon::ESDEngineError(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall ESDIntError(const AnsiString Msg, const System::TVarRec 
		* Args, const int Args_Size, int AHelpContext) : Sdcommon::ESDEngineError(Msg, Args, Args_Size, AHelpContext
		) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall ESDIntError(int Ident, int AHelpContext)/* overload */
		 : Sdcommon::ESDEngineError(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall ESDIntError(System::PResStringRec ResStringRec, 
		const System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Sdcommon::ESDEngineError(
		ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~ESDIntError(void) { }
	#pragma option pop
	
};


typedef TMetaClass*ESDIntErrorClass;

#pragma pack(push, 1)
struct TIIntConnInfo
{
	Byte ServerType;
	void * *DBHandle;
	void * *TRHandle;
} ;
#pragma pack(pop)

class DELPHICLASS TICustomIntDatabase;
class PASCALIMPLEMENTATION TICustomIntDatabase : public Sdcommon::TISqlDatabase 
{
	typedef Sdcommon::TISqlDatabase inherited;
	
private:
	void *FHandle;
	AnsiString FDPBBuffer;
	short FDPBVersionLength;
	short FDPBLength;
	char *FTPBBuffer;
	Word FTPBConstLength;
	Word FTPBLength;
	int *FesvPtr;
	bool FIsEnableInts;
	int FSQLDialect;
	bool FTransActive;
	bool FTransRetaining;
	TIntFunctions* __fastcall GetApiCalls(void);
	PISC_DB_HANDLE __fastcall GetDBHandle(void);
	PISC_TR_HANDLE __fastcall GetTRHandle(void);
	
protected:
	TIntFunctions* FApiCalls;
	virtual void __fastcall AllocHandle(bool DBHandles);
	virtual void __fastcall FreeHandle(bool DBHandles);
	void __fastcall Check(int Status);
	bool __fastcall ConstructTPB(void);
	void __fastcall ConstructDPB(AnsiString sUserName, AnsiString sPassword);
	bool __fastcall IsPreservedOnRollback(void);
	virtual void __fastcall FreeSqlLib(void) = 0 ;
	virtual void __fastcall LoadSqlLib(void) = 0 ;
	virtual TMetaClass* __fastcall GetErrorClass(void) = 0 ;
	virtual void * __fastcall GetHandle(void);
	virtual void __fastcall DoConnect(const AnsiString sRemoteDatabase, const AnsiString sUserName, const 
		AnsiString sPassword);
	virtual void __fastcall DoDisconnect(bool Force);
	virtual void __fastcall DoCommit(void);
	virtual void __fastcall DoRollback(void);
	virtual void __fastcall DoStartTransaction(void);
	virtual void __fastcall SetAutoCommitOption(bool Value);
	virtual void __fastcall SetHandle(void * AHandle);
	
public:
	__fastcall virtual TICustomIntDatabase(Classes::TStrings* ADbParams);
	__fastcall virtual ~TICustomIntDatabase(void);
	virtual int __fastcall GetClientVersion(void);
	virtual int __fastcall GetServerVersion(void);
	virtual AnsiString __fastcall GetVersionString(void);
	virtual Sdcommon::TISqlCommand* __fastcall GetSchemaInfo(Sdcommon::TSDSchemaType ASchemaType, AnsiString 
		AObjectName);
	virtual void __fastcall SetTransIsolation(Sdcommon::TISqlTransIsolation Value);
	virtual bool __fastcall SPDescriptionsAvailable(void);
	virtual bool __fastcall TestConnected(void);
	__property TIntFunctions* ApiCalls = {read=GetApiCalls};
	__property PISC_DB_HANDLE DBHandle = {read=GetDBHandle};
	__property PISC_TR_HANDLE TRHandle = {read=GetTRHandle};
	__property bool IsEnableInts = {read=FIsEnableInts, nodefault};
	__property int SQLDialect = {read=FSQLDialect, nodefault};
};


typedef int TLongIntArray[1];

typedef int *PLongIntArray;

class DELPHICLASS TICustomIntCommand;
class PASCALIMPLEMENTATION TICustomIntCommand : public Sdcommon::TISqlCommand 
{
	typedef Sdcommon::TISqlCommand inherited;
	
private:
	void * *FPStmtHandle;
	int *FesvPtr;
	TXSQLDA *FOutXSQLDA;
	TXSQLDA *FInXSQLDA;
	int FStmtType;
	int FBaseSelectBufferSize;
	int FBaseBindBufferSize;
	int FPseudoBlobSelBufOffs;
	bool FExecuted;
	Db::TFieldType __fastcall IBFieldDataType(const TXSQLVAR &SqlVar);
	int __fastcall IBReadBlob(PISC_QUAD BlobIDPtr, Sdcommon::TBytes &BlobData);
	int __fastcall IBWriteBlobParam(PISC_QUAD BlobIDPtr, const char * Buffer, int Count);
	void __fastcall IBAllocOutDescs(void);
	void __fastcall IBFreeOutDescs(void);
	void __fastcall IBAllocInDescs(void);
	void __fastcall IBFreeInDescs(void);
	void __fastcall CnvtCurrencyToDBNumeric(System::Currency Curr, TXSQLVAR &SqlVar);
	System::Currency __fastcall CnvtDBNumericToCurrency(const TXSQLVAR &SqlVar, char * InData);
	double __fastcall CnvtDBNumericToFloat(const TXSQLVAR &SqlVar, char * InData);
	Db::TDateTimeRec __fastcall CnvtDBDateTime2DateTimeRec(Db::TFieldType ADataType, char * Buffer, int 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -