亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? myldbbase.pas

?? 一個(gè)本地database引擎,支持中文T_Sql查詢,兼容DELPHI標(biāo)準(zhǔn)數(shù)據(jù)庫控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    property IndexObjectID: TMYLDBObjectID read FIndexObjectID write FIndexObjectID;
  end;//TMYLDBConstraintDefUnique


  TMYLDBConstraintDefPrimary = class (TMYLDBConstraintDefUnique)
   public
    constructor Create;
  end;//TMYLDBConstraintDefPrimary


////////////////////////////////////////////////////////////////////////////////
//
// Meta Objects Defs
//
////////////////////////////////////////////////////////////////////////////////

 TMYLDBMetaObjectDefs = class(TObject)
  protected
   FDefsList:   TMYLDBSortedStringPtrArray;
   FLoadedItemCount:  Integer;
  private
   function GetCount: Integer; virtual;
   function GetDef(Index: Integer): TMYLDBMetaObjectDef;
   procedure SetDef(Index: Integer; Value: TMYLDBMetaObjectDef);

   procedure Add(MetaObjectDef: TMYLDBMetaObjectDef); virtual;
   function InternalAddCreated: TMYLDBMetaObjectDef; virtual;
  public
   procedure LoadFromStream(Stream: TStream); virtual;
   procedure SaveToStream(Stream: TStream); virtual;

   constructor Create;
   destructor Destroy; override;
   procedure Assign(Source: TMYLDBMetaObjectDefs); virtual;

   procedure Delete(Index: Integer); virtual;
   procedure Insert(Index: Integer; MetaObjectDef: TMYLDBMetaObjectDef); virtual;
   procedure Move(CurIndex, NewIndex: Integer); virtual;
   procedure Clear; virtual;

   function GetDefNumberByName(Name: String): Integer;
   function GetDefByName(Name: String): TMYLDBMetaObjectDef;
   function GetDefNumberByObjectId(id: TMYLDBObjectID): Integer;
   function GetDefByObjectId(id: TMYLDBObjectID): TMYLDBMetaObjectDef;
  public
   property Count: Integer read GetCount;
   property Items[Index: Integer]: TMYLDBMetaObjectDef read GetDef write SetDef; default;
 end;


////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBIndexDefs
//
////////////////////////////////////////////////////////////////////////////////


 TMYLDBIndexDefs = class(TMYLDBMetaObjectDefs)
  private
   function GetIndexDef(Index: Integer): TMYLDBIndexDef; virtual;
   procedure SetIndexDef(Index: Integer; Value: TMYLDBIndexDef); virtual;
   function InternalAddCreated: TMYLDBMetaObjectDef; override;
  public
   // AscDesc and CaseSensitivity lists should contain constants MYLDB_ASC, MYLDB_DESC, MYLDB_NO_CASE, MYLDB_CASE
   function IsIndexExists(FieldNames, AscDescList, CaseSensitivityList: TStringList;
                                     SessionID: TMYLDBSessionID;
                                     FieldDefs: TMYLDBFieldDefs): Boolean;
   function FindIndex(FieldNames, AscDescList, CaseSensitivityList: TStringList;
                       SessionID: TMYLDBSessionID; FieldDefs: TMYLDBFieldDefs): TMYLDBObjectID;
   function AddCreated: TMYLDBIndexDef;
   function GetIndexDefByName(Name: String): TMYLDBIndexDef;
   procedure LoadFromStream(Stream: TStream); override;
   procedure SaveToStream(Stream: TStream); override;
  public
   property Items[Index: Integer]: TMYLDBIndexDef read GetIndexDef write SetIndexDef; default;
 end;


////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBFieldDefs
//
////////////////////////////////////////////////////////////////////////////////


 TMYLDBFieldDefs = class(TMYLDBMetaObjectDefs)
  private
   function GetDef(Index: Integer): TMYLDBFieldDef;
   procedure SetDef(Index: Integer; Value: TMYLDBFieldDef);
   function InternalAddCreated: TMYLDBMetaObjectDef; override;
  public
   function AddCreated: TMYLDBFieldDef;
   function GetFieldDefByName(Name: String): TMYLDBFieldDef;

   procedure RecalcFieldOffsets; virtual;
   function GetMemoryRecordBufferSize: Integer;
   function GetDiskRecordBufferSize: Integer;

   procedure LoadFromStream(Stream: TStream); override;
   procedure SaveToStream(Stream: TStream); override;
  public
   property Items[Index: Integer]: TMYLDBFieldDef read GetDef write SetDef; default;
 end;//TMYLDBFieldDefs


