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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? myldbtypes.pas

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數據庫控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
unit MYLDBTypes;

interface

{$I MYLDBVer.inc}

uses
     SysUtils, Classes, Windows,

// MYLDBoluteDatabase units
     {$IFDEF DEBUG_LOG}
     MYLDBDebug,
     {$ENDIF}
     MYLDBSecurity,
     MYLDBMemory,
     MYLDBConst,
     MYLDBExcept;


type

//------------------------------------------------------------------------------
// general types
//------------------------------------------------------------------------------


 TMYLDBErrorCode = Integer;
 TMYLDBPageNo = Integer;
 PMYLDBPageNo = ^TMYLDBPageNo;
 TMYLDBPageBuffer = PChar;
 TMYLDBGetRecordMode = (grmCurrent, grmNext, grmPrior);
 TMYLDBGetRecordResult = (grrOK, grrBOF, grrEOF, grrError);
 TMYLDBBLOBOpenMode = (bomWrite, bomRead, bomReadWrite);
 TMYLDBRecordBuffer = PChar;
 TMYLDBState = Integer;
 TMYLDBObjectID = Integer;
 TMYLDBTableID = TMYLDBObjectID;
 TMYLDBObjectName = ShortString;
 TMYLDBSessionID = Integer;
 TMYLDBRecordNo = Int64;
 TMYLDBPageItemID = packed record
  PageNo:        TMYLDBPageNo; // page number or record number (disk engine or memory, temporary engine)
  PageItemNo:    Word;
 end;
 PMYLDBPageItemID = ^TMYLDBPageItemID;
 TMYLDBRecordID = TMYLDBPageItemID;
 PMYLDBRecordID = ^TMYLDBRecordID;

{ Paradox graphic BLOB header }
type
  TGraphicHeader = record
    Count: Word;                { Fixed at 1 }
    HType: Word;                { Fixed at $0100 }
    Size: Longint;              { Size not including header }
  end;

//------------------------------------------------------------------------------
// disk types
//------------------------------------------------------------------------------


 TMYLDBPageRecordCount = Word;
 PMYLDBPageRecordCount = ^TMYLDBPageRecordCount;
 TMYLDBDBFileType = (dbftUnknown,dbftTablesList,dbftActiveSessionsList);
 TMYLDBLockType = (ltIS,ltS,ltSIRW,ltXIRW,ltRW,ltU,ltX); // U - record lock
 const LocksCompatible: array [ltIS..ltX, ltIS..ltX] of Boolean =
       (
       //IS    S      SIRW   XIRW   RW     U      X
{IS}   (True,  True,  True,  True,  True,  True,  False),
{S}    (True,  True,  True,  True,  False, True,  False),
{SIRW} (True,  True,  True,  False, True,  True,  False),
{XIRW} (True,  True,  False, False, False, True,  False),
{RW}   (True,  False, True,  False, False, True,  False),
{U}    (True,  True,  True,  True,  True,  True,  False),
{X}    (False, False, False, False, False, False, False)
       );
