📄 absmain.hpp
字号:
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 + -