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

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

?? myldbfldlinks.pas

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數據庫控件
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
begin
{$IFDEF DEBUG_TRACE_DATASET}
aaWriteToLog('TMYLDBLinkFields.SetDataSet start');
if (Value = nil) then
  aaWriteToLog('TMYLDBLinkFields.SetDataSet Value = nil');
if (Value.FieldDefs = nil) then
  aaWriteToLog('TMYLDBLinkFields.SetDataSet Value.FieldDefs = nil');
{$ENDIF}
 Value.Open;
{$IFDEF DEBUG_TRACE_DATASET}
aaWriteToLog('TMYLDBLinkFields.SetDataSet 0');
{$ENDIF}
  Value.FieldDefs.Update;
{$IFDEF DEBUG_TRACE_DATASET}
aaWriteToLog('TMYLDBLinkFields.SetDataSet 0.1');
{$ENDIF}
 Value.Close;

{$IFDEF DEBUG_TRACE_DATASET}
if (Value.FieldDefs.Updated) then
 aaWriteToLog('TMYLDBLinkFields.SetDataSet updated!')
else
 aaWriteToLog('TMYLDBLinkFields.SetDataSet not updated!');

aaWriteToLog('TMYLDBLinkFields.SetDataSet 1');
{$ENDIF}
  IndexDefs := DataSetProxy.IndexDefs;
{$IFDEF DEBUG_TRACE_DATASET}
aaWriteToLog('TMYLDBLinkFields.SetDataSet 2');
{$ENDIF}
  if (Assigned(IndexDefs)) then
    IndexDefs.Update;
{$IFDEF DEBUG_TRACE_DATASET}
aaWriteToLog('TMYLDBLinkFields.SetDataSet 3');
{$ENDIF}
  if ((not Assigned(Value.DataSource)) or
      (not Assigned(Value.DataSource.DataSet))) then
    DatabaseError(ErrorLMissingDataSource, Value);
{$IFDEF DEBUG_TRACE_DATASET}
aaWriteToLog('TMYLDBLinkFields.SetDataSet 4');
{$ENDIF}
Value.DataSource.DataSet.Open;
{$IFDEF DEBUG_TRACE_DATASET}
aaWriteToLog('TMYLDBLinkFields.SetDataSet 4.5');
{$ENDIF}
  Value.DataSource.DataSet.FieldDefs.Update;
{$IFDEF DEBUG_TRACE_DATASET}
aaWriteToLog('TMYLDBLinkFields.SetDataSet 4.6');
{$ENDIF}
Value.DataSource.DataSet.Close;
{$IFDEF DEBUG_TRACE_DATASET}
if (Value.FieldDefs.Updated) then
 aaWriteToLog('TMYLDBLinkFields.SetDataSet updated2 !')
else
 aaWriteToLog('TMYLDBLinkFields.SetDataSet not updated2 !');
aaWriteToLog('TMYLDBLinkFields.SetDataSet 5');
{$ENDIF}
  FDataSet := Value;
{$IFDEF DEBUG_TRACE_DATASET}
aaWriteToLog('TMYLDBLinkFields.SetDataSet 6');
{$ENDIF}
  FMasterDataSet := Value.DataSource.DataSet;
{$IFDEF DEBUG_TRACE_DATASET}
aaWriteToLog('TMYLDBLinkFields.SetDataSet finish');
{$ENDIF}
end;

