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

📄 sdora.hpp

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

typedef int *POCITypeParamMode;

typedef int OCICoherency;

typedef void *OCIType;

typedef void * *POCIType;

typedef void *OCITypeElem;

typedef void * *POCITypeElem;

typedef void *OCITypeMethod;

typedef void * *POCITypeMethod;

typedef char * *PPChar;

typedef int __cdecl (*TOCICallbackInBind)(Pdvoid ictxp, POCIBind phBind, int iter, int index, PPdvoid bufpp, ub4p alenp, ub1p piecep, PPdvoid indpp);

typedef int __cdecl (*TOCICallbackOutBind)(Pdvoid octxp, POCIBind phBind, int iter, int index, PPdvoid bufpp, ub4pp alenpp, ub1p piecep, PPdvoid indpp, ub2pp rcodepp);

typedef int __cdecl (*TOCICallbackDefine)(Pdvoid octxp, POCIDefine phDefn, int iter, PPdvoid bufpp, ub4pp alenpp, ub1p piecep, PPdvoid indpp, ub2pp rcodepp);

typedef int __cdecl (*TOCICallbackLobRead)(Pdvoid ctxp, const Pdvoid bufp, int len, Byte piece);

typedef int __cdecl (*TOCICallbackLobWrite)(Pdvoid ctxp, Pdvoid bufp, ub4p lenp, ub1p piece);

typedef int __cdecl (*TOCICallbackFailover)(Pdvoid svcctx, Pdvoid envctx, Pdvoid fo_ctx, int fo_type, int fo_event);

#pragma pack(push, 4)
struct TOCIFocbkStruct
{
	TOCICallbackFailover callback_function;
	void * *fo_ctx;
} ;
#pragma pack(pop)

typedef Pdvoid __cdecl (*Tmalocfp)(Pdvoid ctxp, int size);

typedef Pdvoid __cdecl (*Tralocfp)(Pdvoid ctxp, Pdvoid memptr, int newsize);

typedef void __cdecl (*Tmfreefp)(Pdvoid ctxp, Pdvoid memptr);

typedef int __cdecl (*TCBLobRead)(Pdvoid ctxp, const Pdvoid bufp, int len, Byte piece);

typedef int __cdecl (*TCBLobWrite)(Pdvoid ctxp, Pdvoid bufp, ub4p len, ub1p piece);