////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBConstraintDefs
//
////////////////////////////////////////////////////////////////////////////////

 TMYLDBConstraintDefs =  class(TMYLDBMetaObjectDefs)
  private
   function GetDef(Index: Integer): TMYLDBConstraintDef;
   procedure SetDef(Index: Integer; Value: TMYLDBConstraintDef);
  public
   procedure Assign(Source: TMYLDBMetaObjectDefs); override;
   // Create TMYLDBConstraintDefNotNull and add it into list
   function AddNotNull: TMYLDBConstraintDefNotNull;
   // Create TMYLDBConstraintDefCheck and add it into list
   function AddCheck: TMYLDBConstraintDefCheck;
   function AddPK: TMYLDBConstraintDefPrimary;
   function AddUnique: TMYLDBConstraintDefUnique;

   procedure LoadFromStream(Stream: TStream); override;
   procedure SaveToStream(Stream: TStream); override;
  public
   property Items[Index: Integer]: TMYLDBConstraintDef read GetDef write SetDef; default;
 end;//TMYLDBConstraintDefs



 TMYLDBRestructureInfo = record
    FRestructureBLOBCompression:   TMYLDBCompression;
    //FRestructurePassword:          TMYLDBPassword;
    FRestructureFieldDefs:         TMYLDBFieldDefs;
    FRestructureIndexDefs:         TMYLDBIndexDefs;
    FRestructureConstraintDefs:    TMYLDBConstraintDefs;
 end;