procedure TMYLDBLinkFields.Initialize;
var
  SIndexName: string;

  procedure SetUpLists(const MasterFieldList, DetailFieldList: string);
  var
    I, J: Integer;
    MasterFieldName, DetailFieldName: string;
  begin
    I := 1;
    J := 1;
    while ((I <= Length(MasterFieldList)) and (J <= Length(DetailFieldList))) do
    begin
      MasterFieldName := StripFieldName(MasterFieldList, I);
      DetailFieldName := StripFieldName(DetailFieldList, J);
      if (MasterList.Items.IndexOf(MasterFieldName) <> -1) and
        (OrderedDetailList.IndexOf(DetailFieldName) <> -1) then
      begin
        with OrderedDetailList do
          Objects[IndexOf(DetailFieldName)] := TObject(True);
        with DetailList.Items do
          Delete(IndexOf(DetailFieldName));
        with MasterList.Items do
          Delete(IndexOf(MasterFieldName));
        BindList.Items.Add(Format('%s -> %s',
          [DetailFieldName, MasterFieldName]));
        ClearButton.Enabled := True;
      end;
    end;
  end;

begin
  if (not DataSetProxy.IndexBased) then
   begin
    IndexLabel.Visible := False;
    IndexList.Visible := False;
   end
  else
   with DataSetProxy do
    begin
     GetIndexNames(IndexList.Items);
     if (IndexFieldNames <> '') then
      SIndexName := IndexDefs.FindIndexForFields(IndexFieldNames).Name
     else SIndexName := IndexName;
      if ((SIndexName <> '') and (IndexList.Items.IndexOf(SIndexName) >= 0)) then
       IndexList.ItemIndex := IndexList.Items.IndexOf(SIndexName)
      else
       IndexList.ItemIndex := 0;
    end;
  with DataSetProxy do
   begin
    MasterFieldList := MasterFields;
    if ((IndexFieldNames = '') and (IndexName <> '') and
        (IndexDefs.IndexOf(IndexName) >= 0)) then
      IndexFieldList := IndexDefs[IndexDefs.IndexOf(IndexName)].Fields
    else
      IndexFieldList := IndexFieldNames;
   end;
  IndexListChange(nil);
  FMasterDataSet.GetFieldNames(MasterList.Items);
  OrderedMasterList.Assign(MasterList.Items);
  SetUpLists(MasterFieldList, IndexFieldList);
end;

procedure TMYLDBLinkFields.IndexListChange(Sender: TObject);
var
  I:        Integer;
  IndexExp: String;
begin
  DetailList.Items.Clear;
  if (DataSetProxy.IndexBased) then
   begin
    DataSetProxy.IndexName := IndexList.Text;
    I := DataSetProxy.IndexDefs.IndexOf(DataSetProxy.IndexName);
    if (I <> -1) then
      IndexExp := DataSetProxy.IndexDefs.Items[I].Expression;
    if (IndexExp <> '') then
      DetailList.Items.Add(IndexExp)
    else
      DataSetProxy.GetFieldNamesForIndex(DetailList.Items);
   end
  else
   DataSet.GetFieldNames(DetailList.Items);
  MasterList.Items.Assign(OrderedMasterList);
  OrderedDetailList.Assign(DetailList.Items);
  for I := 0 to OrderedDetailList.Count - 1 do
    OrderedDetailList.Objects[I] := TObject(False);
  BindList.Clear;
  AddButton.Enabled := False;
  ClearButton.Enabled := False;
  DeleteButton.Enabled := False;
  MasterList.ItemIndex := -1;
end;

procedure TMYLDBLinkFields.OrderFieldList(OrderedList, List: TStrings);
var
  I, J:                         Integer;
  MinIndex, Index, FieldIndex:  Integer;
begin
  for J := 0 to List.Count - 1 do
  begin
    MinIndex := $7FFF;
    FieldIndex := -1;
    for I := J to List.Count - 1 do
    begin
      Index := OrderedList.IndexOf(List[I]);
      if Index < MinIndex then
      begin
        MinIndex := Index;
        FieldIndex := I;
      end;
    end;
    List.Move(FieldIndex, J);
  end;
end;

procedure TMYLDBLinkFields.AddToBindList(const Str1, Str2: string);
var
  I:        Integer;
  NewField: String;
  NewIndex: Integer;
