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

📄 myldbbase.pas

📁 一个本地database引擎,支持中文T_Sql查询,兼容DELPHI标准数据库控件
💻 PAS
📖 第 1 页 / 共 5 页
字号:
// create
//------------------------------------------------------------------------------
constructor TMYLDBIndexDef.Create;
begin
  FUnique := False;
  FPrimary := False;
  FIndexType := itBTree;
  FIndexColumns := nil;
  FRootPageNo := INVALID_PAGE_NO;
  FSessionID := INVALID_SESSION_ID;
  FTableState := 0;
  FNeedRebuild := False;
end;// Create


//------------------------------------------------------------------------------
// destroy
//------------------------------------------------------------------------------
destructor TMYLDBIndexDef.Destroy;
begin
  ColumnCount := 0;
  inherited Destroy;
end;// Destroy


//------------------------------------------------------------------------------
// assign another IndexDef
//------------------------------------------------------------------------------
procedure TMYLDBIndexDef.Assign(Source: TMYLDBMetaObjectDef);
var
  i: Integer;
begin
  inherited Assign(Source);
  IndexType := TMYLDBIndexDef(Source).IndexType;
  Unique := TMYLDBIndexDef(Source).Unique;
  Primary := TMYLDBIndexDef(Source).Primary;
  FRootPageNo := TMYLDBIndexDef(Source).RootPageNo;
  ColumnCount := TMYLDBIndexDef(Source).ColumnCount;
  FTemporary := TMYLDBIndexDef(Source).Temporary;
  FSessionID := TMYLDBIndexDef(Source).SessionID;
  FTableState := TMYLDBIndexDef(Source).TableState;
  FNeedRebuild := TMYLDBIndexDef(Source).NeedRebuild;
  for i := 0 to ColumnCount-1 do
   begin
    Columns[i].FieldName := TMYLDBIndexDef(Source).Columns[i].FieldName;
    Columns[i].Descending := TMYLDBIndexDef(Source).Columns[i].Descending;
    Columns[i].CaseInsensitive := TMYLDBIndexDef(Source).Columns[i].CaseInsensitive;
    Columns[i].MaxIndexedSize := TMYLDBIndexDef(Source).Columns[i].MaxIndexedSize;
   end;
end;// Assign


//------------------------------------------------------------------------------
// assign by names
//------------------------------------------------------------------------------
procedure TMYLDBIndexDef.AssignByNames(FieldNames, AscDescList, CaseSensitivityList: TStringList);
var i: integer;
begin
 if (FieldNames.Count <> AscDescList.Count) then
  raise EMYLDBException.Create(10278,ErrorLDifferentListsLength,
    [FieldNames.Count,AscDescList.Count]);
 if (FieldNames.Count <> CaseSensitivityList.Count) then
  raise EMYLDBException.Create(10279,ErrorLDifferentListsLength,
    [FieldNames.Count,CaseSensitivityList.Count]);
  ColumnCount := FieldNames.Count;
  for i := 0 to ColumnCount-1 do
   begin
    Columns[i].FieldName := FieldNames[i];
    Columns[i].Descending := (AscDescList[i] = MYLDB_DESC);
    Columns[i].CaseInsensitive := (CaseSensitivityList[i] = MYLDB_NO_CASE);
    Columns[i].MaxIndexedSize := DEFAULT_MAX_INDEXED_SIZE;
   end;
end;


//------------------------------------------------------------------------------
// load from stream
//------------------------------------------------------------------------------
procedure TMYLDBIndexDef.LoadFromStream(Stream: TStream);
var i: Integer;
begin
  inherited LoadFromStream(Stream);

  LoadDataFromStream(FIndexType,Sizeof(FIndexType),Stream,10349);
  LoadDataFromStream(FUnique,Sizeof(FUnique),Stream,10350);
  LoadDataFromStream(FPrimary,Sizeof(FPrimary),Stream,10351);
  FTemporary := False;
  LoadDataFromStream(i,Sizeof(i),Stream,10352);
  ColumnCount := i;
  LoadDataFromStream(FRootPageNo,Sizeof(FRootPageNo),Stream,10353);
  for i := 0 to ColumnCount-1 do
    Columns[i].LoadFromStream(Stream);
end; // LoadFromStream