class DELPHICLASS ESDOraError;
class PASCALIMPLEMENTATION ESDOraError : public Sdcommon::ESDEngineError 
{
	typedef Sdcommon::ESDEngineError inherited;
	
public:
	#pragma option push -w-inl
	/* ESDEngineError.Create */ inline __fastcall ESDOraError(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 ESDOraError(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 ESDOraError(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 ESDOraError(int Ident)/* overload */ : Sdcommon::ESDEngineError(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall ESDOraError(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 ESDOraError(const AnsiString Msg, int AHelpContext) : Sdcommon::ESDEngineError(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall ESDOraError(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 ESDOraError(int Ident, int AHelpContext)/* overload */ : Sdcommon::ESDEngineError(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall ESDOraError(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 ~ESDOraError(void) { }
	#pragma option pop
	
};


#pragma pack(push, 1)
struct TIOraConnInfo
{
	Byte ServerType;
	cda_def *LdaPtr;
	int *HdaPtr;
	cda_def *CdaPtr;
} ;
#pragma pack(pop)

class DELPHICLASS TIOraDatabase;
class PASCALIMPLEMENTATION TIOraDatabase : public Sdcommon::TISqlDatabase 
{
	typedef Sdcommon::TISqlDatabase inherited;
	
private:
	void *FHandle;
	bool FIsEnableInts;
	void __fastcall Check(short Status);
	void __fastcall AllocHandle(void);
	void __fastcall FreeHandle(void);
	PCdaDef __fastcall GetCurHandle(void);
	PLdaDef __fastcall GetLdaPtr(void);
	int __fastcall GetMaxCharParamLen(void);
	virtual void __fastcall GetStmtResult(const AnsiString Stmt, Classes::TStrings* List);
	void __fastcall SetDefaultOptions(void);
	
protected:
	virtual void * __fastcall GetHandle(void);
	virtual void __fastcall DoConnect(const AnsiString ARemoteDatabase, const AnsiString AUserName, const AnsiString APassword);
	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);
	__property bool IsEnableInts = {read=FIsEnableInts, nodefault};
	__property PCdaDef CurHandle = {read=GetCurHandle};
	__property PLdaDef LdaPtr = {read=GetLdaPtr};
	
public:
	__fastcall virtual TIOraDatabase(Classes::TStrings* ADbParams);
	__fastcall virtual ~TIOraDatabase(void);
	virtual Sdcommon::TISqlCommand* __fastcall CreateSqlCommand(void);
	virtual int __fastcall GetClientVersion(void);
	virtual int __fastcall GetServerVersion(void);
	virtual AnsiString __fastcall GetVersionString();
	virtual Sdcommon::TISqlCommand* __fastcall GetSchemaInfo(Sdcommon::TSDSchemaType ASchemaType, AnsiString AObjectName);
	virtual int __fastcall ParamValue(Sdcommon::TSDDatabaseParam Value);
	virtual void __fastcall SetTransIsolation(Sdcommon::TISqlTransIsolation Value);
	virtual bool __fastcall SPDescriptionsAvailable(void);
	virtual bool __fastcall TestConnected(void);
};


class DELPHICLASS TIOraCommand;
class PASCALIMPLEMENTATION TIOraCommand : public Sdcommon::TISqlCommand 
{
	typedef Sdcommon::TISqlCommand inherited;
	
private:
	void *FHandle;
	AnsiString FStmt;
	void *FParamHandle;
	bool FBoundParams;
	bool FIsCursorParamExists;
	bool FIsGetFieldDescs;
	HIDESBASE TIOraDatabase* __fastcall GetSqlDatabase(void);
	void __fastcall Connect(void);
	void __fastcall CloseParamHandle(void);
	void __fastcall InternalExecute(void);
	void __fastcall InternalGetParams(void);
	void __fastcall QBindParamsBuffer(void);
	void __fastcall SpBindParamsBuffer(void);
	
protected:
	void __fastcall Check(short Status);
	bool __fastcall IsPLSQLBlockExecuted(void);
	virtual int __fastcall CnvtDateTime2DBDateTime(Db::TFieldType ADataType, System::TDateTime Value, char * Buffer, int BufSize);
	virtual Db::TFieldType __fastcall FieldDataType(int ExtDataType);
	virtual Word __fastcall NativeDataSize(Db::TFieldType FieldType);
	virtual int __fastcall NativeDataType(Db::TFieldType FieldType);
	virtual bool __fastcall RequiredCnvtFieldType(Db::TFieldType FieldType);
	virtual void __fastcall DoPrepare(AnsiString Value);
	virtual void __fastcall DoExecDirect(AnsiString Value);
	virtual void __fastcall DoExecute(void);
	virtual void __fastcall BindParamsBuffer(void);
	virtual void __fastcall FreeParamsBuffer(void);
	virtual void __fastcall GetFieldDescs(Sdcommon::TSDFieldDescList* Descs);
	virtual void * __fastcall GetHandle(void);
	virtual void __fastcall InitParamList(void);
	virtual void __fastcall SetFieldsBuffer(void);
	
public:
	__fastcall virtual TIOraCommand(Sdcommon::TISqlDatabase* ASqlDatabase);
	__fastcall virtual ~TIOraCommand(void);
	virtual void __fastcall CloseResultSet(void);
	virtual void __fastcall Disconnect(bool Force);
	virtual int __fastcall GetRowsAffected(void);
	virtual bool __fastcall ResultSetExists(void);
	virtual bool __fastcall FetchNextRow(void);
	virtual bool __fastcall GetCnvtFieldData(Sdcommon::TSDFieldDesc* AFieldDesc, void * Buffer, int BufSize);
	virtual void __fastcall GetOutputParams(void);
	virtual int __fastcall ReadBlob(Sdcommon::TSDFieldDesc* AFieldDesc, Sdcommon::TBytes &BlobData);
	virtual int __fastcall WriteBlob(int FieldNo, const char * Buffer, int Count);
	virtual int __fastcall WriteBlobByName(AnsiString Name, const char * Buffer, int Count);
	__property TIOraDatabase* SqlDatabase = {read=GetSqlDatabase};
};


#pragma pack(push, 1)
struct TIOra8ConnInfo
{
	Byte ServerType;
	void * *phEnv;
	void * *phErr;
	void * *phSvc;
	void * *phSrv;
	void * *phUsr;
} ;
#pragma pack(pop)

class DELPHICLASS TIOra8Database;
class PASCALIMPLEMENTATION TIOra8Database : public Sdcommon::TISqlDatabase 
{
	typedef Sdcommon::TISqlDatabase inherited;
	
private:
	void *FHandle;
	bool FIsEnableInts;
	bool FIsXAConn;
	bool FUseOCIDateTime;
	AnsiString FSessTimeZone;
	bool FTempLobSupported;
	void __fastcall AllocHandle(void);
	void __fastcall FreeHandle(bool Force);
	TIOra8ConnInfo __fastcall GetConnInfoStruct();
	int __fastcall GetMaxCharParamLen(void);
	POCIEnv __fastcall GetEnvPtr(void);
	POCIError __fastcall GetErrPtr(void);
	POCISvcCtx __fastcall GetSvcPtr(void);
	POCIServer __fastcall GetSrvPtr(void);
	POCISession __fastcall GetUsrPtr(void);
	void __fastcall GetStmtResult(const AnsiString Stmt, Classes::TStrings* List);
	void __fastcall SetConnInfoStruct(const TIOra8ConnInfo &Value);
	
protected:
	void __fastcall Check(short Status);
	void __fastcall CheckExt(short Status, POCIStmt AStmt);
	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);
	__property bool IsEnableInts = {read=FIsEnableInts, nodefault};
	__property bool IsXAConn = {read=FIsXAConn, nodefault};
	__property POCISvcCtx SvcPtr = {read=GetSvcPtr};
	__property POCIServer SrvPtr = {read=GetSrvPtr};
	__property POCISession UsrPtr = {read=GetUsrPtr};
	
public:
	__fastcall virtual TIOra8Database(Classes::TStrings* ADbParams);
	__fastcall virtual ~TIOra8Database(void);
	virtual Sdcommon::TISqlCommand* __fastcall CreateSqlCommand(void);
	virtual int __fastcall GetClientVersion(void);
	virtual int __fastcall GetServerVersion(void);
	virtual AnsiString __fastcall GetVersionString();
	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);
	bool __fastcall IsOra8BlobMode(void);
	bool __fastcall IsOra8BlobType(Db::TFieldType ADataType);
	bool __fastcall IsLocFieldSubType(Word ASubType);
	__property POCIEnv EnvPtr = {read=GetEnvPtr};
	__property POCIError ErrPtr = {read=GetErrPtr};
	__property AnsiString SessTimeZone = {read=FSessTimeZone};
	__property bool UseOCIDateTime = {read=FUseOCIDateTime, nodefault};
	__property bool TempLobSupported = {read=FTempLobSupported, nodefault};
};


typedef int __fastcall (*TOra8_get_cbf_get_long)(TOCICallbackDefine cbf_stdcall);

#pragma pack(push, 4)
struct TBindLobInfo
{
	void * *phBind;
	int ParamIdx;
} ;
#pragma pack(pop)

typedef DynamicArray<TBindLobInfo >  TBindLobArray;

#pragma pack(push, 4)
struct TBindLobRec
{
	void * *EnvPtr;
	void * *ErrPtr;
	int ColCount;
	int RowCount;
	void *BindInfoPtr;
	void *LobLocPtr;
	int *LobLenPtr;
} ;
#pragma pack(pop)

class DELPHICLASS TIOra8LobParams;
class PASCALIMPLEMENTATION TIOra8LobParams : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	void *FBindLobPtr;
	bool FExternalLobPtr;
	TBindLobInfo __fastcall GetBindInfo(int Index);
	POCIEnv __fastcall GetEnvPtr(void);
	POCIError __fastcall GetErrPtr(void);
	int __fastcall GetColCount(void);
	int __fastcall GetRowCount(void);
	void * __fastcall GetBindInfoPtr(void);
	void * __fastcall GetLobLocArrayPtr(void);
	void * __fastcall GetLobLenArrayPtr(void);
	void __fastcall SetBindInfo(int Index, const TBindLobInfo &Value);

⌨️ 快捷键说明

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