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

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

?? daabsolutedb.pas

?? This is End User Control Program
?? PAS
?? 第 1 頁 / 共 2 頁
字號:

{------------------------------------------------------------------------------}
{ TdaABSDataSet.GetActive }

function TdaABSDataSet.GetActive: Boolean;
begin
  Result := GetDataSet.Active
end; {function, GetActive}

{------------------------------------------------------------------------------}
{ TdaABSDataSet.SetActive }

procedure TdaABSDataSet.SetActive(Value: Boolean);
begin
  GetDataSet.Active := Value;
end; {procedure, SetActive}

{------------------------------------------------------------------------------}
{ TdaABSDataSet.GetDataSet }

function TdaABSDataSet.GetDataSet: TDataSet;
begin
  if (FDataSet = nil) then
    FDataSet := TABSTable.Create(Self);
  Result := FDataSet;
end; {procedure, GetDataSet}

{------------------------------------------------------------------------------}
{ TdaABSDataSet.SetDatabase }

procedure TdaABSDataSet.SetDatabase(aDatabase: TComponent);
begin
  inherited SetDatabase(aDatabase);
  {table cannot be active to set database property}
  if GetDataSet.Active then
    FDataSet.Active := False;
  FDatabase := TABSDatabase(aDatabase);
  if (FDatabase <> nil) then
    begin
      FDataSet.DatabaseName := FDatabase.DatabaseName;
      FDataSet.SessionName  := FDatabase.SessionName;
    end;
end; {procedure, SetDatabase}

{------------------------------------------------------------------------------}
{ TdaABSDataSet.SetDataName }

procedure TdaABSDataSet.SetDataName(const aDataName: String);
const
  lcDoubleQuote = #34;
var
  lsTableName: String;
begin
  inherited SetDataName(aDataName);
  {dataset cannot be active to set table name property}
  if GetDataset.Active then
    FDataSet.Active := False;
  {strip off any double quotes which may be added by the DataDictionary Builder}
  lsTableName := StringReplace(aDataName, lcDoubleQuote, '', [rfReplaceAll]);
  FDataSet.TableName := lsTableName;
end; {procedure, SetDataName}

{------------------------------------------------------------------------------}
{ TdaABSDataSet.BuildFieldList }

procedure TdaABSDataSet.BuildFieldList;
var
  liIndex: Integer;
  lABSField: TField;
  lField: TppField;
begin
  inherited BuildFieldList;

  {set dataset to active}
  if not(GetDataSet.Active) then
    try
      FDataSet.Active := True;
    except
      on E:Exception do
        Exit;
    end;

  {create TppField objects for each field in the table}
  for liIndex := 0 to FDataSet.FieldCount - 1 do
    begin
      lABSField := FDataSet.Fields[liIndex];
      lField := TppField.Create(nil);
      lField.TableName := FDataSet.TableName;
      lField.FieldName := lABSField.FieldName;
      lField.FieldAlias := lABSField.DisplayLabel;
      lField.FieldLength := lABSField.Size;
      lField.DataType := ppConvertFieldType(lABSField.DataType);
      lField.DisplayWidth := lABSField.DisplayWidth;
      AddField(lField);
    end;
end; {function, BuildFieldList}

{------------------------------------------------------------------------------}
{ TdaABSDataSet.GetFieldNamesForSQL }

procedure TdaABSDataSet.GetFieldNamesForSQL(aList: TStrings; aSQL: TStrings);
var lQuery: TABSQuery;
begin

  if (FDatabase = nil) then
    raise EDataError.Create('TdaABSDataSet.GetFieldNamesForSQL: Database property is nil');

  aList.Clear;

  {create a temporary ABS query}
  lQuery := TABSQuery.Create(Self);

  {set the database and SQL properties}
  lQuery.DatabaseName := FDatabase.DatabaseName;
  lQuery.SessionName := FDatabase.SessionName;
  lQuery.SQL := aSQL;
  lQuery.RequestLive := false;  //Added by GDW to improve query speed.

  {get the field names}
  lQuery.GetFieldNames(aList);

  lQuery.Free;
end; {procedure, GetFieldNamesForSQL}

{------------------------------------------------------------------------------}
{ TdaABSDataSet.GetFieldsForSQL }

procedure TdaABSDataSet.GetFieldsForSQL(aList: TList; aSQL: TStrings);
var
  lQuery: TABSQuery;
  lABSField: TField;
  lField: TppField;
  liIndex: Integer;
begin

  if (FDatabase = nil) then
    raise EDataError.Create('TdaABSDataSet.GetFieldsForSQL: Database property is nil');

  aList.Clear;

  {create a temporary ABS query}
  lQuery := TABSQuery.Create(Self);

  try

    {assign database and SQL properties}
    lQuery.DatabaseName := FDatabase.DatabaseName;
    lQuery.SessionName := FDatabase.SessionName;
    lQuery.SQL := aSQL;
    lQuery.RequestLive := True; //Added by GDW to improve query speed.

    lQuery.Active := True;

    {create a TppField object for each field in the query}
    for liIndex := 0 to lQuery.FieldCount - 1 do
      begin
        lABSField := lQuery.Fields[liIndex];

        lField := TppField.Create(nil);

        lField.FieldName := lABSField.FieldName;
        lField.FieldAlias := lABSField.DisplayLabel;
        lField.FieldLength := lABSField.Size;
        lField.DataType := ppConvertFieldType(lABSField.DataType);
        lField.DisplayWidth := lABSField.DisplayWidth;

        aList.Add(lField);
      end;

  finally
    lQuery.Free;
  end;

end; {procedure, GetFieldsForSQL}