//------------------------------------------------------------------------------
// save to stream
//------------------------------------------------------------------------------
procedure TMYLDBIndexDef.SaveToStream(Stream: TStream);
var i: Integer;
begin
  inherited SaveToStream(Stream);
  SaveDataToStream(FIndexType,Sizeof(FIndexType),Stream,10344);
  SaveDataToStream(FUnique,Sizeof(FUnique),Stream,10345);
  SaveDataToStream(FPrimary,Sizeof(FPrimary),Stream,10346);
  i := ColumnCount;
  SaveDataToStream(i,Sizeof(i),Stream,10347);
  SaveDataToStream(FRootPageNo,Sizeof(FRootPageNo),Stream,10348);
  for i := 0 to ColumnCount-1 do
    Columns[i].SaveToStream(Stream);
end; // SaveToStream




////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBConstraintDef
//
////////////////////////////////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// Assign
//------------------------------------------------------------------------------
procedure TMYLDBConstraintDef.Assign(Source: TMYLDBMetaObjectDef);
begin
  inherited Assign(Source);
 FConstraintType := TMYLDBConstraintDef(Source).FConstraintType;
end;//Assign



////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBConstraintDefNotNull
//
////////////////////////////////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// Constructor
//------------------------------------------------------------------------------
constructor TMYLDBConstraintDefNotNull.Create;
begin
  FConstraintType := ctNotNull;
end;//Create


//------------------------------------------------------------------------------
// Assign
//------------------------------------------------------------------------------
procedure TMYLDBConstraintDefNotNull.Assign(Source: TMYLDBMetaObjectDef);
begin
  inherited Assign(Source);
  FTableSchemaName := TMYLDBConstraintDefNotNull(Source).FTableSchemaName;
  FTableSchemaObjectID := TMYLDBConstraintDefNotNull(Source).FTableSchemaObjectID;
  FTableName := TMYLDBConstraintDefNotNull(Source).FTableName;
  FTableObjectID := TMYLDBConstraintDefNotNull(Source).FTableObjectID;
  FColumnName := TMYLDBConstraintDefNotNull(Source).FColumnName;
  FColumnObjectID := TMYLDBConstraintDefNotNull(Source).FColumnObjectID;
end;//Assign

//------------------------------------------------------------------------------
// SetNames
//------------------------------------------------------------------------------
procedure TMYLDBConstraintDefNotNull.SetNames(ColumnName, TableName, SchemaName: String);
begin
  FColumnName := ColumnName;
  FTableName := TableName;
  FSchemaName := SchemaName;
end;//SetNames



//------------------------------------------------------------------------------
// load from stream
//------------------------------------------------------------------------------
procedure TMYLDBConstraintDefNotNull.LoadFromStream(Stream: TStream);
var Len: Byte;
begin
  inherited LoadFromStream(Stream);
  LoadDataFromStream(FTableSchemaObjectID,sizeof(FTableSchemaObjectID),Stream,10249);
  LoadDataFromStream(FTableObjectID,sizeof(FTableObjectID),Stream,10250);
  LoadDataFromStream(FColumnObjectID,sizeof(FColumnObjectID),Stream,10251);

  LoadDataFromStream(Len,sizeof(Len),Stream,10252);
  SetLength(FTableSchemaName,Len-1);
  LoadDataFromStream(PChar(@FTableSchemaName)^,Len,Stream,10253);

  LoadDataFromStream(Len,sizeof(Len),Stream,10254);
  SetLength(FTableName,Len-1);
  LoadDataFromStream(PChar(@FTableName)^,Len,Stream,10255);

  LoadDataFromStream(Len,sizeof(Len),Stream,10256);
  SetLength(FColumnName,Len-1);
  LoadDataFromStream(PChar(@FColumnName)^,Len,Stream,10257);
end; // LoadFromStream


