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

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

?? myldbpage.pas

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標(biāo)準(zhǔn)數(shù)據(jù)庫控件
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
    end;
  FTableStates[Index].IsTableStateValueAssigned := True;
  FTableStates[Index].TableState := TableState;
end;// SetTableState



////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBPageController
//
////////////////////////////////////////////////////////////////////////////////

//------------------------------------------------------------------------------
// SetPageNo
//------------------------------------------------------------------------------
procedure TMYLDBPageController.SetPageNo(Value: TMYLDBPageNo);
begin
  LPage.PageNo := Value;
end;// SetPageNo


//------------------------------------------------------------------------------
// GetPageNo
//------------------------------------------------------------------------------
function TMYLDBPageController.GetPageNo: TMYLDBPageNo;
begin
  Result := LPage.PageNo;
end;// GetPageNo


//------------------------------------------------------------------------------
// GetPageSize
//------------------------------------------------------------------------------
function TMYLDBPageController.GetPageSize: Integer;
begin
  Result := LPage.PageSize;
end;// GetPageSize


//------------------------------------------------------------------------------
// SetPageBuffer
//------------------------------------------------------------------------------
procedure TMYLDBPageController.SetPageBuffer(Value: TMYLDBPageBuffer);
begin
  LPage.PageBuffer := Value;
end;// SetPageBuffer


//------------------------------------------------------------------------------
// GetPageBuffer
//------------------------------------------------------------------------------
function TMYLDBPageController.GetPageBuffer: TMYLDBPageBuffer;
begin
  Result := LPage.PageBuffer;
end;// GetPageBuffer


//------------------------------------------------------------------------------
// SetOwnBuffer
//------------------------------------------------------------------------------
procedure TMYLDBPageController.SetOwnBuffer(Value: Boolean);
begin
  LPage.OwnBuffer := Value;
end;// SetOwnBuffer


//------------------------------------------------------------------------------
// GetOwnBuffer
//------------------------------------------------------------------------------
function TMYLDBPageController.GetOwnBuffer: Boolean;
begin
  Result := LPage.OwnBuffer;
end;// GetOwnBuffer


//------------------------------------------------------------------------------
// SetIsDirty
//------------------------------------------------------------------------------
procedure TMYLDBPageController.SetIsDirty(Value: Boolean);
begin
  LPage.IsDirty := Value;
end;// SetIsDirty


//------------------------------------------------------------------------------
// GetIsDirty
//------------------------------------------------------------------------------
function TMYLDBPageController.GetIsDirty: Boolean;
begin
  Result := LPage.IsDirty;
end;// GetIsDirty


//------------------------------------------------------------------------------
// SetUseCount
//------------------------------------------------------------------------------
procedure TMYLDBPageController.SetUseCount(Value: Integer);
begin
  LPage.UseCount := Value;
end;// SetUseCount


//------------------------------------------------------------------------------
// GetUseCount
//------------------------------------------------------------------------------
function TMYLDBPageController.GetUseCount: Integer;
begin
  Result := LPage.UseCount;
end;// GetUseCount


//------------------------------------------------------------------------------
// GetPageManager
//------------------------------------------------------------------------------
function TMYLDBPageController.GetPageManager: TMYLDBPageManager;
begin
  Result := LPage.PageManager;
end;// GetPageManager


//------------------------------------------------------------------------------
// GetPageData
//------------------------------------------------------------------------------
function TMYLDBPageController.GetPageData: TMYLDBPageBuffer;
begin
  Result := LPage.PageData;
end;// GetPageData


//------------------------------------------------------------------------------
// GetPageDataSize
//------------------------------------------------------------------------------
function TMYLDBPageController.GetPageDataSize: Integer;
begin
  Result := LPage.PageDataSize;
end;// GetPageDataSize


//------------------------------------------------------------------------------
// EnlargePageBuffer
//------------------------------------------------------------------------------
procedure TMYLDBPageController.EnlargePageBuffer(NewSize: Integer);
begin
  LPage.EnlargePageBuffer(NewSize);
end;// EnlargePageBuffer



////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBSortedPageList
//
////////////////////////////////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// Construct array of specified size
//------------------------------------------------------------------------------
constructor TMYLDBSortedPageList.Create(size: integer);
begin
 AllocBy := 1000; // default alloc
 deAllocBy := 1000; // default dealloc
 MaxAllocBy := 10000; // max alloc
 AllocItemCount := 0;
 LRUCount := 0;
 SetSize(size);
end;//Create


//------------------------------------------------------------------------------
// Delete an element by specified key
//------------------------------------------------------------------------------
procedure TMYLDBSortedPageList.Delete(PageNo: integer);
var pos : Integer;
begin
 if (itemCount <= 0) then
  raise EMYLDBException.Create(20165, ErrorADeleteFromArray);
 if (itemCount = 1) then
  DeleteByPosition(0)
 else
  begin
   pos := FindPosition(PageNo);
   if (pos < 0) then
     raise EMYLDBException.Create(20166, ErrorADeleteFromArrayNotFound, [PageNo, itemCount]);
   DeleteByPosition(pos);
  end;
