📄 sqlapi.h
字号:
void *m_pReaderAddlData; unsigned char *m_pReaderBuf; unsigned int m_nReaderAlloc; unsigned int m_nExpectedSizeMax; unsigned int m_nReaderRead; unsigned int m_nPieceSize; unsigned int PrepareReader( unsigned int nExpectedSizeMax, // to optimaze buf allocation for internal buffer, 0 = unknown unsigned int nCallerMaxSize, // max Piece that can be proceeced by API unsigned char *&pBuf, saLongOrLobReader_t fnReader, unsigned int nReaderWantedPieceSize, void *pReaderAddlData, bool bAddSpaceForNull = false); void InvokeReader( SAPieceType_t ePieceType, unsigned char *&pBuf, unsigned int nPieceLen); SAString asLongOrLob() const;protected: SADataType_t m_eDataType; // null indicator bool *m_pbNull; // scalar types void *m_pScalar; // an exact numeric value with a fixed precision and scale SANumeric *m_pNumeric; // Date time SADateTime *m_pDateTime; // Time interval SAInterval *m_pInterval; // variable length types (string, bytes, Longs and Lobs) SAString *m_pString; // Cursor SACommand *m_pCursor;private: // null indicator bool m_bInternalNull; // scalar types union { bool m_Bool; short m_Short; unsigned short m_uShort; long m_Long; unsigned long m_uLong; double m_Double; } m_InternalScalar; SANumeric m_InternalNumeric; SADateTime m_InternalDateTime; SAInterval m_InternalInterval; // variable length types (string, bytes, Longs and Lobs) SAString m_InternalString; // Cursor SACommand m_InternalCursor;public: SAValueRead(SADataType_t eDataType); SAValueRead(const SAValueRead &vr); virtual ~SAValueRead(); SAValueRead &operator =(const SAValueRead &vr);public: SADataType_t DataType() const; // Null type bool isNull() const; // scalar types bool asBool() const; short asShort() const; unsigned short asUShort() const; long asLong() const; unsigned long asULong() const; double asDouble() const; // numeric SANumeric asNumeric() const; // date/time SADateTime asDateTime() const; // Interval SAInterval asInterval() const; // variable length types SAString asString() const; SAString asBytes() const; SAString asLongBinary() const; SAString asLongChar() const; SAString asBLob() const; SAString asCLob() const; // cursor SACommand *asCursor() const; void setLongOrLobReaderMode(SALongOrLobReaderModes_t eMode); SALongOrLobReaderModes_t LongOrLobReaderMode() const; // operators for quick accessing values // do not inline to prevent varnings operator bool() const; operator short() const; operator unsigned short() const; operator long() const; operator unsigned long() const; operator double() const; operator SANumeric() const; operator SADateTime() const; operator SAInterval() const; operator SAString() const; operator SACommand *() const; // data and indicator storagepublic: void setIndicatorStorage(bool *pStorage); void setDataStorage(void *pStorage, SADataType_t eDataType);};class SQLAPI_API SAValue : public SAValueRead{ friend class ISACursor; friend class IibCursor; friend class IssDBLibCursor; friend class Iora7Cursor; friend class Iora8Cursor; friend class IsbCursor; friend class IodbcCursor; friend class Idb2Cursor; friend class IinfCursor; friend class IsybCursor; friend class ImyCursor; friend class IpgCursor; friend class Isl3Cursor;private: bool m_bInternalUseDefault;protected: bool *m_pbUseDefault; saLongOrLobWriter_t m_fnWriter; int m_nWriterSize; void *m_pWriterAddlData; void *m_pWriterBuf; unsigned int m_nWriterAlloc; unsigned int m_nWriterWritten; unsigned int InvokeWriter( SAPieceType_t &ePieceType, int nCallerMaxSize, void *&pBuf);public: SAValue(SADataType_t eDataType); virtual ~SAValue(); // Sets NULL value void setAsNull(); // Sets a flag to use default value void setAsDefault(); // queries if "default value" flag is set bool isDefault() const; void setAsUnknown(); // scalar types bool &setAsBool(); short &setAsShort(); unsigned short &setAsUShort(); long &setAsLong(); unsigned long &setAsULong(); double &setAsDouble(); // numeric SANumeric &setAsNumeric(); // date/time SADateTime &setAsDateTime(); // interval SAInterval &setAsInterval(); // variable length types SAString &setAsString(); SAString &setAsBytes(); SAString &setAsLongBinary( saLongOrLobWriter_t fnWriter = NULL, unsigned int nWriterSize = 0, void *pAddlData = NULL); SAString &setAsLongChar( saLongOrLobWriter_t fnWriter = NULL, unsigned int nWriterSize = 0, void *pAddlData = NULL); SAString &setAsBLob( saLongOrLobWriter_t fnWriter = NULL, unsigned int nWriterSize = 0, void *pAddlData = NULL); SAString &setAsCLob( saLongOrLobWriter_t fnWriter = NULL, unsigned int nWriterSize = 0, void *pAddlData = NULL); // cursor SACommand *&setAsCursor(); // special set function(s) SAValueRead &setAsValueRead();};class SQLAPI_API SAParam : public SAValue{ friend class SACommand; friend class saPlaceHolder; friend class saOptions; SACommand *m_pCommand; SAString m_sName; SADataType_t m_eParamType; int m_nNativeType; int m_nParamSize; int m_nParamPrecision; int m_nParamScale; SAParamDirType_t m_eDirType; saOptions m_Options;private: // disable copy constructor SAParam(const SAParam &); // disable assignment operator SAParam &operator = (const SAParam &);protected: SAParam( SACommand *pCommand, const SAString &sName, SADataType_t eParamType, int nNativeType, int nParamSize, int nParamPrecision, int nParamScale, SAParamDirType_t eDirType); virtual ~SAParam();public: const SAString &Name() const; SADataType_t ParamType() const; void setParamType(SADataType_t eParamType); int ParamNativeType() const; void setParamNativeType(int nNativeType); int ParamSize() const; void setParamSize(int nParamSize); SAParamDirType_t ParamDirType() const; void setParamDirType(SAParamDirType_t eParamDirType); int ParamPrecision() const; void setParamPrecision(int nParamPrecision); int ParamScale() const; void setParamScale(int nParamScale); void ReadLongOrLob( saLongOrLobReader_t fnReader, unsigned int nReaderWantedSize, void *pAddlData); SAString &setOption(const SAString &sOptionName); SAString Option(const SAString &sOptionName) const;};class SQLAPI_API saPlaceHolder{ friend class SACommand; SAString m_sFullName; int m_nStart; int m_nEnd; SAParam *m_pParamRef;private: saPlaceHolder( const SAString &sFullName, int nStart, int nEnd, SAParam *pParamRef); virtual ~saPlaceHolder();public: const SAString &getFullName() const; int& getStart(); int& getEnd(); SAParam *getParam() const;};class SQLAPI_API SABytes : public SAString{public: SABytes(const SAString &sData);};class SQLAPI_API SALongOrLob : public SAString{ friend class SACommand;protected: saLongOrLobWriter_t m_fnWriter; unsigned int m_nWriterPieceSize; void *m_pAddlData; SALongOrLob(const SAString &sData); SALongOrLob( saLongOrLobWriter_t fnWriter, unsigned int nWriterPieceSize, void *pAddlData);};class SQLAPI_API SALongBinary : public SALongOrLob{public: SALongBinary(const SAString &sData); SALongBinary( saLongOrLobWriter_t fnWriter, unsigned int nWriterPieceSize, void *pAddlData);};class SQLAPI_API SALongChar : public SALongOrLob{public: SALongChar(const SAString &sData); SALongChar( saLongOrLobWriter_t fnWriter, unsigned int nWriterPieceSize, void *pAddlData);};class SQLAPI_API SABLob : public SALongOrLob{public: SABLob(const SAString &sData); SABLob( saLongOrLobWriter_t fnWriter, unsigned int nWriterPieceSize, void *pAddlData);};class SQLAPI_API SACLob : public SALongOrLob{public: SACLob(const SAString &sData); SACLob( saLongOrLobWriter_t fnWriter, unsigned int nWriterPieceSize, void *pAddlData);};class SQLAPI_API SAField : public SAValueRead{ friend class SACommand; SACommand *m_pCommand; // as reported by describe API int m_nPos; // 1-based SAString m_sName; SADataType_t m_eFieldType; int m_nNativeType; int m_nFieldSize; int m_nFieldPrecision; int m_nFieldScale; bool m_bFieldRequired; saOptions m_Options;private: // disable copy constructor SAField(const SAField &); // disable assignment operator SAField &operator = (const SAField &);protected: SAField( SACommand *pCommand, int nPos, // 1-based const SAString &sName, SADataType_t eFieldType, int nNativeType, int nFieldSize, int nFieldPrecision, int nFieldScale, bool bFieldRequired); virtual ~SAField();public: int Pos() const; const SAString &Name() const; SADataType_t FieldType() const; int FieldNativeType() const; int FieldSize() const; int FieldPrecision() const; int FieldScale() const; bool isFieldRequired() const; // !!! void setFieldSize(int nSize); void setFieldType(SADataType_t eType); void ReadLongOrLob( saLongOrLobReader_t fnReader, unsigned int nReaderWantedSize, void *pAddlData); SAString &setOption(const SAString &sOptionName); SAString Option(const SAString &sOptionName) const;};class SQLAPI_API SAException#ifdef SQLAPI_EXCEPTION_DELIVERED_FROM : public SQLAPI_EXCEPTION_DELIVERED_FROM#endif{ friend class SAConnection; friend class SACommand; friend class SAStoredProc; friend class Iora7Connection; friend class Iora8Connection; friend class IibConnection; friend class IodbcConnection; friend class IsbConnection; friend class Iss6Connection;public: SAException( SAErrorClass_t eError, int nNativeError, int nErrPos, const SAString &sMsg); SAException( SAErrorClass_t eError, int nNativeError, int nErrPos, const SAChar *lpszFormat, ...); SAException(const SAException &other);public: virtual ~SAException(); static void SQLAPI_CALLBACK throwUserException( int nUserCode, const SAChar *lpszFormat, ...); SAErrorClass_t ErrClass() const; int ErrNativeCode() const; int ErrPos() const; SAString ErrText() const; #ifdef SQLAPI_EXCEPTION_HAS_CUSTOM_MEMBERS SQLAPI_EXCEPTION_HAS_CUSTOM_MEMBERS#endifprotected: SAErrorClass_t m_eErrorClass; int m_nNativeError; int m_nErrPos; SAString m_sMsg; int nReserved;};class SQLAPI_API SAUserException : public SAException{ friend class SAException;protected: SAUserException(int nUserCode, const SAString &sMsg);public: virtual ~SAUserException();};#define SQLAPI_VER_MAJOR 3#define SQLAPI_VER_MINOR 7#define SQLAPI_VER_BUILD 27//! Global SQLAPI++ settingsclass SQLAPI_API SAGlobals{public: static char * SQLAPI_CALLBACK setlocale(int category, const char *locale); static int GetVersionMajor(); static int GetVersionMinor(); static int GetVersionBuild(); static bool& UnloadAPI();};#endif // !defined(__SQLAPI_H__)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -