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

📄 absmain.hpp

📁 Absolute Database 5.12 src. Absolute Database lets you forget the Borland Database Engine (BDE). Th
💻 HPP
📖 第 1 页 / 共 4 页
字号:
	bool __fastcall ChangeDatabaseSettings(AnsiString &Log, bool IgnoreErrors, AnsiString NewPassword, Abssecurity::TABSCryptoAlgorithm NewCryptoAlgorithm = (Abssecurity::TABSCryptoAlgorithm)(0x0), int NewPageSize = 0x1000, int NewPageCountInExtent = 0x8, int NewMaxConnections = 0x1f4);
	AnsiString __fastcall ChangePassword(AnsiString NewPassword)/* overload */;
	AnsiString __fastcall ChangePassword(AnsiString NewPassword, Abssecurity::TABSCryptoAlgorithm NewCryptoAlgorithm)/* overload */;
	void __fastcall MakeExecutableDatabase(const AnsiString ExeStubFileName, const AnsiString ExeDbFileName);
	int __fastcall GetDBFileConnectionsCount(void);
	void __fastcall FlushBuffers(void);
	void __fastcall CloseDataSets(void);
	void __fastcall ValidateName(const AnsiString Name);
	void __fastcall GetTablesList(Classes::TStrings* List);
	bool __fastcall TableExists(AnsiString TableName);
	void __fastcall StartTransaction(void);
	void __fastcall Commit(bool DoFlushBuffers = true);
	void __fastcall Rollback(void);
	__property TABSDataSet* DataSets[int Index] = {read=GetDataSet};
	__property int DataSetCount = {read=GetDataSetCount, nodefault};
	__property bool Exists = {read=GetExists, nodefault};
	__property Absbase::TABSBaseSession* Handle = {read=FHandle, write=SetHandle};
	__property TABSSession* Session = {read=FSession};
	__property bool Temporary = {read=FTemporary, write=FTemporary, nodefault};
	__property bool InTransaction = {read=GetInTransaction, nodefault};
	__property int PageSize = {read=FPageSize, write=FPageSize, nodefault};
	__property int PageCountInExtent = {read=FPageCountInExtent, write=FPageCountInExtent, nodefault};
	__property Abssecurity::TABSCryptoAlgorithm CryptoAlgorithm = {read=FCryptoAlgorithm, write=FCryptoAlgorithm, nodefault};
	
__published:
	__property bool Connected = {read=GetConnected, write=SetConnected, default=0};
	__property AnsiString CurrentVersion = {read=GetCurrentVersion, write=FCurrentVersion};
	__property AnsiString DatabaseFileName = {read=FDatabaseFileName, write=SetDatabaseFileName};
	__property AnsiString DatabaseName = {read=FDatabaseName, write=SetDatabaseName};
	__property bool Exclusive = {read=FExclusive, write=FExclusive, nodefault};
	__property AnsiString Password = {read=FPassword, write=FPassword};
	__property bool ReadOnly = {read=FReadOnly, write=SetReadOnly, default=0};
	__property bool HandleShared = {read=FHandleShared, write=FHandleShared, default=0};
	__property bool KeepConnection = {read=FKeepConnection, write=SetKeepConnection, default=1};
	__property int MaxConnections = {read=FMaxConnections, write=FMaxConnections, nodefault};
	__property bool MultiUser = {read=FMultiUser, write=FMultiUser, nodefault};
	__property AnsiString SessionName = {read=FSessionName, write=SetSessionName};
	__property bool SilentMode = {read=FSilentMode, write=FSilentMode, default=0};
	__property bool DisableTempFiles = {read=FDisableTempFiles, write=FDisableTempFiles, default=0};
	__property TABSPasswordEvent OnPassword = {read=FOnPassword, write=FOnPassword};
	__property Classes::TNotifyEvent BeforeRepair = {read=FBeforeRepair, write=FBeforeRepair};
	__property TABSProgressEvent OnRepairProgress = {read=FOnRepairProgress, write=FOnRepairProgress};
	__property Classes::TNotifyEvent AfterRepair = {read=FAfterRepair, write=FAfterRepair};
	__property Classes::TNotifyEvent BeforeCompact = {read=FBeforeCompact, write=FBeforeCompact};
	__property TABSProgressEvent OnCompactProgress = {read=FOnCompactProgress, write=FOnCompactProgress};
	__property Classes::TNotifyEvent AfterCompact = {read=FAfterCompact, write=FAfterCompact};
	__property Classes::TNotifyEvent BeforeChangePassword = {read=FBeforeChangePassword, write=FBeforeChangePassword};
	__property TABSProgressEvent OnChangePasswordProgress = {read=FOnChangePasswordProgress, write=FOnChangePasswordProgress};
	__property Classes::TNotifyEvent AfterChangePassword = {read=FAfterChangePassword, write=FAfterChangePassword};
	__property TABSOnNeedRepairEvent OnNeedRepair = {read=FOnNeedRepair, write=FOnNeedRepair};
	__property Classes::TNotifyEvent BeforeChangeDatabaseSettings = {read=FBeforeChangeDatabaseSettings, write=FBeforeChangeDatabaseSettings};
	__property TABSProgressEvent OnChangeDatabaseSettingsProgress = {read=FOnChangeDatabaseSettingsProgress, write=FOnChangeDatabaseSettingsProgress};
	__property Classes::TNotifyEvent AfterChangeDatabaseSettings = {read=FAfterChangeDatabaseSettings, write=FAfterChangeDatabaseSettings};
};