end;//Delete


//------------------------------------------------------------------------------
// Clear
//------------------------------------------------------------------------------
procedure TMYLDBSortedPageList.Clear;
begin
  ItemCount := 0;
end;// Clear


//------------------------------------------------------------------------------
// FirstByLRU
//------------------------------------------------------------------------------
function TMYLDBSortedPageList.FirstByLRU: TMYLDBPage;
var
  bInit: Boolean;
  i: Integer;
begin
  bInit := False;
  Result := nil;
  for i := 0 to ItemCount-1 do
   if ((not bInit) or (ValueItems[i].LRUCount < LRULastFound)) then
     begin
       bInit := True;
       LRULastFound := ValueItems[i].LRUCount;
       Result := ValueItems[i].Page;
     end;
end;// FirstByLRU


//------------------------------------------------------------------------------
// NextByLRU
//------------------------------------------------------------------------------
function TMYLDBSortedPageList.NextByLRU: TMYLDBPage;
var
  i: Integer;
begin
  Result := nil;
  for i := 0 to ItemCount-1 do
   if (ValueItems[i].LRUCount < LRULastFound) then
     begin
       LRULastFound := ValueItems[i].LRUCount;
       Result := ValueItems[i].Page;
       break;
     end;
end;// NextByLRU


//------------------------------------------------------------------------------
// UpdateLRU
//------------------------------------------------------------------------------
procedure TMYLDBSortedPageList.UpdateLRU(Page: TMYLDBPage);
var
  pos: Integer;
begin
  pos := FindPosition(Page.PageNo);
  if (Pos = - 1) then
    raise EMYLDBException.Create(20167, ErrorAPageNotFound);
  Inc(LRUCount);
  ValueItems[Pos].LRUCount := LRUCount;
end;// UpdateLRU


//------------------------------------------------------------------------------
// Delete an element at specified position
//------------------------------------------------------------------------------
procedure TMYLDBSortedPageList.DeleteByPosition(ItemNo: integer);
begin
 if (itemNo < itemCount-1) then
  begin
   Move(KeyItems[itemNo+1],KeyItems[itemNo],
       (itemCount - itemNo-1) * sizeOf(integer));
   Move(ValueItems[itemNo+1],ValueItems[itemNo],
       (itemCount - itemNo-1) * sizeOf(ValueItems[0]));
  end;
 dec(ItemCount);
 SetSize(ItemCount);
end;//DeleteByPosition


//------------------------------------------------------------------------------
// Finds value for specified key
// returns nil if element was not found
//------------------------------------------------------------------------------
function TMYLDBSortedPageList.Find(key: Integer): TMYLDBPage;
var
  pos: Integer;
begin
 pos := FindPositionForInsert(key);
 if (pos >= itemCount) or (pos < 0) then
  Result := nil
 else
  if (KeyItems[pos] <> key) then
   Result := nil
 else
  Result := ValueItems[pos].Page;
end;//Find


//------------------------------------------------------------------------------
// Finds position for insert element
// returns -1 if element was not found
//------------------------------------------------------------------------------
function TMYLDBSortedPageList.FindPosition(key: Integer): Integer;
begin
 Result := FindPositionForInsert(key);
 if (Result >= itemCount) or (Result < 0) then
  Result := -1
 else
  if (KeyItems[Result] <> key) then
   Result := -1;
end;//FindPosition


//------------------------------------------------------------------------------
// Finds position for insert element
//------------------------------------------------------------------------------
function TMYLDBSortedPageList.FindPositionForInsert(key: Integer): Integer;
var i,dx,f,
    oldRes,res : Integer;
begin
 i := itemCount shr 1;
 dx := i;
 Result := itemCount;
 if (itemCount > 0) then
 begin
  f := 0;
  res := 2;
  while (true) do
   begin
    dx := dx shr 1;
    if (dx < 1) then dx := 1;
     oldRes := res;
     // compare, ascending
     if (KeyItems[i] = key) then
      res := 0
     else
      if (KeyItems[i] < key) then
       res := 1
      else
       res := -1;
    if (res < 0) then
     begin
      //  element, specified by value should be higher then current element (+->0)
      i := i - dx;
     end
    else
    if (res > 0) then
     begin
      //  element, specified by value should be lower then current element (+->0)
      i := i + dx;
     end
    else // values are equal
     begin
      Result := i;
      break;
     end;
    if  (i < 0) and (dx = 1) then
     begin
      Result := 0;
      break;
     end;
    if  (i > itemCount-1) and (dx = 1) then
     begin
      Result := itemCount;
      break;
     end;

    if  (i > itemCount-1) then
     i := itemCount-1;
    if  i < 0 then
     i := 0;

    if (dx = 1) and (f > 1) then
     begin
      // dx minimum
      // compare, ascending
      if (KeyItems[i] = key) then
       res := 0
      else
       if (KeyItems[i] < key) then
        res := 1
       else
        res := -1;

      if (res < 0) and (oldRes > 0) then
       Result := i;
      if (res > 0) and (oldRes < 0) then
       Result := i+1;
      if (res = oldRes) then
       continue;
      break;
     end;// last step
    if (res <> oldRes) and (dx = 1) and (oldRes <> 2) then
     inc(f);
  end;//while dx
 end; // if itemCount > 0