////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBCursor
//
////////////////////////////////////////////////////////////////////////////////


  TMYLDBCursor = class (TObject)
   public
    FSettingProjection:             Boolean;
    FTableName:                     String;
    FIndexName:                     String;
    FIndexID:                       TMYLDBObjectID;
    FReadOnly:                      Boolean;
    FExclusive:                     Boolean;
    FInMemory:                      Boolean;
    FTemporary:                     Boolean;
    FSession:                       TMYLDBBaseSession;
    FIsOpen:                        Boolean;
    FPhysicalOrder:                 Boolean;
    FCurrentRecordPositionInIndex:  TMYLDBIndexPosition;
    // current record buffer
    FCurrentRecordBuffer:           TMYLDBRecordBuffer;
    // distinct
    FDistinctRecordBuffer:          TMYLDBRecordBuffer;
    // buffer with original record, stored on InternalEdit by TMYLDBDataset
    FEditRecordBuffer:              TMYLDBRecordBuffer;
    FPassword:                      TMYLDBPassword;
    FConstraintDefs:                TMYLDBConstraintDefs;
    FBLOBCompression:               TMYLDBCompression;
    FFieldDefs:                     TMYLDBFieldDefs;
    FVisibleFieldDefs:              TMYLDBFieldDefs; // visible fields (projection)
    FIndexDefs:                     TMYLDBIndexDefs;
    FBLOBStreams:                   TList;
    FRecordBitmap:                  Pointer;
    FIndexPositionCache:            TMYLDBIndexPositionCache;
    FTableLockedByCursor:           Boolean;
    FBatchUpdate:                   Boolean;
    FDisableTempFiles:              Boolean;
    FIsRepairing:                   Boolean;
   private
    // BLOBS will be stored as 6 bytes reference:
    // DiskEngine: 4 bytes PAGEID, 2 bytes ObjectID
    // TemporaryEngine: 4 bytes pointer to BLOBDescriptor record, 2 bytes not used
    // MemoryEngine: 4 bytes pointer to BLOBCompressedStream, 2 bytes not used

    // Record Buffer sizes and offsets:
    //              + FieldValuesOffset
    //                                   + BookmarOffset
    //                                              + CalculatedFieldsOffset
    // +------------+--------------------+----------+-----------------+
    // | Null Flags | Field Values,      | Bookmark | Calculated and  |
    // |            | References To BLOB | Bookmark | Lookup Fields   |
    // +------------+--------------------+----------+-----------------+
    //                                              + RecordSize
    //                                                                + RecordBufferSize

    // Key buffer:
    //                                                   + KeyBufferSize
    //                                   + KeyOffset
    // +------------+--------------------+---------------+
    // | Null Flags | Field Values,      | TMYLDBKeyBuffer |
    // |            | References To BLOB |               |
    // +------------+--------------------+---------------+

    FErrorCode:                     TMYLDBErrorCode;
    FErrorMessage:                  String;
    FIsDesignMode:                  Boolean;
    FRecordBufferSize:              Integer;
    FRecordSize:                    Integer;
    FKeyBufferSize:                 Integer;
    FKeyOffset:                     Integer;
    FKeyFieldCount:                 Integer;
    FFieldValuesOffset:             Integer;
    FCalculatedFieldsOffset:        Integer;
    FBookmarkOffset:                Integer;
    FFilterExpression:              Pointer;
    FSQLFilterExpression:           Pointer;
    FKeyBuffer:                     TMYLDBRecordBuffer;
    FRangeStartBuffer:              TMYLDBRecordBuffer;
    FRangeEndBuffer:                TMYLDBRecordBuffer;
    FRangeStartExclusive:           Boolean;
    FRangeEndExclusive:             Boolean;
    FRangeStartKeyFieldCount:       Integer;
    FRangeEndKeyFieldCount:         Integer;
    FDistinctFieldCount:            Integer;
   protected
    procedure SetIndexName(Value: String);
   public
    property RecordBufferSize: Integer read FRecordBufferSize write FRecordBufferSize;
    property RecordSize: Integer read FRecordSize write FRecordSize;
    property FieldValuesOffset: Integer read FFieldValuesOffset write FFieldValuesOffset;
    property CalculatedFieldsOffset: Integer read FCalculatedFieldsOffset write FCalculatedFieldsOffset;
    property BookmarkOffset: Integer read FBookmarkOffset write FBookmarkOffset;
    property KeyOffset: Integer read FKeyOffset write FKeyOffset;
    property KeyBufferSize: Integer read FKeyBufferSize write FKeyBufferSize;

   public
    // table operations
    procedure CreateTable(
                          FieldDefs: TMYLDBFieldDefs;
                          IndexDefs: TMYLDBIndexDefs;
                          ConstraintDefs: TMYLDBConstraintDefs
                         ); virtual; abstract;
    procedure DeleteTable; virtual; abstract;
    procedure EmptyTable; virtual; abstract;
    procedure RenameTable(NewTableName: String); virtual; abstract;

    procedure InternalInitFieldDefs; virtual; abstract;
    procedure OpenTableByFieldDefs(
                          FieldDefs: TMYLDBFieldDefs;
                          IndexDefs: TMYLDBIndexDefs;
                          ConstraintDefs: TMYLDBConstraintDefs
                       ); virtual; abstract;
    procedure CloseTable; virtual; abstract;
    procedure LockTableData; virtual; abstract;
    procedure UnlockTableData; virtual; abstract;
    function LockTable(LockType: TMYLDBLockType; TryCount, Delay: Integer; AllowXIRWAfterSIRW: Boolean = True): Boolean; virtual; abstract;
    function UnlockTable(LockType: TMYLDBLockType; IgnoreIfNoLock: Boolean=False): Boolean; virtual; abstract;

    // Rename Field by Field Index in FieldDefs
    procedure RenameField(FieldName, NewFieldName: String); virtual;

    // index operations
    function GetIndexDefs: TMYLDBIndexDefs; virtual;
    procedure AddIndex(IndexDef: TMYLDBIndexDef); virtual; abstract;
    procedure DeleteIndex(Name: String); virtual; abstract;
    procedure DeleteAllIndexes; virtual; abstract;
    // return index name
    function FindOrCreateIndex(FieldNamesList,
                AscDescList, CaseSensitivityList: TStringList; var IsCreated: Boolean): String; virtual; abstract;
    function IndexExists(FieldNamesList, AscDescList, CaseSensitivityList: TStringList): Boolean; virtual; abstract;

    // check field value and if not null move data from RecordBuffer to Buffer
    function GetFieldData(
                          FieldNo:      Integer; // field no
                          Buffer:       Pointer; // buffer
                          RecordBuffer: TMYLDBRecordBuffer // record buffer
                         ): Boolean;
    // set field data from Buffer to RecordBuffer
    procedure SetFieldData(
                            FieldNo:       Integer;
                            Buffer:        Pointer;
                            RecordBuffer:  TMYLDBRecordBuffer // record buffer
                          );
    // clear garbage after the end of strings in record buffer
    procedure ClearStringFieldsGarbage(RecordBuffer:  TMYLDBRecordBuffer);

    procedure GetFieldValue(Value: TMYLDBVariant; FieldNo: Integer; DirectAccess: Boolean);
    procedure SetFieldValue(
                            Value:        TMYLDBVariant;
                            FieldNo:      Integer;
                            DirectAccess: Boolean;
                            RecordBuffer: TMYLDBRecordBuffer = nil
                           );
    procedure CopyFieldValue(SrcFieldNo: Integer;
                             DirectAccess: Boolean;
                             DestFieldNo: Integer;
                             DestCursor: TMYLDBCursor); virtual; abstract;

    // allocate record buffer and set null flags
    function AllocateRecordBuffer: TMYLDBRecordBuffer;
    // initialize record buffer
    procedure InternalInitRecord(RecordBuffer: TMYLDBRecordBuffer; InsertMode: Boolean); virtual; abstract;
    // free record buffer
    procedure FreeRecordBuffer(var Buffer: TMYLDBRecordBuffer); virtual;
    // allocate record buffer and set null flags
    function AllocateKeyRecordBuffer: TMYLDBRecordBuffer;
    // initialize record buffer
    procedure InternalInitKeyBuffer(RecordBuffer: TMYLDBRecordBuffer);


    //---------------------------------------------------------------------------
    // navigation & bookmark methods
    //---------------------------------------------------------------------------

    function GetRecordCount: TMYLDBRecordNo; virtual; abstract;
    // get record
    function GetRecordBuffer(
              GetRecordMode:  TMYLDBGetRecordMode
              ): TMYLDBGetRecordResult; virtual; abstract;
    // go to record
    procedure SetRecNo(Value: Int64); virtual; abstract;
    // return current record number

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩你懂的电影在线观看| 欧美一区二区免费视频| 午夜久久久久久久久| 日韩区在线观看| 福利一区二区在线观看| 一区二区三区波多野结衣在线观看| 日韩一区二区在线观看| 成人久久18免费网站麻豆| 亚洲高清不卡在线| 久久精品无码一区二区三区| 欧美羞羞免费网站| 国产精品亚洲成人| 日韩精品乱码免费| 欧美国产一区二区| 欧美一区二区福利在线| 97精品久久久久中文字幕 | 蜜臀av亚洲一区中文字幕| 国产精品久久久久久久久久免费看 | www国产精品av| 欧美午夜视频网站| 激情综合网av| 亚洲成人一二三| 自拍偷拍亚洲欧美日韩| 欧美一区二区三区播放老司机| 99在线精品免费| 国产精品一线二线三线| 亚洲国产cao| 亚洲视频在线一区| 国产欧美日韩一区二区三区在线观看| 精品视频在线看| 99久久精品国产网站| 国产成人综合网| 国产福利一区在线| 日本视频在线一区| 亚洲夂夂婷婷色拍ww47| 国产精品国模大尺度视频| 久久亚洲私人国产精品va媚药| 色狠狠av一区二区三区| 9l国产精品久久久久麻豆| 国内不卡的二区三区中文字幕 | 99久久免费精品| 国产xxx精品视频大全| 国产激情一区二区三区| 国产iv一区二区三区| 国产一区在线观看麻豆| 福利视频网站一区二区三区| fc2成人免费人成在线观看播放| 成人午夜短视频| 99久久精品国产一区| 一本色道久久综合亚洲91 | 精品美女在线观看| 国产亚洲精品超碰| 亚洲欧洲日韩av| 亚洲一区二区在线免费观看视频| 亚洲一区在线观看网站| 日日骚欧美日韩| 精东粉嫩av免费一区二区三区| 国产98色在线|日韩| av中文字幕在线不卡| 91免费小视频| 91精品一区二区三区久久久久久| 精品日韩在线一区| 国产精品色婷婷| 亚洲电影视频在线| 免费人成在线不卡| 不卡电影免费在线播放一区| 色国产精品一区在线观看| 欧美一级淫片007| 亚洲国产成人私人影院tom| 韩国精品一区二区| 精品国产免费视频| 国产精品色眯眯| 一卡二卡三卡日韩欧美| 美女www一区二区| www.亚洲在线| 91精品国产综合久久婷婷香蕉| 久久天堂av综合合色蜜桃网| 亚洲丝袜另类动漫二区| 蜜桃av噜噜一区| 色综合一个色综合亚洲| 日韩亚洲电影在线| 日韩理论在线观看| 久久国产尿小便嘘嘘尿| 色综合久久中文综合久久97| 91精品在线免费观看| 亚洲桃色在线一区| 激情国产一区二区| 91黄色激情网站| 欧美精品一区二区三区一线天视频 | 国产日韩欧美a| 天天影视涩香欲综合网| 国产成人在线网站| 欧美一区二区三区在线| 亚洲欧洲日韩在线| 国产一区二区三区四区五区入口 | 久久久久久麻豆| 亚洲国产一区二区三区青草影视 | 不卡av电影在线播放| 91精品久久久久久久久99蜜臂| 国产精品免费久久| 久久精品免费看| 欧美精品久久99| 亚洲另类色综合网站| 大桥未久av一区二区三区中文| 日韩一级欧美一级| 亚洲一区二区三区四区的| 成人高清av在线| 精品国产123| 日韩在线卡一卡二| 一本大道久久a久久综合| 久久久久久久久久久久久久久99| 水蜜桃久久夜色精品一区的特点| 91视频91自| 欧美激情一区二区三区全黄 | www.欧美色图| 久久精品一区四区| 国内精品视频666| 日韩午夜小视频| 三级欧美在线一区| 欧美色图在线观看| 亚洲午夜精品网| 日本高清视频一区二区| 亚洲人xxxx| 91亚洲精品久久久蜜桃网站 | 九九热在线视频观看这里只有精品| 欧美伦理影视网| 性欧美大战久久久久久久久| 欧美图片一区二区三区| 亚洲国产日韩在线一区模特| 在线观看一区不卡| 亚洲一区二区在线免费看| 欧洲精品一区二区| 一区二区视频在线| 欧美日韩一区久久| 五月激情综合色| 91精品啪在线观看国产60岁| 日本欧美加勒比视频| 日韩一区二区三区精品视频| 免费在线一区观看| 2020国产精品自拍| 国产成人精品免费网站| 国产精品欧美久久久久无广告| 成人免费视频一区| 亚洲精品videosex极品| 欧美少妇xxx| 美日韩一区二区| 国产欧美日韩视频在线观看| 成人一级视频在线观看| 亚洲人成网站精品片在线观看| 日本道在线观看一区二区| 亚洲自拍偷拍麻豆| 欧美一级日韩一级| 国产在线精品不卡| 欧美国产一区二区在线观看| 97久久超碰精品国产| 亚洲午夜一区二区| 欧美一区二区视频观看视频| 国产久卡久卡久卡久卡视频精品| 中文在线一区二区| 色视频欧美一区二区三区| 日韩精品高清不卡| xnxx国产精品| 99re66热这里只有精品3直播| 亚洲mv在线观看| 久久久亚洲精华液精华液精华液| aaa欧美日韩| 日韩影院在线观看| 日本一区二区视频在线| 欧美亚男人的天堂| 精品一区二区三区免费| 中文字幕在线不卡一区二区三区| 91精品91久久久中77777| 秋霞午夜av一区二区三区| 国产亚洲成年网址在线观看| 色94色欧美sute亚洲线路二| 日本欧美一区二区三区乱码| 国产欧美日韩不卡| 欧美亚洲国产一卡| 国产精品一区二区三区四区| 中文字幕五月欧美| 欧美一区二区免费观在线| 成a人片亚洲日本久久| 日本午夜精品一区二区三区电影| 国产精品女人毛片| 日韩精品一区二区三区中文不卡 | 日韩一区二区三| 99精品在线观看视频| 天天综合网 天天综合色| 久久久精品免费网站| 欧日韩精品视频| 国产成人精品影视| 亚洲国产wwwccc36天堂| 国产亚洲一区二区三区| 欧美日韩精品一区二区| 国产69精品久久久久777| 五月激情综合婷婷| 亚洲欧美色一区| 国产精品女人毛片| 久久久www免费人成精品| 在线播放欧美女士性生活|