// SIRW-SIRW, SIRW-XIRW compatibility have some exceptions from this table

 type
 //TMYLDBLockType = (ltIS = 0,ltS = 1,ltIRW = 2,ltRW = 3,ltU = 4,ltX = 5);
 TMYLDBLockObjectType = (lotDatabase,lotTable,lotRecord);
 TMYLDBTablePageType = (tptRowStart,tptRowContinue,tptVarchar,tptBLOB);

 PMYLDBDBHeader = ^TMYLDBDBHeader;
 TMYLDBDBHeader = packed record
  Signature:        Array [0..15] of Char;
  HeaderSize:       Smallint;
  Version:          Double;
  PageSize:         Word;
  PageCountInExtent:Word;
  TotalPageCount:   TMYLDBPageNo;
  LastUsedPageNo:   TMYLDBPageNo;
  State:            Integer;
  WriteChangesState:Byte;
  Encrypted:        ByteBool;
  Reserved:         array [1..32] of Byte;
 end;

 TMYLDBCryptoHeader = packed record
  CryptoHeaderSize:  Smallint;
  CryptoAlgorithm:   Byte;
  CryptoMode:        Byte;
  ControlBlock:      array [0..MYLDB_CONTROL_BLOCK_SIZE-1] of Byte;
  ControlBlockCRC:   Cardinal;
  Reserverd:         array [1..16] of Byte;
 end;

 TMYLDBLockedBytes = packed record
  LockedByteSize:   Smallint;
  FSMByte:          Byte;
  TablesByte:       Byte;
  DBHeaderByte:     Byte;
  Reserved:         array [1..15] of Byte;
 end;

 TMYLDBLastObjectID = Integer;

 TMYLDBPageTypeID = Word;

 TMYLDBDiskPageHeader = packed record
  Signature:        Array [0..3] of Char;
  State:            Integer;
  PageType:         TMYLDBPageTypeID;
  NextPageNo:       TMYLDBPageNo;
  CRC32:            Longword;
  CRCType:          Byte;
  HashType:         Byte;
  Cipherype:        Byte;
  MACType:          Byte;
  ObjectID:         TMYLDBObjectID;
  RecordID:         TMYLDBRecordID;
  Reserved:         Array [0..7] of Byte;
 end; // 40 bytes
 PMYLDBDiskPageHeader = ^TMYLDBDiskPageHeader;

  // MYLDBDatabaseFile Mode Types
  TMYLDBShareMode = (smExclusive, smShareDenyNone, smShareDenyWrite);
  TMYLDBAccessMode = (amReadOnly, amReadWrite);

 // Any list header
 PMYLDBListHeader = ^TMYLDBListHeader;
 TMYLDBListHeader = packed record
   Count:       Integer;
   ItemSize:    Integer;
   NextPageNo:  TMYLDBPageNo; // or INVALID_PAGE_NO
 end;// 12 byte

 // Header for internal file
 PMYLDBInternalFileHeader = ^TMYLDBInternalFileHeader;
 TMYLDBInternalFileHeader = packed record
   FileHeaderSize:       Byte;
   FileSize:             Integer;
   DecompressedSize:     Integer;
   CompressionAlgorithm: Byte;
 end;

 // System Directory List Item
 TMYLDBSystemDirectoryListItem = packed record
   FileID:      TMYLDBDBFileType;
   FirstPageNo: TMYLDBPageNo;
 end;// 6 byte


 // Table List Item
 PMYLDBTableListItem = ^TMYLDBTableListItem;
 TMYLDBTableListItem = packed record
   TableName:                           ShortString;
   TableID:                             TMYLDBTableID;
   MetaDataFilePageNo:                  TMYLDBPageNo;
   MostUpdatedFilePageNo:               TMYLDBPageNo;
   LocksFilePageNo:                     TMYLDBPageNo;
 end;

 TMYLDBTablePFSPageMapItem = packed record
   PageNo:          TMYLDBPageNo;
   PageRecordCount: TMYLDBPageRecordCount;
 end;

 TMYLDBLockParams = record
    SessionID:    Integer;
    LockType:     TMYLDBLockType;
    ObjectType:   TMYLDBLockObjectType;
    RowID:        TMYLDBPageItemID;
    TableID:      TMYLDBObjectID;
 end;

