home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / Vcl / ibcustomdataset.hpp < prev    next >
C/C++ Source or Header  |  2000-02-01  |  24KB  |  612 lines

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 1999 by Borland International
  3. // All rights reserved
  4.  
  5. // (DO NOT EDIT: machine generated header) 'IBCustomDataSet.pas' rev: 5.00
  6.  
  7. #ifndef IBCustomDataSetHPP
  8. #define IBCustomDataSetHPP
  9.  
  10. #pragma delphiheader begin
  11. #pragma option push -w-
  12. #pragma option push -Vx
  13. #include <IBBlob.hpp>    // Pascal unit
  14. #include <IBUtils.hpp>    // Pascal unit
  15. #include <Db.hpp>    // Pascal unit
  16. #include <IBSQL.hpp>    // Pascal unit
  17. #include <IBDatabase.hpp>    // Pascal unit
  18. #include <IBHeader.hpp>    // Pascal unit
  19. #include <IB.hpp>    // Pascal unit
  20. #include <IBExternals.hpp>    // Pascal unit
  21. #include <StdVCL.hpp>    // Pascal unit
  22. #include <Controls.hpp>    // Pascal unit
  23. #include <Forms.hpp>    // Pascal unit
  24. #include <Classes.hpp>    // Pascal unit
  25. #include <SysUtils.hpp>    // Pascal unit
  26. #include <Windows.hpp>    // Pascal unit
  27. #include <SysInit.hpp>    // Pascal unit
  28. #include <System.hpp>    // Pascal unit
  29.  
  30. //-- user supplied -----------------------------------------------------------
  31.  
  32. namespace Ibcustomdataset
  33. {
  34. //-- type declarations -------------------------------------------------------
  35. class DELPHICLASS TIBDataSetUpdateObject;
  36. class DELPHICLASS TIBCustomDataSet;
  37. class PASCALIMPLEMENTATION TIBDataSetUpdateObject : public Classes::TComponent 
  38. {
  39.     typedef Classes::TComponent inherited;
  40.     
  41. private:
  42.     Classes::TStrings* FRefreshSQL;
  43.     void __fastcall SetRefreshSQL(Classes::TStrings* value);
  44.     
  45. protected:
  46.     virtual TIBCustomDataSet* __fastcall GetDataSet(void) = 0 ;
  47.     virtual void __fastcall SetDataSet(TIBCustomDataSet* ADataSet) = 0 ;
  48.     virtual void __fastcall Apply(Db::TUpdateKind UpdateKind) = 0 ;
  49.     virtual Classes::TStrings* __fastcall GetSQL(Db::TUpdateKind UpdateKind) = 0 ;
  50.     __property TIBCustomDataSet* DataSet = {read=GetDataSet, write=SetDataSet};
  51.     
  52. public:
  53.     __fastcall virtual TIBDataSetUpdateObject(Classes::TComponent* AOwner);
  54.     __fastcall virtual ~TIBDataSetUpdateObject(void);
  55.     
  56. __published:
  57.     __property Classes::TStrings* RefreshSQL = {read=FRefreshSQL, write=SetRefreshSQL};
  58. };
  59.  
  60.  
  61. typedef System::TDateTime *PDateTime;
  62.  
  63. typedef Ibblob::TIBBlobStream* TBlobDataArray[1];
  64.  
  65. typedef Ibblob::TIBBlobStream* *PBlobDataArray;
  66.  
  67. struct TFieldData
  68. {
  69.     short fdDataType;
  70.     short fdDataScale;
  71.     bool fdNullable;
  72.     bool fdIsNull;
  73.     short fdDataSize;
  74.     short fdDataLength;
  75.     int fdDataOfs;
  76. } ;
  77.  
  78. typedef TFieldData *PFieldData;
  79.  
  80. #pragma option push -b-
  81. enum TCachedUpdateStatus { cusUnmodified, cusModified, cusInserted, cusDeleted, cusUninserted };
  82. #pragma option pop
  83.  
  84. #pragma pack(push, 1)
  85. struct TIBDBKey
  86. {
  87.     Byte DBKey[8];
  88. } ;
  89. #pragma pack(pop)
  90.  
  91. typedef TIBDBKey *PIBDBKey;
  92.  
  93. struct TRecordData
  94. {
  95.     Db::TBookmarkFlag rdBookmarkFlag;
  96.     short rdFieldCount;
  97.     int rdRecordNumber;
  98.     TCachedUpdateStatus rdCachedUpdateStatus;
  99.     Db::TUpdateStatus rdUpdateStatus;
  100.     unsigned rdSavedOffset;
  101.     TIBDBKey rdDBKey;
  102.     TFieldData rdFields[1];
  103. } ;
  104.  
  105. typedef TRecordData *PRecordData;
  106.  
  107. class DELPHICLASS TIBStringField;
  108. class PASCALIMPLEMENTATION TIBStringField : public Db::TStringField 
  109. {
  110.     typedef Db::TStringField inherited;
  111.     
  112. private:
  113.     bool FBlanksToNULL;
  114.     
  115. public:
  116.     __fastcall virtual TIBStringField(Classes::TComponent* AOwner);
  117.     #pragma option push -w-inl
  118.     /* virtual class method */ virtual void __fastcall CheckTypeSize(int Value) { CheckTypeSize(__classid(TIBStringField)
  119.         , Value); }
  120.     #pragma option pop
  121.     /*         class method */ static void __fastcall CheckTypeSize(TMetaClass* vmt, int Value);
  122.     virtual AnsiString __fastcall GetAsString();
  123.     virtual Variant __fastcall GetAsVariant();
  124.     HIDESBASE bool __fastcall GetValue(AnsiString &Value);
  125.     virtual void __fastcall SetAsString(const AnsiString Value);
  126.     
  127. __published:
  128.     __property bool BlanksToNULL = {read=FBlanksToNULL, write=FBlanksToNULL, default=1};
  129. public:
  130.     #pragma option push -w-inl
  131.     /* TField.Destroy */ inline __fastcall virtual ~TIBStringField(void) { }
  132.     #pragma option pop
  133.     
  134. };
  135.  
  136.  
  137. class DELPHICLASS TIBBCDField;
  138. class PASCALIMPLEMENTATION TIBBCDField : public Db::TBCDField 
  139. {
  140.     typedef Db::TBCDField inherited;
  141.     
  142. protected:
  143.     #pragma option push -w-inl
  144.     /* virtual class method */ virtual void __fastcall CheckTypeSize(int Value) { CheckTypeSize(__classid(TIBBCDField)
  145.         , Value); }
  146.     #pragma option pop
  147.     /*         class method */ static void __fastcall CheckTypeSize(TMetaClass* vmt, int Value);
  148.     virtual System::Currency __fastcall GetAsCurrency(void);
  149.     virtual AnsiString __fastcall GetAsString();
  150.     virtual Variant __fastcall GetAsVariant();
  151.     virtual int __fastcall GetDataSize(void);
  152.     virtual void __fastcall GetText(AnsiString &Text, bool DisplayText);
  153.     HIDESBASE bool __fastcall GetValue(System::Currency &Value);
  154.     virtual void __fastcall SetAsCurrency(System::Currency Value);
  155.     
  156. public:
  157.     __fastcall virtual TIBBCDField(Classes::TComponent* AOwner);
  158.     
  159. __published:
  160.     __property Size ;
  161. public:
  162.     #pragma option push -w-inl
  163.     /* TField.Destroy */ inline __fastcall virtual ~TIBBCDField(void) { }
  164.     #pragma option pop
  165.     
  166. };
  167.  
  168.  
  169. class DELPHICLASS TIBDataLink;
  170. class PASCALIMPLEMENTATION TIBDataLink : public Db::TDetailDataLink 
  171. {
  172.     typedef Db::TDetailDataLink inherited;
  173.     
  174. private:
  175.     TIBCustomDataSet* FDataSet;
  176.     
  177. protected:
  178.     virtual void __fastcall ActiveChanged(void);
  179.     virtual void __fastcall RecordChanged(Db::TField* Field);
  180.     virtual Db::TDataSet* __fastcall GetDetailDataSet(void);
  181.     virtual void __fastcall CheckBrowseMode(void);
  182.     
  183. public:
  184.     __fastcall TIBDataLink(TIBCustomDataSet* ADataSet);
  185.     __fastcall virtual ~TIBDataLink(void);
  186. };
  187.  
  188.  
  189. #pragma option push -b-
  190. enum TIBUpdateAction { uaFail, uaAbort, uaSkip, uaRetry, uaApply, uaApplied };
  191. #pragma option pop
  192.  
  193. typedef void __fastcall (__closure *TIBUpdateErrorEvent)(Db::TDataSet* DataSet, Db::EDatabaseError* 
  194.     E, Db::TUpdateKind UpdateKind, TIBUpdateAction &UpdateAction);
  195.  
  196. typedef void __fastcall (__closure *TIBUpdateRecordEvent)(Db::TDataSet* DataSet, Db::TUpdateKind UpdateKind
  197.     , TIBUpdateAction &UpdateAction);
  198.  
  199. typedef Set<TCachedUpdateStatus, cusUnmodified, cusUninserted>  TIBUpdateRecordTypes;
  200.  
  201. typedef DynamicArray<int >  IBCustomDataSet__6;
  202.  
  203. class PASCALIMPLEMENTATION TIBCustomDataSet : public Db::TDataSet 
  204. {
  205.     typedef Db::TDataSet inherited;
  206.     
  207. private:
  208.     bool FDidActivate;
  209.     bool FIBLoaded;
  210.     Ibdatabase::TIBBase* FBase;
  211.     int FBlobCacheOffset;
  212.     Classes::TList* FBlobStreamList;
  213.     int FBufferChunks;
  214.     char *FBufferCache;
  215.     char *FOldBufferCache;
  216.     int FBufferChunkSize;
  217.     int FCacheSize;
  218.     int FOldCacheSize;
  219.     char *FFilterBuffer;
  220.     unsigned FBPos;
  221.     unsigned FOBPos;
  222.     unsigned FBEnd;
  223.     unsigned FOBEnd;
  224.     bool FCachedUpdates;
  225.     int FCalcFieldsOffset;
  226.     int FCurrentRecord;
  227.     int FDeletedRecords;
  228.     char *FModelBuffer;
  229.     char *FOldBuffer;
  230.     bool FOpen;
  231.     bool FInternalPrepared;
  232.     Ibsql::TIBSQL* FQDelete;
  233.     Ibsql::TIBSQL* FQInsert;
  234.     Ibsql::TIBSQL* FQRefresh;
  235.     Ibsql::TIBSQL* FQSelect;
  236.     Ibsql::TIBSQL* FQModify;
  237.     int FRecordBufferSize;
  238.     int FRecordCount;
  239.     int FRecordSize;
  240.     bool FUniDirectional;
  241.     Db::TUpdateMode FUpdateMode;
  242.     TIBDataSetUpdateObject* FUpdateObject;
  243.     bool FParamCheck;
  244.     bool FUpdatesPending;
  245.     TIBUpdateRecordTypes FUpdateRecordTypes;
  246.     DynamicArray<int >  FMappedFieldPosition;
  247.     Classes::TNotifyEvent FBeforeDatabaseDisconnect;
  248.     Classes::TNotifyEvent FAfterDatabaseDisconnect;
  249.     Classes::TNotifyEvent FDatabaseFree;
  250.     TIBUpdateErrorEvent FOnUpdateError;
  251.     TIBUpdateRecordEvent FOnUpdateRecord;
  252.     Classes::TNotifyEvent FBeforeTransactionEnd;
  253.     Classes::TNotifyEvent FAfterTransactionEnd;
  254.     Classes::TNotifyEvent FTransactionFree;
  255.     Ibexternals::PVoid __fastcall GetSelectStmtHandle(void);
  256.     void __fastcall SetUpdateMode(const Db::TUpdateMode Value);
  257.     void __fastcall SetUpdateObject(TIBDataSetUpdateObject* Value);
  258.     Db::TGetResult __fastcall AdjustCurrentRecord(void * Buffer, Db::TGetMode GetMode);
  259.     void __fastcall AdjustRecordOnInsert(void * Buffer);
  260.     bool __fastcall CanEdit(void);
  261.     bool __fastcall CanInsert(void);
  262.     bool __fastcall CanDelete(void);
  263.     bool __fastcall CanRefresh(void);
  264.     void __fastcall CheckEditState(void);
  265.     void __fastcall ClearBlobCache(void);
  266.     void __fastcall CopyRecordBuffer(void * Source, void * Dest);
  267.     void __fastcall DoBeforeDatabaseDisconnect(System::TObject* Sender);
  268.     void __fastcall DoAfterDatabaseDisconnect(System::TObject* Sender);
  269.     void __fastcall DoDatabaseFree(System::TObject* Sender);
  270.     void __fastcall DoBeforeTransactionEnd(System::TObject* Sender);
  271.     void __fastcall DoAfterTransactionEnd(System::TObject* Sender);
  272.     void __fastcall DoTransactionFree(System::TObject* Sender);
  273.     void __fastcall FetchCurrentRecordToBuffer(Ibsql::TIBSQL* Qry, int RecordNumber, char * Buffer);
  274.     Ibdatabase::TIBDatabase* __fastcall GetDatabase(void);
  275.     Ibheader::PISC_DB_HANDLE __fastcall GetDBHandle(void);
  276.     Classes::TStrings* __fastcall GetDeleteSQL(void);
  277.     Classes::TStrings* __fastcall GetInsertSQL(void);
  278.     Ibsql::TIBXSQLDA* __fastcall GetSQLParams(void);
  279.     Classes::TStrings* __fastcall GetRefreshSQL(void);
  280.     Classes::TStrings* __fastcall GetSelectSQL(void);
  281.     Ibsql::TIBSQLTypes __fastcall GetStatementType(void);
  282.     Classes::TStrings* __fastcall GetModifySQL(void);
  283.     Ibdatabase::TIBTransaction* __fastcall GetTransaction(void);
  284.     Ibheader::PISC_TR_HANDLE __fastcall GetTRHandle(void);
  285.     void __fastcall InternalDeleteRecord(Ibsql::TIBSQL* Qry, void * Buff);
  286.     virtual bool __fastcall InternalLocate(const AnsiString KeyFields, const Variant &KeyValues, Db::TLocateOptions 
  287.         Options);
  288.     void __fastcall InternalPostRecord(Ibsql::TIBSQL* Qry, void * Buff);
  289.     void __fastcall InternalRevertRecord(int RecordNumber);
  290.     bool __fastcall IsVisible(char * Buffer);
  291.     void __fastcall SaveOldBuffer(char * Buffer);
  292.     void __fastcall SetBufferChunks(int Value);
  293.     void __fastcall SetDatabase(Ibdatabase::TIBDatabase* Value);
  294.     void __fastcall SetDeleteSQL(Classes::TStrings* Value);
  295.     void __fastcall SetInsertSQL(Classes::TStrings* Value);
  296.     void __fastcall SetInternalSQLParams(Ibsql::TIBSQL* Qry, void * Buffer);
  297.     void __fastcall SetRefreshSQL(Classes::TStrings* Value);
  298.     void __fastcall SetSelectSQL(Classes::TStrings* Value);
  299.     void __fastcall SetModifySQL(Classes::TStrings* Value);
  300.     void __fastcall SetTransaction(Ibdatabase::TIBTransaction* Value);
  301.     void __fastcall SetUpdateRecordTypes(TIBUpdateRecordTypes Value);
  302.     void __fastcall SetUniDirectional(bool Value);
  303.     void __fastcall RefreshParams(void);
  304.     virtual void __fastcall SQLChanging(System::TObject* Sender);
  305.     int __fastcall AdjustPosition(char * FCache, unsigned Offset, int Origin);
  306.     void __fastcall ReadCache(char * FCache, unsigned Offset, int Origin, char * Buffer);
  307.     void __fastcall ReadRecordCache(int RecordNumber, char * Buffer, bool ReadOldBuffer);
  308.     void __fastcall WriteCache(char * FCache, unsigned Offset, int Origin, char * Buffer);
  309.     void __fastcall WriteRecordCache(int RecordNumber, char * Buffer);
  310.     Db::TGetResult __fastcall InternalGetRecord(char * Buffer, Db::TGetMode GetMode, bool DoCheck);
  311.     
  312. protected:
  313.     TIBDataLink* FDataLink;
  314.     void __fastcall ActivateConnection(void);
  315.     bool __fastcall ActivateTransaction(void);
  316.     void __fastcall DeactivateTransaction(void);
  317.     void __fastcall CheckDatasetClosed(void);
  318.     void __fastcall CheckDatasetOpen(void);
  319.     char * __fastcall GetActiveBuf(void);
  320.     void __fastcall InternalBatchInput(Ibsql::TIBBatchInput* InputObject);
  321.     void __fastcall InternalBatchOutput(Ibsql::TIBBatchOutput* OutputObject);
  322.     void __fastcall InternalPrepare(void);
  323.     void __fastcall InternalUnPrepare(void);
  324.     void __fastcall InternalExecQuery(void);
  325.     virtual void __fastcall InternalRefreshRow(void);
  326.     void __fastcall InternalSetParamsFromCusror(void);
  327.     void __fastcall CheckNotUniDirectional(void);
  328.     virtual void __fastcall PSEndTransaction(bool Commit);
  329.     virtual int __fastcall PSExecuteStatement(const AnsiString ASQL, Db::TParams* AParams, void * ResultSet
  330.         );
  331.     virtual AnsiString __fastcall PsGetTableName();
  332.     virtual AnsiString __fastcall PSGetQuoteChar();
  333.     virtual Db::EUpdateError* __fastcall PSGetUpdateException(Sysutils::Exception* E, Db::EUpdateError* 
  334.         Prev);
  335.     virtual bool __fastcall PSInTransaction(void);
  336.     virtual bool __fastcall PSIsSQLBased(void);
  337.     virtual bool __fastcall PSIsSQLSupported(void);
  338.     virtual void __fastcall PSStartTransaction(void);
  339.     virtual void __fastcall PSReset(void);
  340.     virtual bool __fastcall PSUpdateRecord(Db::TUpdateKind UpdateKind, Db::TDataSet* Delta);
  341.     virtual void __fastcall InternalInsert(void);
  342.     virtual void __fastcall InitRecord(char * Buffer);
  343.     virtual void __fastcall Disconnect(void);
  344.     bool __fastcall ConstraintsStored(void);
  345.     virtual void __fastcall ClearCalcFields(char * Buffer);
  346.     virtual char * __fastcall AllocRecordBuffer(void);
  347.     virtual void __fastcall DoBeforeDelete(void);
  348.     virtual void __fastcall DoBeforeEdit(void);
  349.     virtual void __fastcall DoBeforeInsert(void);
  350.     virtual void __fastcall FreeRecordBuffer(char * &Buffer);
  351.     virtual void __fastcall GetBookmarkData(char * Buffer, void * Data);
  352.     virtual Db::TBookmarkFlag __fastcall GetBookmarkFlag(char * Buffer);
  353.     virtual bool __fastcall GetCanModify(void);
  354.     virtual Db::TDataSource* __fastcall GetDataSource(void);
  355.     virtual TMetaClass* __fastcall GetFieldClass(Db::TFieldType FieldType);
  356.     virtual int __fastcall GetRecNo(void);
  357.     virtual Db::TGetResult __fastcall GetRecord(char * Buffer, Db::TGetMode GetMode, bool DoCheck);
  358.     virtual int __fastcall GetRecordCount(void);
  359.     virtual Word __fastcall GetRecordSize(void);
  360.     virtual void __fastcall InternalAddRecord(void * Buffer, bool Append);
  361.     virtual void __fastcall InternalCancel(void);
  362.     virtual void __fastcall InternalClose(void);
  363.     virtual void __fastcall InternalDelete(void);
  364.     virtual void __fastcall InternalFirst(void);
  365.     virtual void __fastcall InternalGotoBookmark(void * Bookmark);
  366.     virtual void __fastcall InternalHandleException(void);
  367.     virtual void __fastcall InternalInitFieldDefs(void);
  368.     virtual void __fastcall InternalInitRecord(char * Buffer);
  369.     virtual void __fastcall InternalLast(void);
  370.     virtual void __fastcall InternalOpen(void);
  371.     virtual void __fastcall InternalPost(void);
  372.     virtual void __fastcall InternalRefresh(void);
  373.     virtual void __fastcall InternalSetToRecord(char * Buffer);
  374.     virtual bool __fastcall IsCursorOpen(void);
  375.     void __fastcall ReQuery(void);
  376.     virtual void __fastcall SetBookmarkFlag(char * Buffer, Db::TBookmarkFlag Value);
  377.     virtual void __fastcall SetBookmarkData(char * Buffer, void * Data);
  378.     void __fastcall SetCachedUpdates(bool Value);
  379.     void __fastcall SetDataSource(Db::TDataSource* Value);
  380.     virtual void __fastcall SetFieldData(Db::TField* Field, void * Buffer)/* overload */;
  381.     virtual void __fastcall SetRecNo(int Value);
  382.     __property Ibexternals::PVoid SelectStmtHandle = {read=GetSelectStmtHandle};
  383.     __property Ibsql::TIBXSQLDA* SQLParams = {read=GetSQLParams};
  384.     __property bool InternalPrepared = {read=FInternalPrepared, nodefault};
  385.     __property Ibsql::TIBSQL* QDelete = {read=FQDelete};
  386.     __property Ibsql::TIBSQL* QInsert = {read=FQInsert};
  387.     __property Ibsql::TIBSQL* QRefresh = {read=FQRefresh};
  388.     __property Ibsql::TIBSQL* QSelect = {read=FQSelect};
  389.     __property Ibsql::TIBSQL* QModify = {read=FQModify};
  390.     __property Ibsql::TIBSQLTypes StatementType = {read=GetStatementType, nodefault};
  391.     __property int BufferChunks = {read=FBufferChunks, write=SetBufferChunks, nodefault};
  392.     __property bool CachedUpdates = {read=FCachedUpdates, write=SetCachedUpdates, nodefault};
  393.     __property bool UniDirectional = {read=FUniDirectional, write=SetUniDirectional, default=0};
  394.     __property Classes::TStrings* DeleteSQL = {read=GetDeleteSQL, write=SetDeleteSQL};
  395.     __property Classes::TStrings* InsertSQL = {read=GetInsertSQL, write=SetInsertSQL};
  396.     __property Classes::TStrings* RefreshSQL = {read=GetRefreshSQL, write=SetRefreshSQL};
  397.     __property Classes::TStrings* SelectSQL = {read=GetSelectSQL, write=SetSelectSQL};
  398.     __property Classes::TStrings* ModifySQL = {read=GetModifySQL, write=SetModifySQL};
  399.     __property Db::TUpdateMode UpdateMode = {read=FUpdateMode, write=SetUpdateMode, default=0};
  400.     __property bool ParamCheck = {read=FParamCheck, write=FParamCheck, default=1};
  401.     __property Classes::TNotifyEvent BeforeDatabaseDisconnect = {read=FBeforeDatabaseDisconnect, write=
  402.         FBeforeDatabaseDisconnect};
  403.     __property Classes::TNotifyEvent AfterDatabaseDisconnect = {read=FAfterDatabaseDisconnect, write=FAfterDatabaseDisconnect
  404.         };
  405.     __property Classes::TNotifyEvent DatabaseFree = {read=FDatabaseFree, write=FDatabaseFree};
  406.     __property Classes::TNotifyEvent BeforeTransactionEnd = {read=FBeforeTransactionEnd, write=FBeforeTransactionEnd
  407.         };
  408.     __property Classes::TNotifyEvent AfterTransactionEnd = {read=FAfterTransactionEnd, write=FAfterTransactionEnd
  409.         };
  410.     __property Classes::TNotifyEvent TransactionFree = {read=FTransactionFree, write=FTransactionFree};
  411.         
  412.     
  413. public:
  414.     __fastcall virtual TIBCustomDataSet(Classes::TComponent* AOwner);
  415.     __fastcall virtual ~TIBCustomDataSet(void);
  416.     void __fastcall ApplyUpdates(void);
  417.     TCachedUpdateStatus __fastcall CachedUpdateStatus(void);
  418.     void __fastcall CancelUpdates(void);
  419.     void __fastcall FetchAll(void);
  420.     bool __fastcall LocateNext(const AnsiString KeyFields, const Variant &KeyValues, Db::TLocateOptions 
  421.         Options);
  422.     void __fastcall RecordModified(bool Value);
  423.     void __fastcall RevertRecord(void);
  424.     void __fastcall Undelete(void);
  425.     virtual int __fastcall CompareBookmarks(void * Bookmark1, void * Bookmark2);
  426.     virtual Classes::TStream* __fastcall CreateBlobStream(Db::TField* Field, Db::TBlobStreamMode Mode);
  427.         
  428.     virtual bool __fastcall GetCurrentRecord(char * Buffer);
  429.     virtual bool __fastcall GetFieldData(Db::TField* Field, void * Buffer)/* overload */;
  430.     virtual bool __fastcall GetFieldData(int FieldNo, void * Buffer)/* overload */;
  431.     virtual bool __fastcall Locate(const AnsiString KeyFields, const Variant &KeyValues, Db::TLocateOptions 
  432.         Options);
  433.     virtual Variant __fastcall Lookup(const AnsiString KeyFields, const Variant &KeyValues, const AnsiString 
  434.         ResultFields);
  435.     virtual Db::TUpdateStatus __fastcall UpdateStatus(void);
  436.     virtual bool __fastcall IsSequenced(void);
  437.     __property Ibheader::PISC_DB_HANDLE DBHandle = {read=GetDBHandle};
  438.     __property Ibheader::PISC_TR_HANDLE TRHandle = {read=GetTRHandle};
  439.     __property TIBDataSetUpdateObject* UpdateObject = {read=FUpdateObject, write=SetUpdateObject};
  440.     __property bool UpdatesPending = {read=FUpdatesPending, nodefault};
  441.     __property TIBUpdateRecordTypes UpdateRecordTypes = {read=FUpdateRecordTypes, write=SetUpdateRecordTypes
  442.         , nodefault};
  443.     
  444. __published:
  445.     __property Ibdatabase::TIBDatabase* Database = {read=GetDatabase, write=SetDatabase};
  446.     __property Ibdatabase::TIBTransaction* Transaction = {read=GetTransaction, write=SetTransaction};
  447.     __property Active ;
  448.     __property AutoCalcFields ;
  449.     __property ObjectView ;
  450.     __property AfterCancel ;
  451.     __property AfterClose ;
  452.     __property AfterDelete ;
  453.     __property AfterEdit ;
  454.     __property AfterInsert ;
  455.     __property AfterOpen ;
  456.     __property AfterPost ;
  457.     __property AfterRefresh ;
  458.     __property AfterScroll ;
  459.     __property BeforeCancel ;
  460.     __property BeforeClose ;
  461.     __property BeforeDelete ;
  462.     __property BeforeEdit ;
  463.     __property BeforeInsert ;
  464.     __property BeforeOpen ;
  465.     __property BeforePost ;
  466.     __property BeforeRefresh ;
  467.     __property BeforeScroll ;
  468.     __property OnCalcFields ;
  469.     __property OnDeleteError ;
  470.     __property OnEditError ;
  471.     __property OnNewRecord ;
  472.     __property OnPostError ;
  473.     __property TIBUpdateErrorEvent OnUpdateError = {read=FOnUpdateError, write=FOnUpdateError};
  474.     __property TIBUpdateRecordEvent OnUpdateRecord = {read=FOnUpdateRecord, write=FOnUpdateRecord};
  475. };
  476.  
  477.  
  478. class DELPHICLASS TIBDataSet;
  479. class PASCALIMPLEMENTATION TIBDataSet : public TIBCustomDataSet 
  480. {
  481.     typedef TIBCustomDataSet inherited;
  482.     
  483. private:
  484.     bool __fastcall GetPrepared(void);
  485.     
  486. protected:
  487.     virtual void __fastcall SetFiltered(bool Value);
  488.     virtual void __fastcall InternalOpen(void);
  489.     
  490. public:
  491.     void __fastcall Prepare(void);
  492.     void __fastcall UnPrepare(void);
  493.     void __fastcall BatchInput(Ibsql::TIBBatchInput* InputObject);
  494.     void __fastcall BatchOutput(Ibsql::TIBBatchOutput* OutputObject);
  495.     __property Ibsql::TIBXSQLDA* Params = {read=GetSQLParams};
  496.     __property bool Prepared = {read=GetPrepared, nodefault};
  497.     __property QDelete ;
  498.     __property QInsert ;
  499.     __property QRefresh ;
  500.     __property QSelect ;
  501.     __property QModify ;
  502.     __property StatementType ;
  503.     __property UpdatesPending ;
  504.     __property Bof ;
  505.     __property Bookmark ;
  506.     __property DefaultFields ;
  507.     __property Designer ;
  508.     __property Eof ;
  509.     __property FieldCount ;
  510.     __property FieldDefs ;
  511.     __property Fields ;
  512.     __property FieldValues ;
  513.     __property Found ;
  514.     __property Modified ;
  515.     __property RecordCount ;
  516.     __property State ;
  517.     
  518. __published:
  519.     __property BufferChunks ;
  520.     __property CachedUpdates ;
  521.     __property DeleteSQL ;
  522.     __property InsertSQL ;
  523.     __property RefreshSQL ;
  524.     __property SelectSQL ;
  525.     __property UniDirectional ;
  526.     __property BeforeDatabaseDisconnect ;
  527.     __property AfterDatabaseDisconnect ;
  528.     __property DatabaseFree ;
  529.     __property OnUpdateError ;
  530.     __property OnUpdateRecord ;
  531.     __property BeforeTransactionEnd ;
  532.     __property AfterTransactionEnd ;
  533.     __property TransactionFree ;
  534.     __property UpdateRecordTypes ;
  535.     __property ModifySQL ;
  536.     __property Active ;
  537.     __property AutoCalcFields ;
  538.     __property DataSource  = {read=GetDataSource, write=SetDataSource};
  539.     __property AfterCancel ;
  540.     __property AfterClose ;
  541.     __property AfterDelete ;
  542.     __property AfterEdit ;
  543.     __property AfterInsert ;
  544.     __property AfterOpen ;
  545.     __property AfterPost ;
  546.     __property AfterScroll ;
  547.     __property BeforeCancel ;
  548.     __property BeforeClose ;
  549.     __property BeforeDelete ;
  550.     __property BeforeEdit ;
  551.     __property BeforeInsert ;
  552.     __property BeforeOpen ;
  553.     __property BeforePost ;
  554.     __property BeforeScroll ;
  555.     __property OnCalcFields ;
  556.     __property OnDeleteError ;
  557.     __property OnEditError ;
  558.     __property OnNewRecord ;
  559.     __property OnPostError ;
  560. public:
  561.     #pragma option push -w-inl
  562.     /* TIBCustomDataSet.Create */ inline __fastcall virtual TIBDataSet(Classes::TComponent* AOwner) : TIBCustomDataSet(
  563.         AOwner) { }
  564.     #pragma option pop
  565.     #pragma option push -w-inl
  566.     /* TIBCustomDataSet.Destroy */ inline __fastcall virtual ~TIBDataSet(void) { }
  567.     #pragma option pop
  568.     
  569. };
  570.  
  571.  
  572. class DELPHICLASS TIBDSBlobStream;
  573. class PASCALIMPLEMENTATION TIBDSBlobStream : public Classes::TStream 
  574. {
  575.     typedef Classes::TStream inherited;
  576.     
  577. protected:
  578.     Db::TField* FField;
  579.     Ibblob::TIBBlobStream* FBlobStream;
  580.     
  581. public:
  582.     __fastcall TIBDSBlobStream(Db::TField* AField, Ibblob::TIBBlobStream* ABlobStream, Db::TBlobStreamMode 
  583.         Mode);
  584.     virtual int __fastcall Read(void *Buffer, int Count);
  585.     virtual int __fastcall Seek(int Offset, Word Origin);
  586.     virtual void __fastcall SetSize(int NewSize);
  587.     virtual int __fastcall Write(const void *Buffer, int Count);
  588. public:
  589.     #pragma option push -w-inl
  590.     /* TObject.Destroy */ inline __fastcall virtual ~TIBDSBlobStream(void) { }
  591.     #pragma option pop
  592.     
  593. };
  594.  
  595.  
  596. //-- var, const, procedure ---------------------------------------------------
  597. static const Shortint BufferCacheSize = 0x20;
  598. static const Shortint UniCache = 0x2;
  599. extern PACKAGE TMetaClass*DefaultFieldClasses[36];
  600. extern PACKAGE Stdvcl::_di_IProvider __fastcall (*CreateProviderProc)(TIBCustomDataSet* DataSet);
  601.  
  602. }    /* namespace Ibcustomdataset */
  603. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  604. using namespace Ibcustomdataset;
  605. #endif
  606. #pragma option pop    // -w-
  607. #pragma option pop    // -Vx
  608.  
  609. #pragma delphiheader end.
  610. //-- end unit ----------------------------------------------------------------
  611. #endif    // IBCustomDataSet
  612.