begin
  NewIndex := OrderedDetailList.IndexOf(Str1);
  NewField := Format('%s -> %s', [Str1, Str2]);
  with BindList.Items do
   begin
    for I := 0 to Count - 1 do
     begin
      if OrderedDetailList.IndexOf(StripDetail(Strings[I])) > NewIndex then
       begin
        Insert(I, NewField);
        Exit;
      end;
     end;
    Add(NewField);
   end;
end;

procedure TMYLDBLinkFields.BindingListClick(Sender: TObject);
begin
  AddButton.Enabled := (DetailList.ItemIndex <> LB_ERR) and
    (MasterList.ItemIndex <> LB_ERR);
end;

procedure TMYLDBLinkFields.AddButtonClick(Sender: TObject);
var
  DetailIndex: Integer;
  MasterIndex: Integer;
begin
  DetailIndex := DetailList.ItemIndex;
  MasterIndex := MasterList.ItemIndex;
  AddToBindList(DetailList.Items[DetailIndex],
    MasterList.Items[MasterIndex]);
  with OrderedDetailList do
    Objects[IndexOf(DetailList.Items[DetailIndex])] := TObject(True);
  DetailList.Items.Delete(DetailIndex);
  MasterList.Items.Delete(MasterIndex);
  ClearButton.Enabled := True;
  AddButton.Enabled := False;
end;

procedure TMYLDBLinkFields.ClearButtonClick(Sender: TObject);
var
  I: Integer;
  BindValue: string;
begin
  for I := 0 to BindList.Items.Count - 1 do
   begin
    BindValue := BindList.Items[I];
    DetailList.Items.Add(StripDetail(BindValue));
    MasterList.Items.Add(StripMaster(BindValue));
   end;
  BindList.Clear;
  ClearButton.Enabled := False;
  DeleteButton.Enabled := False;
  OrderFieldList(OrderedDetailList, DetailList.Items);
  DetailList.ItemIndex := -1;
  MasterList.Items.Assign(OrderedMasterList);
  for I := 0 to OrderedDetailList.Count - 1 do
    OrderedDetailList.Objects[I] := TObject(False);
  AddButton.Enabled := False;
end;

procedure TMYLDBLinkFields.DeleteButtonClick(Sender: TObject);
var
  I: Integer;
begin
  with BindList do
   begin
    for I := Items.Count - 1 downto 0 do
     begin
      if Selected[I] then
       begin
        DetailList.Items.Add(StripDetail(Items[I]));
        MasterList.Items.Add(StripMaster(Items[I]));
        with OrderedDetailList do
          Objects[IndexOf(StripDetail(Items[I]))] := TObject(False);
        Items.Delete(I);
       end;
     end;
    if (Items.Count > 0) then
      Selected[0] := True;
    DeleteButton.Enabled := Items.Count > 0;
    ClearButton.Enabled := Items.Count > 0;
    OrderFieldList(OrderedDetailList, DetailList.Items);
    DetailList.ItemIndex := -1;
    OrderFieldList(OrderedMasterList, MasterList.Items);
    MasterList.ItemIndex := -1;
    AddButton.Enabled := False;
   end;
end;

procedure TMYLDBLinkFields.BindListClick(Sender: TObject);
begin
  DeleteButton.Enabled := BindList.ItemIndex <> LB_ERR;
end;

procedure TMYLDBLinkFields.BitBtn1Click(Sender: TObject);
var
  Gap:          Boolean;
  I:            Integer;
  FirstIndex:   Integer;