end;//FindPositionForInsert


//------------------------------------------------------------------------------
// Insert an element into specified position
//------------------------------------------------------------------------------
procedure TMYLDBSortedPageList.Insert(Page: TMYLDBPage);
var
  pos : Integer;
  value: TMYLDBPageElement;
begin
 Inc(LRUCount);
 value.Page := Page;
 value.LRUCount := LRUCount;
 if (itemCount <= 0) then
  InsertByPosition(0,Page.PageNo,value)
 else
  if (itemCount = 1) then
   begin
    if (KeyItems[0] <= Page.PageNo) then
     InsertByPosition(1,Page.PageNo,value)
    else
     InsertByPosition(0,Page.PageNo,value);
   end
  else
   begin
    pos := FindPositionForInsert(Page.PageNo);
    InsertByPosition(pos,Page.PageNo,value);
   end;
end;//Insert


//------------------------------------------------------------------------------
// Insert an element into specified position
//------------------------------------------------------------------------------
procedure TMYLDBSortedPageList.InsertByPosition(ItemNo, key: integer; var value: TMYLDBPageElement);
begin
 inc(ItemCount);
 SetSize(ItemCount);
 if (itemCount <= 1) then
  begin
   KeyItems[0] := key;
   ValueItems[0] := value;
  end
 else
 if (itemNo >= itemCount-1)
  then
   begin
    KeyItems[itemCount-1] := key;
    ValueItems[itemCount-1] := value;
   end
  else
   begin
    Move(KeyItems[itemNo],KeyItems[itemNo+1],
        (itemCount - itemNo-1) * sizeOf(integer));
    Move(ValueItems[itemNo],ValueItems[itemNo+1],
        (itemCount - itemNo-1) * sizeOf(ValueItems[0]));
    KeyItems[itemNo] := key;
    ValueItems[itemNo] := value;
   end;
end;//InsertByPosition