{******************************************************************************
 *
 **  A B S   Q U E R Y   D A T A V I E W
 *
{******************************************************************************}

{------------------------------------------------------------------------------}
{ TdaABsQueryDataView.Create }

constructor TdaABSQueryDataView.Create(aOwner: TComponent);
begin
  inherited Create(aOwner);
  {notes: 1. must use ChildQuery, ChildDataSource, ChildPipeline etc.
          2. use Self as owner for Query, DataSource etc.
          3. do NOT assign a Name }

  FQuery := TdaChildABSQuery.Create(Self);

  FDataSource := TppChildDataSource.Create(Self);
  FDataSource.DataSet := FQuery;
end; {constructor, Create}

{------------------------------------------------------------------------------}
{ TdaABSQueryDataView.Destroy }

destructor TdaABSQueryDataView.Destroy;
begin
  FDataSource.Free;
  FQuery.Free;
  inherited Destroy;
end; {destructor, Destroy}

{------------------------------------------------------------------------------}
{ TdaABSQueryDataView.SessionClass }

class function TdaABSQueryDataView.SessionClass: TClass;
begin
  Result := TdaABSSession;
end; {class function, SessionClass}

{------------------------------------------------------------------------------}
{ TdaABSQueryDataView.PreviewFormClass }

class function TdaABSQueryDataView.PreviewFormClass: TFormClass;
begin
  Result := TFormClass(GetClass('TdaPreviewDataDialog'));
end; {class function, PreviewFormClass}

{------------------------------------------------------------------------------}
{ TdaABSQueryDataView.ConnectPipelinesToData }

procedure TdaABSQueryDataView.ConnectPipelinesToData;
begin
  if DataPipelineCount = 0 then Exit;
  {need to reconnect here}
  TppDBPipeline(DataPipelines[0]).DataSource := FDataSource;
end; {procedure, ConnectPipelinesToData}

{------------------------------------------------------------------------------}
{ TdaABSQueryDataView.Init }

procedure TdaABSQueryDataView.Init;
var lDataPipeline: TppChildDBPipeline;
begin
  inherited Init;
  if DataPipelineCount > 0 then Exit;
  {note: DataView's owner must own the DataPipeline }
  lDataPipeline := TppChildDBPipeline(ppComponentCreate(Self, TppChildDBPipeline));
  lDataPipeline.DataSource := FDataSource;
  lDataPipeline.AutoCreateFields := False;
  {add DataPipeline to the dataview }
  lDataPipeline.DataView := Self;
end; {procedure, Init}

{------------------------------------------------------------------------------}
{ TdaABSQueryDataView.SQLChanged }

procedure TdaABSQueryDataView.SQLChanged;
var
  lDatabase: TComponent;
begin

  if FQuery.Active then
    FQuery.Close;

  lDatabase := Session.GetDatabaseForName(SQL.DatabaseName);

  if (lDatabase = nil) then
    raise EDataError('TdaABSQueryDataView.SQLChanged: No ABSDatabase object found, ' + SQL.DatabaseName);

  FQuery.DatabaseName := TABSDatabase(lDatabase).DatabaseName;
  FQuery.SessionName := TABSDatabase(lDatabase).SessionName;

  FQuery.SQL := SQL.MagicSQLText;

end; {procedure, SQLChanged}

{******************************************************************************
 *
 ** R E G I S T E R
 *
{******************************************************************************}

procedure Register;
begin

  {ABS data access components}
  RegisterNoIcon([TdaChildABSQuery, TdaChildABSTable]);

  {ABS dataviews}
  RegisterNoIcon([TdaABSQueryDataView]);

end;

{------------------------------------------------------------------------------}

initialization

  FABSDatabase := nil;

  {register the ABS descendant classes}
  RegisterClasses([TdaChildABSQuery, TdaChildABSTable]);

  {register DADE descendant classes}
  daRegisterSession(TdaABSSession);
  daRegisterDataSet(TdaABSDataSet);
  daRegisterDataView(TdaABSQueryDataView);

finalization

  FABSDatabase.Free;
  FABSDatabase := nil;

  {unregister the ABS descendant classes}
  UnRegisterClasses([TdaChildABSQuery, TdaChildABSTable]);

  {unregister DADE descendant the classes}
  daUnRegisterSession(TdaABSSession);
  daUnRegisterDataSet(TdaABSDataSet);
  daUnRegisterDataView(TdaABSQueryDataView);

end.


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产精品网麻豆系列| 亚洲成av人综合在线观看| 精品亚洲成a人在线观看| 日韩一区二区三区免费观看| 美女视频黄 久久| 欧美成人激情免费网| 国内精品久久久久影院薰衣草| 精品裸体舞一区二区三区| 国产曰批免费观看久久久| 久久噜噜亚洲综合| 成人精品免费视频| 亚洲欧美日韩综合aⅴ视频| 欧美久久高跟鞋激| 肉丝袜脚交视频一区二区| 日韩一区二区三区免费看| 国产一区二区免费视频| 国产精品国产三级国产专播品爱网| 91免费视频大全| 亚洲成人在线网站| 精品国产在天天线2019| 盗摄精品av一区二区三区| 亚洲精品一卡二卡| 日韩视频免费观看高清完整版 | 国产剧情一区二区三区| 国产欧美日韩精品在线| 一本到一区二区三区| 日韩主播视频在线| 国产欧美日韩亚州综合| 在线观看免费成人| 久久99精品国产.久久久久久| 中文字幕欧美一区| 在线不卡免费欧美| 成人国产精品免费观看| 午夜天堂影视香蕉久久| 久久伊人中文字幕| 欧美性大战久久久久久久蜜臀| 久久不见久久见免费视频1| 国产精品毛片大码女人| 777午夜精品免费视频| zzijzzij亚洲日本少妇熟睡| 奇米综合一区二区三区精品视频| 国产精品久久午夜夜伦鲁鲁| 欧美一区二区私人影院日本| 99久久99久久综合| 久久电影网电视剧免费观看| 一区二区久久久久久| 久久久久久一二三区| 欧美高清视频www夜色资源网| 国产suv精品一区二区6| 毛片不卡一区二区| 香蕉成人啪国产精品视频综合网 | 波多野结衣在线一区| 日本不卡视频一二三区| 午夜精品久久久久久久久久| 日本一区二区三区免费乱视频| 欧美肥妇free| 欧美日韩在线免费视频| 99精品一区二区三区| 国产福利一区二区三区视频在线| 日韩电影在线免费观看| 亚洲成在人线免费| 亚洲精品久久7777| 国产精品亲子伦对白| 久久久久国产精品麻豆ai换脸 | 欧美三区在线视频| 色欧美片视频在线观看| 99在线视频精品| 粉嫩久久99精品久久久久久夜| 韩国午夜理伦三级不卡影院| 日本不卡一区二区三区高清视频| 亚洲国产综合视频在线观看| 亚洲蜜臀av乱码久久精品 | 亚洲激情一二三区| 中文字幕在线播放不卡一区| 中文字幕一区二区日韩精品绯色| 久久久国产精品麻豆| 久久天堂av综合合色蜜桃网| 久久免费美女视频| 国产亚洲一区二区三区| 精品国产百合女同互慰| 欧美成人精品3d动漫h| 日韩欧美资源站| 日韩视频免费观看高清在线视频| 日韩一级精品视频在线观看| 精品少妇一区二区| 国产亚洲精品超碰| 亚洲天堂网中文字| 亚洲一区欧美一区| 日韩综合在线视频| 国产美女精品在线| 成人手机在线视频| 99这里只有精品| 欧美色手机在线观看| 7777精品伊人久久久大香线蕉超级流畅| 欧美日韩一区二区三区在线看| 欧美制服丝袜第一页| 欧美一区三区二区| 国产亚洲欧美在线| 亚洲欧美偷拍三级| 婷婷综合另类小说色区| 精品一区二区三区视频在线观看| 日韩影院免费视频| 国产毛片精品一区| 亚洲国产视频在线| 天使萌一区二区三区免费观看| 全国精品久久少妇| 国产福利精品导航| 日本韩国欧美在线| 欧美日韩精品专区| 亚洲精品一区二区精华| 中文久久乱码一区二区| 亚洲影视在线播放| 国产美女精品人人做人人爽| 日本精品免费观看高清观看| 欧美不卡123| 国产精品久久久久国产精品日日 | 欧美自拍偷拍一区| 日韩色在线观看| 国产精品人成在线观看免费| 亚洲一区二区三区四区五区黄 | www.亚洲精品| 欧美午夜不卡视频| 久久精品视频网| 亚洲国产精品麻豆| 不卡一区二区在线| 日韩一区二区在线看| 日韩一区欧美小说| 蜜臀va亚洲va欧美va天堂| 大尺度一区二区| 日韩一区二区三区在线观看| 综合久久给合久久狠狠狠97色| 日本不卡高清视频| 91免费视频网| 日本一二三四高清不卡| 爽爽淫人综合网网站| 国产ts人妖一区二区| 日韩一区二区免费高清| 亚洲精品精品亚洲| 成人免费看的视频| 久久久国产午夜精品| 日本欧美一区二区| 欧美在线免费观看视频| 中文文精品字幕一区二区| 亚洲超碰精品一区二区| 久久亚洲精品国产精品紫薇| 午夜欧美在线一二页| 一本在线高清不卡dvd| 国产精品毛片久久久久久久| 国产一区二区精品久久91| 7777精品伊人久久久大香线蕉最新版| 日韩美女视频一区二区| 国产99久久精品| 欧美精品一区二区不卡| 蜜桃久久精品一区二区| 欧美绝品在线观看成人午夜影视| 亚洲品质自拍视频| 91老师片黄在线观看| 国产精品青草综合久久久久99| 国产呦萝稀缺另类资源| 欧美成人aa大片| 精一区二区三区| 欧美不卡视频一区| 精品亚洲porn| 久久婷婷国产综合精品青草| 国产原创一区二区三区| 欧美精品一区二区三区蜜桃视频| 另类欧美日韩国产在线| 欧美一区二区视频观看视频| 五月天婷婷综合| 91麻豆精品国产自产在线观看一区| 亚洲中国最大av网站| 欧美色精品天天在线观看视频| 亚洲国产精品久久人人爱| 欧美肥胖老妇做爰| 久久不见久久见免费视频7| 麻豆传媒一区二区三区| 亚洲国产综合在线| 日韩理论片网站| 久久人人超碰精品| 国产精品久久久久久久浪潮网站| 亚洲精品美国一| 欧美视频中文一区二区三区在线观看| 亚洲靠逼com| 欧美日韩不卡视频| 免费在线观看一区| 久久精品视频在线看| www.欧美精品一二区| 一区二区欧美视频| 91精品啪在线观看国产60岁| 韩国一区二区在线观看| 中文字幕成人av| 欧美亚洲综合网| 欧美96一区二区免费视频| 精品国精品国产| av不卡一区二区三区| 日日夜夜精品视频天天综合网| 欧美mv日韩mv国产网站app| 国产成人8x视频一区二区| 亚洲三级电影全部在线观看高清| 在线观看日韩av先锋影音电影院|