begin
  FirstIndex := -1;
  MasterFieldList := '';
  IndexFieldList := '';
  FFullIndexName := '';
  if (DataSetProxy.IndexBased) then
   begin
    Gap := False;
    for I := 0 to OrderedDetailList.Count - 1  do
     begin
      if Boolean(OrderedDetailList.Objects[I]) then
       begin
        if Gap then
         begin
          MessageDlg(Format(ErrorLLinkDesigner,
            [OrderedDetailList[FirstIndex]]), mtError, [mbOK], 0);
          ModalResult := 0;
          DetailList.ItemIndex := DetailList.Items.IndexOf(OrderedDetailList[FirstIndex]);
          Exit;
         end;
       end
      else
       begin
        Gap := True;
        if (FirstIndex = -1) then
          FirstIndex := I;
       end;
     end;
    if (not Gap) then
      FFullIndexName := DataSetProxy.IndexName;
   end;
  with (BindList) do
   begin
    for I := 0 to Items.Count - 1 do
     begin
      MasterFieldList := Format('%s%s;', [MasterFieldList, StripMaster(Items[I])]);
      IndexFieldList := Format('%s%s;', [IndexFieldList, StripDetail(Items[I])]);
     end;
    if (MasterFieldList <> '') then
      SetLength(MasterFieldList, Length(MasterFieldList) - 1);
    if (IndexFieldList <> '') then
      SetLength(IndexFieldList, Length(IndexFieldList) - 1);
   end;
end;