//------------------------------------------------------------------------------
// SQL types
//------------------------------------------------------------------------------


 // join type
 TMYLDBJoinType = (ajtCross, ajtInner, ajtLeftOuter,
                 ajtRightOuter, ajtFullOuter);

 // union type
 TMYLDBUnionType = (autUnion, autIntersect, autExcept);

 // table | joined table | subquery
 TMYLDBTableType = (attTable, attJoinedTable, attSubQuery);

 // table | joined table | subquery
 TMYLDBQueryExprType = (qetSelect, qetUnion, qetExcept, qetIntersect);

 TMYLDBBatchMoveType = (bmtAppend, bmtAppendUpdate, bmtCopy, bmtDelete, bmtUpdate, bmtSynchronize);


 // field types
 TMYLDBBaseFieldType = (
                        bftUnknown,

                        bftChar,
                        bftWideChar,
                        bftVarchar,
                        bftWideVarchar,

                        bftSignedInt8,        // Shortint
                        bftSignedInt16,       // Smallint
                        bftSignedInt32,       // Integer
                        bftSignedInt64,       // Int64
                        bftUnsignedInt8,      // Byte
                        bftUnsignedInt16,     // Word
                        bftUnsignedInt32,     // Cardinal
                        //bftUnSignedInt64,

                        bftSingle,
                        bftDouble,
                        bftExtended,

                        bftDate,
                        bftTime,
                        bftDateTime,

                        bftBlob,
                        bftClob,
                        bftWideClob,

                        bftLogical,
                        bftCurrency,

                        bftBytes,
                        bftVarBytes,
                        //bftTimeStamp, == bftDateTime
                        bftBFile
                     );


  TMYLDBAdvancedFieldType = (
    aftUnknown,

    aftChar,            // = bftChar
    aftString,          // = bftVarChar

    aftWideChar,        // = bftChar
    aftWideString,      // = bftWideVarChar

    aftShortint,        // = bftSignedInt8
    aftSmallint,        // = bftSignedInt16
    aftInteger,         // = bftSignedInt32
    aftLargeint,        // = bftSignedInt64
    aftByte,            // = bftUnsignedInt8
    aftWord,            // = bftUnsignedInt16
    aftCardinal,        // = bftUnsignedInt32

    aftAutoInc,         // = bftSignedInt32
    aftAutoIncShortint, // = bftSignedInt8
    aftAutoIncSmallint, // = bftSignedInt16
    aftAutoIncInteger,  // = bftSignedInt32
    aftAutoIncLargeint, // = bftSignedInt64
    aftAutoIncByte,     // = bftUnsignedInt8
    aftAutoIncWord,     // = bftUnsignedInt16
    aftAutoIncCardinal, // = bftUnsignedInt32


    aftSingle,          // = bftSingle
    aftDouble,          // = bftDouble
    aftExtended,        // = bftExtended

    aftBoolean,         // = bftLogical

    aftCurrency,        // = bftCurrency

    aftDate,            // = bftDate
    aftTime,            // = bftTime
    aftDateTime,        // = bftDateTime
    aftTimeStamp,       // = bftDateTime

    aftBytes,           // = bftBytes
    aftVarBytes,        // = bftVarBytes

    aftBlob,            // = bftBlob
    aftGraphic,         // = bftBlob
    aftMemo,            // = bftClob
    aftFormattedMemo,   // = bftClob
    aftWideMemo,        // = bftWideClob
    aftGuid             // = bftChar(38)
//aftArray,
//    aftParadoxOle,
//    aftDBaseOle,
//    aftTypedBinary,
//    aftCursor,
//    aftReference,
//    aftDataSet,
//    aftVariant,
//    aftInterface,
//    aftIDispatch,
    );

 //TMYLDBDefaultValueType = (dvtNull, dvtConst, dvtSequence, dvtFunction, dvtQuery);
 TMYLDBConstraintType = (ctPK, ctFK, ctUnique, ctNotNull, ctCheck);
 TMYLDBCompareResult = (cmprEqual, cmprLower, cmprGreater,
                      cmprLeftNull, cmprRightNull, cmprBothNull);

 // unary / binary Value operators
 TMYLDBDataOperator = (
    doUNDEFINED,                       // error
    //George doCMP,                             // compare <0,=0,>0
    {Comparison}
    doEQ,                              // equal
    doNE,                              // NOT equal
    doGT,                              // greater than
    doLT,                              // less than
    doGE,                              // greater or equal
    doLE,                              // less or equal
    {Boolean}
    doNOT,                             // NOT
    doAND,                             // AND
    doOR,                              // OR
    doIN,                              // in (a,b,c, ...)
    doNOTIN,                           // not in (a,b,c, ...)
    doEXISTS,                          // exists (subquery)
    doBETWEEN,                         // between (a,b)
    doNOTBETWEEN,                      // not between (a,b)
    doLIKE,                            // like 'a?b%'
    doNOTLIKE,                         // not like
    doISNULL,                          // is null
    doISNOTNULL,                       // is not null
    doTRUE,                            // TRUE const
    doFALSE,                           // FALSE const
    {Arithmetic}
    doADD,                             // addition
    doSUB,                             // subtraction
    doMUL,                             // multiplication
    doDIV,                             // division
    {Functions}
    //doPOSITION,                        // Position (str1) in (str2)
    doCONCAT,                          // str1 || str2
    doUPPER,                           // Upper(str)
    doLOWER,                           // Lower(str)
    doTRIM,                            // TRIM
    doLTRIM,                           // LTRIM
    doRTRIM,                           // RTRIM
    doLENGTH,                          // LENGTH(str)
    doPOS,                             // POS(substr in|, str) { 1 - first char, 0 - not found }
    doSUBSTRING,                       // SUBSTRING(str from|, startindex [for|, length])
    {aggregated functions}
    doSUM,                             // SUM([distinct]expression)
    doAVG,                             // AVG([distinct]expression)
    doMIN,                             // min(expression)
    doMAX,                             // max(expression)
    doCOUNT,                           // COUNT([distinct]expression)
    doCOUNTALL,                        // count(*)
    {datetime functions}
    doSYSDATE,                         // SYSDATE - return current DateTime
    doCURRENT_DATE,                    // CURRENT_DATE
    doCURRENT_TIME,                    // CURRENT_TIME
    doTODATE,                          // TODATE(string, format)
    doTOSTRING,                        // TOSTRING(date, format)
    doEXTRACT,                         // EXTRACT (YEAR FROM datetime_field)
    {cast types}
    doCAST,                            // Cast(expression, type)
    {system}
    doLASTAUTOINC,
    {blob}
    doMIMETOBIN,                       // MimeToBin(MimeString)

    doROWNUM,                          // selected row number (iterated)
    {math}
    doMYLDB,                             // ABS(number)
    doACOS,
    doASIN,
    doATAN,
    doCEIL,
    doCOS,
    doEXP,
    doFLOOR,
    doLOG,
    doPOWER,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区视频在线观看| 色香蕉成人二区免费| 91黄色免费版| 美女视频黄频大全不卡视频在线播放 | 激情成人综合网| 在线国产亚洲欧美| 中文字幕高清不卡| 精品在线视频一区| 欧美精品一卡二卡| 亚洲精品欧美激情| 高清shemale亚洲人妖| 91.com在线观看| 亚洲免费视频成人| 成人综合在线网站| 精品国产乱码91久久久久久网站| 五月天视频一区| 色哟哟日韩精品| 国产精品久久久久久久岛一牛影视| 久久99国产精品尤物| 91精品欧美综合在线观看最新| 亚洲免费观看高清完整版在线观看熊| 国产精品538一区二区在线| 91麻豆精品国产91久久久使用方法 | 欧美激情在线观看视频免费| 精品一区二区在线视频| 欧美一区二区三区在线视频| 亚洲一区精品在线| 91久久一区二区| 亚洲三级免费观看| av成人免费在线观看| 国产农村妇女毛片精品久久麻豆 | 韩国精品一区二区| 4438亚洲最大| 午夜国产精品一区| 欧美日韩国产综合一区二区| 亚洲综合在线第一页| 波多野结衣亚洲一区| 久久精品国产99国产| 7777精品伊人久久久大香线蕉完整版 | 欧美一级午夜免费电影| 日韩精品成人一区二区三区| 欧美剧情片在线观看| 亚洲妇熟xx妇色黄| 欧美日韩三级视频| 性做久久久久久久免费看| 欧美日韩亚洲国产综合| 亚洲综合图片区| 欧美在线观看禁18| 亚洲大片精品永久免费| 欧美三级电影精品| 日韩中文欧美在线| 欧美一区二区视频在线观看2020| 奇米在线7777在线精品| 日韩欧美国产wwwww| 精品一区二区国语对白| www国产亚洲精品久久麻豆| 国产揄拍国内精品对白| 久久久久久久久久久久久久久99| 国产精品 日产精品 欧美精品| 久久久亚洲午夜电影| 国产不卡高清在线观看视频| 中文字幕一区二区三区不卡| 色婷婷av一区| 午夜精品福利视频网站| 日韩视频在线你懂得| 精品在线播放午夜| 国产女人水真多18毛片18精品视频| jizzjizzjizz欧美| 一个色综合网站| 666欧美在线视频| 久久精品99国产精品日本| 久久蜜桃av一区精品变态类天堂| 国产91综合网| 亚洲中国最大av网站| 777午夜精品免费视频| 国产一区二区免费在线| 中文字幕制服丝袜一区二区三区 | 国产亚洲一区字幕| 99久久精品情趣| 成人av资源在线| 亚洲无线码一区二区三区| 日韩精品资源二区在线| 国产在线视频一区二区三区| 亚洲欧美综合在线精品| 欧美日韩另类国产亚洲欧美一级| 另类小说图片综合网| 国产精品欧美精品| 欧美丝袜第三区| 久99久精品视频免费观看| 国产精品国产三级国产三级人妇 | www.激情成人| 亚洲国产精品一区二区久久| 精品三级在线看| 97久久精品人人爽人人爽蜜臀 | 一区二区三区影院| 日韩精品资源二区在线| 99精品视频中文字幕| 日本免费在线视频不卡一不卡二| 久久精品男人天堂av| 欧美日韩免费视频| 国产激情偷乱视频一区二区三区| 亚洲午夜国产一区99re久久| 国产欧美综合在线观看第十页| 欧美亚洲综合网| 国产999精品久久久久久| 爽好久久久欧美精品| 中文字幕在线播放不卡一区| 日韩视频一区二区三区| 97久久超碰国产精品| 久久99精品国产麻豆婷婷| 亚洲黄色免费网站| 国产午夜精品一区二区三区视频| 欧美日韩在线播| av中文字幕亚洲| 精品一区二区三区免费播放 | 国产精品无人区| 538prom精品视频线放| 97精品国产97久久久久久久久久久久| 日本免费在线视频不卡一不卡二| 亚洲欧美区自拍先锋| 久久免费美女视频| 在线成人小视频| 色婷婷综合久久久久中文一区二区| 国产在线精品一区二区夜色| 亚洲成人三级小说| 一色桃子久久精品亚洲| 久久网站热最新地址| 9191精品国产综合久久久久久 | 精品一区在线看| 五月婷婷综合激情| 亚洲欧美偷拍卡通变态| 国产清纯美女被跳蛋高潮一区二区久久w | 国产乱一区二区| 青青草国产精品97视觉盛宴| 亚洲午夜在线电影| ...av二区三区久久精品| 国产亚洲综合在线| 亚洲午夜在线观看视频在线| 亚洲视频在线一区观看| 久久久国产精品麻豆| 日韩精品最新网址| 日韩亚洲欧美在线观看| 欧美日韩国产高清一区二区| 色婷婷久久久久swag精品| www.欧美亚洲| 99久久精品免费观看| 不卡一区中文字幕| 国产91综合网| 成人国产精品免费观看动漫| 国产高清久久久| 国产不卡视频在线观看| 国产91精品欧美| 国产成人丝袜美腿| 国产伦精品一区二区三区免费迷 | 国产大陆a不卡| 国产成人午夜视频| 国产aⅴ综合色| 成人免费看黄yyy456| 成人美女视频在线观看18| 国产精品一二一区| 国产suv精品一区二区6| 粉嫩aⅴ一区二区三区四区五区| 国产成人精品影视| 大胆欧美人体老妇| 99久久精品国产毛片| 91麻豆精品在线观看| 91免费看`日韩一区二区| 91麻豆.com| 欧美伊人久久大香线蕉综合69| 欧美日韩一级二级三级| 欧美一区欧美二区| 日韩三级.com| 久久综合久色欧美综合狠狠| 国产午夜一区二区三区| 中文字幕一区三区| 亚洲激情一二三区| 五月天国产精品| 免费成人美女在线观看.| 久久99国产精品久久99果冻传媒| 国产综合久久久久久久久久久久| 国产成人一区在线| 99视频在线精品| 91黄色免费网站| 欧美一区二区三区在线观看| 久久久久久电影| 中文字幕日本乱码精品影院| 一区二区三区日韩| 日韩精品久久久久久| 国产一区二区三区av电影 | 麻豆视频一区二区| 国产大片一区二区| 一本大道av一区二区在线播放| 欧美午夜理伦三级在线观看| 日韩一区二区三区四区| 久久久99精品久久| 亚洲人被黑人高潮完整版| 亚洲第一二三四区| 国产乱人伦精品一区二区在线观看| 91在线免费播放| 538在线一区二区精品国产|