//------------------------------------------------------------------------------
// save to stream
//------------------------------------------------------------------------------
procedure TMYLDBConstraintDefNotNull.SaveToStream(Stream: TStream);
var Len: Byte;
begin
  inherited SaveToStream(Stream);

  SaveDataToStream(FTableSchemaObjectID,sizeof(FTableSchemaObjectID),Stream,10240);
  SaveDataToStream(FTableObjectID,sizeof(FTableObjectID),Stream,10241);
  SaveDataToStream(FColumnObjectID,sizeof(FColumnObjectID),Stream,10242);

  Len := Length(FTableSchemaName)+1;
  SaveDataToStream(Len,Sizeof(Len),Stream,10243);
  SaveDataToStream(PChar(@FTableSchemaName)^,Len,Stream,10244);

  Len := Length(FTableName)+1;
  SaveDataToStream(Len,Sizeof(Len),Stream,10245);
  SaveDataToStream(PChar(@FTableName)^,Len,Stream,10246);

  Len := Length(FColumnName)+1;
  SaveDataToStream(Len,Sizeof(Len),Stream,10247);
  SaveDataToStream(PChar(@FColumnName)^,Len,Stream,10248);
end; // SaveToStream


////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBConstraintDefCheck
//
////////////////////////////////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// Constructor
//------------------------------------------------------------------------------
constructor TMYLDBConstraintDefCheck.Create;
begin
  FConstraintType := ctCheck;
  FMinValue := TMYLDBVariant.Create;
  FMaxValue := TMYLDBVariant.Create;
end;//Create


//------------------------------------------------------------------------------
// Destructor
//------------------------------------------------------------------------------
destructor TMYLDBConstraintDefCheck.Destroy;
begin
  FMinValue.Free;
  FMaxValue.Free;
  inherited;
end;//Destroy


//------------------------------------------------------------------------------
// Assign
//------------------------------------------------------------------------------
procedure TMYLDBConstraintDefCheck.Assign(Source: TMYLDBMetaObjectDef);
begin
  inherited Assign(Source);
  FTableSchemaName := TMYLDBConstraintDefCheck(Source).FTableSchemaName;
  FTableSchemaObjectID := TMYLDBConstraintDefCheck(Source).FTableSchemaObjectID;
  FTableName := TMYLDBConstraintDefCheck(Source).FTableName;
  FTableObjectID := TMYLDBConstraintDefCheck(Source).FTableObjectID;
  FColumnName := TMYLDBConstraintDefCheck(Source).FColumnName;
  FColumnObjectID := TMYLDBConstraintDefCheck(Source).FColumnObjectID;
  FMinValue.Assign(TMYLDBConstraintDefCheck(Source).FMinValue);
  FMaxValue.Assign(TMYLDBConstraintDefCheck(Source).FMaxValue);
end;//Assign


//------------------------------------------------------------------------------
// SetNames
//------------------------------------------------------------------------------
procedure TMYLDBConstraintDefCheck.SetNames(ColumnName, TableName,
  SchemaName: String);
begin
  FColumnName := ColumnName;
  FTableName := TableName;
  FSchemaName := SchemaName;
end;//SetNames


//------------------------------------------------------------------------------
// load from stream
//------------------------------------------------------------------------------
procedure TMYLDBConstraintDefCheck.LoadFromStream(Stream: TStream);
var Len: Byte;
begin
  inherited LoadFromStream(Stream);
  LoadDataFromStream(FTableSchemaObjectID,sizeof(FTableSchemaObjectID),Stream,10230);
  LoadDataFromStream(FTableObjectID,sizeof(FTableObjectID),Stream,10231);
  LoadDataFromStream(FColumnObjectID,sizeof(FColumnObjectID),Stream,10232);

  LoadDataFromStream(Len,sizeof(Len),Stream,10233);
  SetLength(FTableSchemaName,Len-1);
  LoadDataFromStream(PChar(@FTableSchemaName)^,Len,Stream,10234);

  LoadDataFromStream(Len,sizeof(Len),Stream,10235);
  SetLength(FTableName,Len-1);
  LoadDataFromStream(PChar(@FTableName)^,Len,Stream,10236);

  LoadDataFromStream(Len,sizeof(Len),Stream,10237);
  SetLength(FColumnName,Len-1);
  LoadDataFromStream(PChar(@FColumnName)^,Len,Stream,10238);

  FMinValue.LoadFromStream(Stream);
  FMaxValue.LoadFromStream(Stream);
end; // LoadFromStream


//------------------------------------------------------------------------------
// save to stream
//------------------------------------------------------------------------------
procedure TMYLDBConstraintDefCheck.SaveToStream(Stream: TStream);
var Len: Byte;
begin
  inherited SaveToStream(Stream);

  

⌨️ 快捷键说明

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