//------------------------------------------------------------------------------

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲bt欧美bt精品777| 欧美日韩国产经典色站一区二区三区 | 亚洲一区二区三区中文字幕在线| 99精品国产一区二区三区不卡| 中文字幕中文字幕一区二区| av动漫一区二区| 亚洲精品视频在线观看免费| 欧美日韩一区高清| 蜜芽一区二区三区| 久久午夜羞羞影院免费观看| 国产成人av电影在线| 国产精品另类一区| 在线视频一区二区三| 日本sm残虐另类| 中文一区二区完整视频在线观看| 99久久精品一区| 日本中文字幕一区| 中文字幕第一区第二区| 欧美日韩亚洲综合在线 | 91精品午夜视频| 精品在线观看视频| 国产精品久久综合| 正在播放一区二区| 国产成人av电影| 亚洲夂夂婷婷色拍ww47| 日韩欧美一区二区在线视频| 高清不卡在线观看| 亚洲高清免费观看高清完整版在线观看| 欧美一区二区日韩| 99久久99精品久久久久久| 无码av免费一区二区三区试看 | 日本道免费精品一区二区三区| 免费成人在线视频观看| 中文字幕制服丝袜成人av| 欧美日本不卡视频| 成人av资源在线| 久久机这里只有精品| 精品成a人在线观看| 欧美午夜精品一区二区三区 | 在线观看成人免费视频| 蜜臀精品久久久久久蜜臀 | 国产在线麻豆精品观看| 中文字幕亚洲一区二区av在线| 欧美日韩电影一区| 成人激情免费视频| 国产在线一区观看| 午夜精品久久久久久久| 专区另类欧美日韩| 久久久.com| 日韩一区二区三区电影在线观看 | 93久久精品日日躁夜夜躁欧美| 蜜桃视频在线观看一区| 亚洲欧美日韩国产综合| 日韩欧美一区二区三区在线| av成人动漫在线观看| 国产在线观看一区二区| 日本伊人午夜精品| 一区二区成人在线视频| 国产婷婷色一区二区三区在线| 日韩欧美国产一二三区| 欧美日韩国产123区| 欧洲一区二区三区在线| 91麻豆免费看片| 丁香五精品蜜臀久久久久99网站| 蜜桃久久av一区| 日本视频中文字幕一区二区三区| 亚洲一区影音先锋| 一区二区三区中文字幕精品精品| 国产精品欧美一级免费| 久久久国产一区二区三区四区小说 | 亚洲一区二区四区蜜桃| 亚洲男同1069视频| 樱桃国产成人精品视频| 蜜桃av一区二区在线观看| 亚洲一区二区在线免费观看视频| 中文字幕日韩一区二区| 国产精品久久久久影院色老大| 日韩欧美的一区二区| 欧美一区二区三区四区在线观看| 欧美日韩一区二区三区高清| 欧美午夜影院一区| 欧美女孩性生活视频| 制服丝袜在线91| 欧美一区二区网站| 日韩情涩欧美日韩视频| 日韩一区二区三区电影在线观看 | 欧美精品在线视频| 欧美视频完全免费看| 欧美视频在线一区二区三区| 欧美三级视频在线| 欧美一区日本一区韩国一区| 精品国产乱码久久久久久闺蜜| 国产一区二区三区四区在线观看| 亚洲欧美怡红院| 一区二区三区在线影院| 午夜久久电影网| 美女视频第一区二区三区免费观看网站| 日韩va亚洲va欧美va久久| 久久99精品久久久久久久久久久久| 国产一区二区视频在线| k8久久久一区二区三区| 色婷婷久久99综合精品jk白丝| 欧美午夜精品免费| 欧美草草影院在线视频| 中文字幕欧美区| 亚洲国产日韩一区二区| 国产在线精品视频| 97久久久精品综合88久久| 欧美日本在线观看| 久久免费国产精品| 一区二区三区中文免费| 久久精品国产免费| 99久久久久免费精品国产 | 久久综合久久综合久久综合| 亚洲欧洲成人精品av97| 日韩精品一卡二卡三卡四卡无卡 | 日韩欧美国产成人一区二区| 91免费视频大全| 欧美精品第一页| 国产日韩影视精品| 亚洲一区二区三区视频在线| 久久精品免费观看| 成人av网站在线| 制服丝袜中文字幕一区| 国产精品久久久久久久久图文区 | 久久看人人爽人人| 亚洲在线视频网站| 国产一区二区按摩在线观看| 欧美中文字幕一区二区三区亚洲| 欧美大片一区二区| 亚洲精品视频观看| 国产乱妇无码大片在线观看| 色婷婷国产精品综合在线观看| 欧美精品一区二区久久婷婷| 亚洲一二三区不卡| 成人免费观看视频| 欧美大片在线观看一区| 性做久久久久久免费观看| 懂色av一区二区三区免费看| 欧美一区二区网站| 国产成人综合视频| 成人免费的视频| 久久久影院官网| 美女脱光内衣内裤视频久久影院| 欧美在线一二三| |精品福利一区二区三区| 国内精品伊人久久久久av一坑| 7777精品伊人久久久大香线蕉经典版下载 | 中文字幕高清不卡| 久久99国产精品久久| 欧美肥大bbwbbw高潮| 亚洲国产精品欧美一二99| 9人人澡人人爽人人精品| 国产日韩欧美一区二区三区综合 | 国产精品视频一区二区三区不卡| 美日韩黄色大片| 3751色影院一区二区三区| 亚洲成人av一区二区| 色婷婷香蕉在线一区二区| 1024成人网| 色噜噜狠狠成人中文综合| 久久久久久久久久久久久夜| 丝袜美腿高跟呻吟高潮一区| 欧美自拍偷拍午夜视频| 亚洲国产va精品久久久不卡综合| 日本乱人伦一区| 亚洲一二三区不卡| 欧美欧美欧美欧美首页| 爽爽淫人综合网网站| 欧美高清激情brazzers| 日韩精品视频网站| 日韩三级视频在线看| 激情六月婷婷久久| 国产欧美综合在线观看第十页| 国产99久久久国产精品潘金网站| 久久婷婷综合激情| 国产成人在线看| 亚洲欧洲国产日韩| 欧美视频在线一区| 奇米影视一区二区三区| 欧美成人性战久久| 国产成a人亚洲精品| 国产精品久久久久久久久久免费看| jlzzjlzz欧美大全| 亚洲欧美另类久久久精品| 精品视频在线免费观看| 日本vs亚洲vs韩国一区三区二区| 日韩免费性生活视频播放| 国产传媒日韩欧美成人| 亚洲私人黄色宅男| 欧美日韩二区三区| 激情偷乱视频一区二区三区| 欧美极品aⅴ影院| 欧美性一二三区| 久久99精品视频| 亚洲三级在线看| 日韩一区二区三区高清免费看看| 国产黄色精品网站| 亚洲国产视频一区| 26uuu亚洲综合色|