procedure TMYLDBLinkFields.HelpClick(Sender: TObject);
begin
  Application.HelpContext(HelpContext);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费午夜影院| 国产麻豆精品95视频| 一区二区三区日韩欧美精品 | 国产精品麻豆视频| 久久视频一区二区| 久久久夜色精品亚洲| 久久婷婷一区二区三区| 日韩免费成人网| 精品国产凹凸成av人导航| 欧美成人精品福利| 精品国产髙清在线看国产毛片| 欧美成人午夜电影| 久久综合色综合88| 欧美激情一区二区三区四区| 国产精品免费丝袜| 亚洲欧美日韩精品久久久久| 亚洲图片欧美视频| 日本欧美一区二区三区乱码| 免费在线看成人av| 国产一区二区中文字幕| 国产精品一二三四五| 国产jizzjizz一区二区| 97精品国产97久久久久久久久久久久| 色婷婷久久综合| 欧美人妇做爰xxxⅹ性高电影| 91精品欧美久久久久久动漫 | 免费成人美女在线观看| 国产一区二区按摩在线观看| www.亚洲精品| 欧美日韩极品在线观看一区| 日韩女优制服丝袜电影| 国产午夜精品一区二区三区嫩草| 国产精品久久久久桃色tv| 亚洲综合激情网| 日韩影院在线观看| 国产精品一区二区三区乱码| 色婷婷综合激情| 欧美成人性战久久| 中文字幕一区二区三中文字幕| 亚洲成在线观看| 国产精品1024| 欧美中文一区二区三区| 精品成a人在线观看| 亚洲视频图片小说| 热久久久久久久| 成人高清免费观看| 欧美日韩的一区二区| 久久久久97国产精华液好用吗| 亚洲精品自拍动漫在线| 久久精品国产久精国产爱| 国产91露脸合集magnet | 最新国产精品久久精品| 天天做天天摸天天爽国产一区| 国产乱码精品一区二区三区忘忧草 | 风间由美中文字幕在线看视频国产欧美 | 韩国三级在线一区| 在线中文字幕一区二区| 精品国产精品网麻豆系列 | 国产成人久久精品77777最新版本| 91激情在线视频| 国产三级一区二区三区| 丝袜a∨在线一区二区三区不卡| 成人美女在线观看| 日韩午夜电影在线观看| 亚洲日本在线天堂| 国产毛片精品一区| 欧美精品18+| 亚洲免费伊人电影| 成人一二三区视频| 欧美一级国产精品| 亚洲最大成人综合| 波多野洁衣一区| 精品99999| 欧美aa在线视频| 欧美在线|欧美| 国产精品丝袜在线| 精品中文字幕一区二区小辣椒| 欧美午夜电影网| 亚洲欧洲综合另类在线| 国产a级毛片一区| 久久亚洲一区二区三区明星换脸| 天天影视色香欲综合网老头| 在线观看视频一区二区欧美日韩| 国产精品久久久久久妇女6080| 国产一区二区三区视频在线播放| 日韩欧美综合在线| 午夜久久久影院| 欧美中文字幕一区| 亚洲综合视频在线观看| 91丨porny丨中文| 中文字幕在线不卡| 成人午夜精品在线| 国产午夜精品久久久久久久| 国产美女一区二区三区| 久久夜色精品国产欧美乱极品| 国产主播一区二区三区| 精品久久久三级丝袜| 美女视频免费一区| 日韩一区二区精品| 免费观看30秒视频久久| 日韩欧美在线影院| 青青青爽久久午夜综合久久午夜| 91精品国产福利| 青青草国产精品亚洲专区无| 日韩欧美激情四射| 国内不卡的二区三区中文字幕| 久久综合网色—综合色88| 久久不见久久见免费视频7| 日韩三级.com| 国产精品中文欧美| 中文字幕欧美激情| av福利精品导航| 亚洲视频一区二区在线观看| 日本道在线观看一区二区| 一个色妞综合视频在线观看| 欧美色图片你懂的| 日日欢夜夜爽一区| 日韩午夜av一区| 国产成人鲁色资源国产91色综| 国产日韩精品视频一区| 99r精品视频| 亚洲综合色自拍一区| 91精品国产免费| 国产综合久久久久久鬼色| 中文字幕国产一区| 色欲综合视频天天天| 性欧美疯狂xxxxbbbb| 欧美成人午夜电影| eeuss影院一区二区三区| 亚洲免费在线看| 欧美一区二区三区在线电影| 国产成人免费高清| 亚洲综合色视频| 日韩精品专区在线| 99久久精品国产观看| 性感美女久久精品| 欧美mv和日韩mv国产网站| 风间由美一区二区三区在线观看| 亚洲精品你懂的| 91精品国产综合久久国产大片| 国产精品一区2区| 精品一区二区三区在线播放视频 | 蜜芽一区二区三区| 国产欧美一区二区在线观看| 91丨九色丨黑人外教| 日韩成人午夜精品| 国产精品免费视频一区| 日本韩国一区二区三区视频| 免费高清不卡av| 亚洲色大成网站www久久九九| 欧美日韩国产高清一区二区三区| 国产精品一区二区久久精品爱涩| 自拍偷拍国产精品| 欧美一区二区三区免费观看视频 | 欧美日韩电影在线播放| 成人午夜在线播放| 天天av天天翘天天综合网 | 亚洲狠狠爱一区二区三区| 国产日产欧美一区| 欧美日韩国产高清一区二区三区 | 亚洲成人7777| 中文字幕在线不卡一区 | 天天综合色天天综合| 国产精品视频一二| 欧美不卡123| 欧美在线三级电影| 成人av在线影院| 麻豆成人久久精品二区三区红 | 不卡的av网站| 久久国产精品免费| 亚洲国产sm捆绑调教视频| 国产日韩欧美麻豆| 欧美一区二区观看视频| 91在线观看污| 国产91在线观看| 精一区二区三区| 日本大胆欧美人术艺术动态 | 精品在线免费观看| 亚洲图片欧美视频| 亚洲色图丝袜美腿| 国产欧美一区二区精品婷婷| 日韩一级成人av| 欧美丝袜丝交足nylons图片| 波多野结衣在线一区| 国产毛片精品视频| 精品在线观看视频| 蜜臀久久99精品久久久久宅男 | 国产精品1区二区.| 国模少妇一区二区三区| 免费观看日韩电影| 日韩精彩视频在线观看| 亚洲色图在线视频| 国产精品国产三级国产普通话蜜臀 | 国产精品不卡在线观看| 久久精品日产第一区二区三区高清版 | 国产一区欧美一区| 麻豆久久一区二区| 日本不卡免费在线视频| 舔着乳尖日韩一区| 日韩高清不卡一区|