class DELPHICLASS TABSAdvIndexDefs;
class DELPHICLASS TABSAdvIndexDef;
class PASCALIMPLEMENTATION TABSAdvIndexDefs : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	TABSAdvIndexDef* operator[](int Index) { return Items[Index]; }
	
private:
	Classes::TList* FDefsList;
	Db::TDataSet* FDataset;
	int __fastcall GetCount(void);
	TABSAdvIndexDef* __fastcall GetDef(int Index);
	void __fastcall SetDef(int Index, TABSAdvIndexDef* value);
	
public:
	void __fastcall Assign(TABSAdvIndexDefs* Source, bool SkipTemporaryIndexes = false);
	__fastcall TABSAdvIndexDefs(Db::TDataSet* ADataSet);
	__fastcall virtual ~TABSAdvIndexDefs(void);
	TABSAdvIndexDef* __fastcall AddIndexDef(void);
	void __fastcall Add(const AnsiString Name, const AnsiString Fields, Db::TIndexOptions Options, bool Temporary = false, AnsiString DescFields = "", AnsiString CaseInsFields = "", AnsiString MaxIndexedSizes = "");
	void __fastcall DeleteIndexDef(const AnsiString IndexName);
	TABSAdvIndexDef* __fastcall Find(const AnsiString Name);
	void __fastcall Clear(void);
	void __fastcall Update(void);
	__property TABSAdvIndexDef* Items[int Index] = {read=GetDef, write=SetDef/*, default*/};
	__property int Count = {read=GetCount, nodefault};
};


class DELPHICLASS TABSAdvFieldDefs;
class DELPHICLASS TABSAdvFieldDef;
class PASCALIMPLEMENTATION TABSAdvFieldDefs : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	TABSAdvFieldDef* operator[](int Index) { return Items[Index]; }
	
private:
	Classes::TList* FDefsList;
	int __fastcall GetCount(void);
	TABSAdvFieldDef* __fastcall GetDef(int Index);
	void __fastcall SetDef(int Index, TABSAdvFieldDef* value);
	
public:
	void __fastcall Assign(TABSAdvFieldDefs* Source);
	__fastcall TABSAdvFieldDefs(void);
	__fastcall virtual ~TABSAdvFieldDefs(void);
	TABSAdvFieldDef* __fastcall AddFieldDef(void);
	void __fastcall Add(const AnsiString Name, Abstypes::TABSAdvancedFieldType DataType, int Size = 0x0, bool Required = false, TCompressionAlgorithm BLOBCompressionAlgorithm = (TCompressionAlgorithm)(0x0), Byte BLOBCompressionMode = (Byte)(0x0));
	void __fastcall DeleteFieldDef(const AnsiString FieldName);
	TABSAdvFieldDef* __fastcall Find(const AnsiString Name);
	void __fastcall Clear(void);
	__property TABSAdvFieldDef* Items[int Index] = {read=GetDef, write=SetDef/*, default*/};
	__property int Count = {read=GetCount, nodefault};
};


class PASCALIMPLEMENTATION TABSDataSet : public Db::TDataSet 
{
	typedef Db::TDataSet inherited;
	
private:
	AnsiString FCurrentVersion;
	Absbase::TABSCursor* FHandle;
	AnsiString FSessionName;
	char *FFilterBuffer;
	int FIndexFieldCount;
	DynamicArray<Word >  FIndexFieldMap;
	int FKeySize;
	TABSDBFlags FDBFlags;
	TABSDatabase* FDatabase;
	AnsiString FDatabaseName;
	bool FInMemory;
	bool FReadOnly;
	bool FStoreDefs;
	char *FEditRecordBuffer;
	Absbase::TABSConstraintDefs* FABSConstraintDefs;
	Absbase::TABSCursor* FExternalHandle;
	Db::TUpdateRecordEvent FOnUpdateRecord;
	
protected:
	Db::TIndexDefs* FIndexDefs;
	Absbase::TABSFieldDefs* FABSFieldDefs;
	Absbase::TABSIndexDefs* FABSIndexDefs;
	TABSAdvIndexDefs* FAdvIndexDefs;
	TABSAdvFieldDefs* FAdvFieldDefs;
	TABSAdvIndexDefs* FRestructureIndexDefs;
	TABSAdvFieldDefs* FRestructureFieldDefs;
	char *FKeyBuffers[6];
	char *FKeyBuffer;
	bool FIsRefreshing;
	bool FIgnoreDesignMode;
	virtual Db::EUpdateError* __fastcall PSGetUpdateException(Sysutils::Exception* E, Db::EUpdateError* Prev);
	virtual bool __fastcall PSIsSQLSupported(void);
	virtual void __fastcall PSReset(void);
	virtual bool __fastcall PSUpdateRecord(Db::TUpdateKind UpdateKind, Db::TDataSet* Delta);
	virtual void __fastcall PSStartTransaction(void);
	virtual void __fastcall PSEndTransaction(bool Commit);
	virtual int __fastcall PSExecuteStatement(const AnsiString ASQL, Db::TParams* AParams, void * ResultSet = (void *)(0x0))/* overload */;
	virtual void __fastcall PSGetAttributes(Classes::TList* List);
	virtual AnsiString __fastcall PSGetQuoteChar();
	virtual bool __fastcall PSInTransaction(void);
	virtual bool __fastcall PSIsSQLBased(void);
	char * __fastcall InitKeyBuffer(char * Buffer);
	void __fastcall AllocKeyBuffers(void);
	void __fastcall FreeKeyBuffers(void);
	bool __fastcall FieldDefsStored(void);
	bool __fastcall IndexDefsStored(void);
	void __fastcall SetIndexDefs(Db::TIndexDefs* Value);
	char * __fastcall GetActiveRecordBuffer(void);
	void __fastcall CheckDBSessionName(void);
	Absbase::TABSBaseSession* __fastcall GetDBHandle(void);
	TABSSession* __fastcall GetDBSession(void);
	void __fastcall CheckInMemoryDatabaseName(void);
	void __fastcall SetDatabaseName(const AnsiString Value);
	void __fastcall SetSessionName(const AnsiString Value);
	void __fastcall SetInMemory(const bool Value);
	AnsiString __fastcall GetCurrentVersion();
	__property bool IgnoreDesignMode = {read=FIgnoreDesignMode, write=FIgnoreDesignMode, nodefault};
	virtual void __fastcall OpenCursor(bool InfoQuery);
	virtual void __fastcall CloseCursor(void);
	virtual void __fastcall Disconnect(void);
	virtual void __fastcall SetDBFlag(int Flag, bool Value);
	virtual Absbase::TABSCursor* __fastcall CreateHandle(void);
	virtual void __fastcall DestroyHandle(void);
	virtual bool __fastcall GetCanModify(void);
	void __fastcall DateTimeConvert(Db::TField* Field, void * Source, void * Dest, bool ToNative);
	virtual void __fastcall DataConvert(Db::TField* Field, void * Source, void * Dest, bool ToNative);
	virtual void __fastcall SetActive(bool Value);
	void __fastcall SwitchToIndex(const AnsiString IndexName);
	virtual bool __fastcall GetIsIndexField(Db::TField* Field);
	void __fastcall GetIndexInfo(void);
	bool __fastcall ResetCursorRange(void);
	virtual void __fastcall ClearCalcFields(char * Buffer);
	virtual void __fastcall InternalRefresh(void);
	virtual Db::TGetResult __fastcall GetRecord(char * Buffer, Db::TGetMode GetMode, bool DoCheck);
	
public:
	virtual bool __fastcall GetCurrentRecord(char * Buffer);
	
protected:
	virtual int __fastcall GetRecordCount(void);
	virtual void __fastcall SetRecNo(int Value);
	virtual int __fastcall GetRecNo(void);
	virtual void __fastcall InternalFirst(void);
	virtual void __fastcall InternalLast(void);
	virtual void __fastcall InternalSetToRecord(char * Buffer);
	virtual Db::TBookmarkFlag __fastcall GetBookmarkFlag(char * Buffer);
	virtual void __fastcall GetBookmarkData(char * Buffer, void * Data);
	virtual void __fastcall InternalGotoBookmark(void * Bookmark);
	virtual void __fastcall SetBookmarkFlag(char * Buffer, Db::TBookmarkFlag Value);
	virtual void __fastcall SetBookmarkData(char * Buffer, void * Data);
	
public:
	virtual int __fastcall CompareBookmarks(void * Bookmark1, void * Bookmark2);
	virtual bool __fastcall BookmarkValid(void * Bookmark);
	
protected:
	bool __fastcall IsOnFilterRecordApplied(void);
	
public:
	bool __fastcall InternalFilterRecord(char * Buffer);
	bool __fastcall FilterRecord(char * Buffer, void * Dataset);
	
protected:
	virtual void __fastcall SetOnFilterRecord(const Db::TFilterRecordEvent Value);
	bool __fastcall IsIndexApplied(void);
	virtual void __fastcall PrepareCursor(void);
	
public:
	void __fastcall SetSQLFilter(System::TObject* FilterExpr, System::TObject* ParentQueryAO, Absbase::TABSCursor* ParentCursor);
	void __fastcall ApplyProjection(Classes::TStringList* FieldNamesList, Classes::TStringList* AliasList);
	void __fastcall ActivateFilters(void);
	void __fastcall DeactivateFilters(void);
	void __fastcall SetFilterData(const AnsiString Text, Db::TFilterOptions Options);
	virtual void __fastcall SetFiltered(bool Value);
	virtual void __fastcall SetFilterOptions(Db::TFilterOptions Value);
	virtual void __fastcall SetFilterText(const AnsiString Value);
	virtual bool __fastcall FindRecord(bool Restart, bool GoForward);
	bool __fastcall LocateRecord(const AnsiString KeyFields, const Variant &KeyValues, Db::TLocateOptions Options);
	virtual bool __fastcall Locate(const AnsiString KeyFields, const Variant &KeyValues, Db::TLocateOptions Options);
	virtual Variant __fastcall Lookup(const AnsiString KeyFields, const Variant &KeyValues, const AnsiString ResultFields);
	
protected:
	virtual void __fastcall InitRecord(char * Buffer);
	virtual void __fastcall InternalAddRecord(void * Buffer, bool Append);
	virtual void __fastcall InternalInsert(void);
	virtual void __fastcall InternalEdit(void);
	virtual void __fastcall InternalCancel(void);
	virtual void __fastcall InternalPost(void);
	virtual void __fastcall InternalDelete(void);
	virtual void __fastcall InternalHandleException(void);
	virtual bool __fastcall IsCursorOpen(void);
	virtual void __fastcall InternalOpen(void);
	virtual void __fastcall InternalClose(void);
	virtual void __fastcall InternalInitFieldDefs(void);
	AnsiString __fastcall CopyRecords(Db::TDataSet* DestinationDataset);
	bool __fastcall InternalCopyRecords(Db::TDataSet* SourceDataset, Db::TDataSet* DestinationDataset, AnsiString &Log, bool &Continue, bool IgnoreErrors = true, bool RestructuringTable = false, TABSProgressEvent ProgressEvent = 0x0, int MinProgress = 0x0, int MaxProgress = 0x64);
	virtual char * __fastcall AllocRecordBuffer(void);
	virtual void __fastcall FreeRecordBuffer(char * &Buffer);
	virtual void __fastcall InternalInitRecord(char * Buffer);
	virtual Word __fastcall GetRecordSize(void);
	bool __fastcall IsRangeApplied(void);
	
public:
	bool __fastcall IsDistinctApplied(void);
	
protected:
	__property TABSDBFlags DBFlags = {read=FDBFlags, nodefault};
	
public:
	__fastcall virtual TABSDataSet(Classes::TComponent* AOwner);
	__fastcall virtual ~TABSDataSet(void);
	TABSDatabase* __fastcall OpenDatabase(void);
	void __fastcall CloseDatabase(TABSDatabase* Database);
	virtual bool __fastcall GetFieldData(Db::TField* Field, void * Buffer)/* overload */;
	
protected:
	virtual void __fastcall SetFieldData(Db::TField* Field, void * Buffer)/* overload */;
	
public:
	HIDESBASE void __fastcall GetFieldValue(Absvariant::TABSVariant* Value, int FieldNo, bool DirectAccess);
	HIDESBASE void __fastcall SetFieldValue(Absvariant::TABSVariant* Value, int FieldNo, bool DirectAccess);
	void __fastcall CopyFieldValue(int SrcFieldNo, bool UseDirectFieldAccess, int DestFieldNo, TABSDataSet* DestDataset);
	
private:
	Abscompression::TABSStream* __fastcall InternalCreateBlobStream(Db::TField* Field, Db::TBlobStreamMode Mode);

⌨️ 快捷键说明

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