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

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

?? dbfunctions.pas

?? 萬能數據庫查看程序 萬能數據庫查看程序
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit DBFunctions;

interface

uses  Dialogs,StrUtils,Windows, SysUtils, Variants, Classes, Graphics, Controls, Forms,Grids, DBGrids,DBTables,DBClient,DB, ADODB, Math,ComObj,ActiveX;


//公共變量過程聲明
procedure DBGrid1TitleSort(Column:TColumn);  //讓DBGrid組件的標題能進行對DBGrid內的數據對行排序
function  DBGridRecordSize(mColumn:TColumn):Boolean;
function  DBGridAutoSize(mDBGrid:TDBGrid;mOffset:Integer=8):Boolean;//讓DBGrid1控件能自動調節字段的寬度
function  DBGridToHtml(mDBGrid:TDBGrid;mStrings:TStrings;mCaption:TCaption=''):Boolean; //把DBGrid組件內的數據導出到HTML文件
function  DBGridToTxt(mDBGrid:TDBGrid;mStrings:TStrings;symbol:string=' ';mCaption:TCaption=''):Boolean; //把DBGrid組件內的數據內容導出到TXT文本文件


implementation


//////////////////////讓DBGrid組件的標題能進行對DBGrid內的數據對行排序////////////
  procedure DBGrid1TitleSort(Column:TColumn);
    var
       s,cFieldName:string;
       SqlStr,TempStr: string;
       i:integer;
       DataSet:TDataSet;
     procedure setTitle;
       var ii:integer;cStr:string;c:TColumn;
       begin
         for ii:=0 to TDBGrid(Column.Grid).Columns.Count-1 do
           begin
             c:=TDBGrid(Column.Grid).Columns[ii];
             cStr:=c.Title.Caption;
             if (pos('▲',cStr)=1) or (pos('▼',cStr)=1) then begin Delete(cStr,1,2); c.Title.Caption:=cStr; end;
           end;
       end;
    begin
      setTitle;
      DataSet:=Column.Grid.DataSource.DataSet;
      if Column.Field.FieldKind=fkLookup then cFieldName:=Column.Field.KeyFields
        else if Column.Field.FieldKind=fkCalculated then cFieldName:=Column.Field.KeyFields
        else cFieldName:=Column.FieldName;
      ////=================================AdoDataSet=====================
      if DataSet is TCustomADODataSet then
      begin
        s:=TCustomADODataSet(DataSet).Sort;
        if s='' then
          begin s:=cFieldName; Column.Title.Caption:='▲'+Column.Title.Caption;
          end else
          begin
            if Pos(cFieldName,s)<>0 then
              begin
                i:=Pos('DESC',s);
                if i<=0 then
                  begin s:=s+' DESC'; Column.Title.Caption:='▼'+Column.Title.Caption;
                  end else
                  begin Column.Title.Caption:='▲'+Column.Title.Caption; Delete(s,i,4); end;
              end else
              begin s:=cFieldName; Column.Title.Caption:='▲'+Column.Title.Caption;  end;
          end;
        TCustomADODataSet(DataSet).Sort:=s;  /////=================================AdoDataSet==================
      end else if (DataSet is TQuery) or (DataSet is TTable) then
      begin
      while Pos(cFieldName,';')<>0 do cFieldName:=copy(cFieldName,1,Pos(cFieldName,';')-1)+ ','+ copy(cFieldName,Pos(cFieldName,';')+1,100);
      with TQuery(TDBGrid(Column.Grid).DataSource.DataSet) do
        begin  ////=================================BDEQuery=====================
          SqlStr:=Trim(UpperCase(Sql.Text));
          if RightStr(SqlStr,1)=';' then begin SqlStr:=LeftStr(SqlStr,length(Sqlstr)-1);  end;
          //if pos(cFieldName,SqlStr)=0 then exit;
          if (pos('ORDER',SqlStr)=0) or (pos('ASC',SqlStr)=0) then begin TempStr:=' Order By '+cFieldName+' Asc';    end
             else begin   TempStr:= ' Order By '+cFieldName+' Desc';      end;
          if pos('ORDER',SqlStr)<>0 then SqlStr:=Copy(SqlStr,1,pos('ORDER',SqlStr)-1);
          SqlStr:=SqlStr+TempStr+';';
          Active:=False;
          Sql.Clear;
          Sql.Text:=SqlStr;
          Prepare;
          Open;
        end;   ////=================================BDEQuery=====================
      end else if DataSet is TClientDataSet then  /////////============================Clientdataset==================
      begin
          if TClientDataSet(DataSet).indexfieldnames<>'' then
          begin
            i:=TClientDataSet(DataSet).IndexDefs.IndexOf('i'+Column.FieldName);
            if i=-1 then
            begin
              with TClientDataSet(DataSet).IndexDefs.AddIndexDef do
              begin
                Name:='i'+Column.FieldName;
                Fields:=Column.FieldName;
                DescFields:=Column.FieldName;
              end;
            end;
            TClientDataSet(DataSet).IndexFieldNames:='';
            TClientDataSet(DataSet).IndexName:='i'+Column.FieldName;
            Column.Title.Caption:='▼'+Column.Title.Caption;
          end else
          begin
            TClientDataSet(DataSet).IndexName:='';
            TClientDataSet(DataSet).IndexFieldNames:=column.fieldname;
            Column.Title.Caption:='▲'+Column.Title.Caption;
          end; /////////============================Clientdataset======================
      end;
  end; //////////////////////讓DBGrid組件的標題能進行對DBGrid內的數據對行排序////////////


/////////////讓DBGrid1控件能自動調節字段的寬度(數據網格自動適應寬度)
//用法:用DBGrid的DBGrid1DrawColumnCell事件調用DBGridRecordSize(Column); 然后調用DBGridAutoSize(DBGrid1)即可
  function  DBGridRecordSize(mColumn:TColumn):Boolean;      //uses Math;
    begin /// 返回DBGrid控件字段寬度的過程
      Result:=False;
      if not Assigned(mColumn.Field) then Exit;
      mColumn.Field.Tag:=Max(mColumn.Field.Tag,
      TDBGrid(mColumn.Grid).Canvas.TextWidth(mColumn.Field.DisplayText));
      Result:=True;
    end; // DBGridRecordSize
  function  DBGridAutoSize(mDBGrid:TDBGrid;mOffset:Integer=8):Boolean;
  var //調整數據網格自動適應寬度     mOffset為讓自動放松的百分比
    I:Integer;
    begin
      Result:=False;
      if not Assigned(mDBGrid) then Exit;
      if not Assigned(mDBGrid.DataSource) then Exit;
      if not Assigned(mDBGrid.DataSource.DataSet) then Exit;
      if not mDBGrid.DataSource.DataSet.Active then Exit;
      for I:=0 to mDBGrid.Columns.Count - 1 do begin
        if not mDBGrid.Columns[I].Visible then Continue;
          if Assigned(mDBGrid.Columns[I].Field) then mDBGrid.Columns[I].Width:=Max(mDBGrid.Columns[I].Field.Tag,
          mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption)) + mOffset
          else mDBGrid.Columns[I].Width:=mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption) + mOffset;
      mDBGrid.Refresh;
    end;
    Result:=True;
  end; /////////////讓DBGrid1控件能自動調節字段的寬度(數據網格自動適應寬度)//////////////////


///////////////////////把DBGrid組件內的數據內容導出到HTML網頁文件//////////////////////////////
//用法:DBGridToHtml(DBGrid1,Date,Table);DBGrid1為DBGrid控件,Date為一個TSrings的變量,Table為HTML文件的標題。導出到文件:Date.SaveToFile(FileName);  FileName為要導出文件的路徑及文件名
  function  ColorToHtml(mColor:TColor):string;
    begin
      Application.ProcessMessages;
      mColor:=ColorToRGB(mColor);
      Result:=Format('#%.2x%.2x%.2x',[GetRValue(mColor), GetGValue(mColor), GetBValue(mColor)]);
    end; { ColorToHtml }
  function  StrToHtml(mStr:string; mFont:TFont =nil):string;
    var
      vLeft, vRight:string;
    begin
      Application.ProcessMessages;
      Result:=mStr;
      Result:=StringReplace(Result, '&', '&AMP;', [rfReplaceAll]);
      Result:=StringReplace(Result, '<', '&LT;', [rfReplaceAll]);
      Result:=StringReplace(Result, '>', '&GT;', [rfReplaceAll]);
      if Result ='' then Result:='-';
      if not Assigned(mFont) then Exit;
      vLeft:=Format('<FONT FACE="%s" COLOR="%s">',[mFont.Name, ColorToHtml(mFont.Color)]);vRight:='</FONT>';
      if fsBold in mFont.Style then begin
      vLeft:=vLeft + '<B>';
      vRight:='</B>' + vRight;
      end;
      if fsItalic in mFont.Style then begin
      vLeft:=vLeft + '<I>';
      vRight:='</I>' + vRight;
      end;
      if fsUnderline in mFont.Style then begin
      vLeft:=vLeft + '<U>';
      vRight:='</U>' + vRight;
      end;
      if fsStrikeOut in mFont.Style then begin
      vLeft:=vLeft + '<S>';
      vRight:='</S>' + vRight;
      end;
      Result:=vLeft + Result + vRight;
    end; { StrToHtml }
  function  DBGridToHtml(mDBGrid:TDBGrid;mStrings:TStrings;mCaption:TCaption=''):Boolean;
    const
      cAlignText:array[TAlignment] of string =('LEFT', 'RIGHT', 'CENTER');
    var
      vColFormat:string;
      vColText:string;
      vAllWidth:Integer;
      vWidths:array of Integer;
      vBookmark:string;
      I, J:Integer;
    begin
      Application.ProcessMessages;
      Result:=False;
      if not Assigned(mStrings) then Exit;
      if not Assigned(mDBGrid) then Exit;
      if not Assigned(mDBGrid.DataSource) then Exit;
      if not Assigned(mDBGrid.DataSource.DataSet) then Exit;
      if not mDBGrid.DataSource.DataSet.Active then Exit;
      vBookmark:=mDBGrid.DataSource.DataSet.Bookmark;
      mDBGrid.DataSource.DataSet.DisableControls;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级片在线观看| 国产自产高清不卡| 色94色欧美sute亚洲线路一久| 国产亚洲综合在线| 成人91在线观看| 日韩码欧中文字| 欧美日韩视频在线观看一区二区三区 | 国产三级精品在线| 国产91对白在线观看九色| 精品一区在线看| 精品国产91乱码一区二区三区 | 欧美一区二区在线播放| 麻豆专区一区二区三区四区五区| 久久久久99精品一区| av在线不卡电影| 亚洲成人免费在线| 26uuu色噜噜精品一区二区| 国产福利一区二区三区视频在线| 亚洲美女屁股眼交3| 88在线观看91蜜桃国自产| 国产毛片精品视频| 亚洲精品视频在线观看免费| 日韩免费电影网站| 99国内精品久久| 美女一区二区久久| 综合在线观看色| 日韩丝袜情趣美女图片| 成人久久18免费网站麻豆| 亚洲成年人网站在线观看| 久久精品夜夜夜夜久久| 欧美系列一区二区| 国产91色综合久久免费分享| 亚洲aⅴ怡春院| 国产精品剧情在线亚洲| 欧美一区二区性放荡片| 91丨九色丨黑人外教| 久久精品久久久精品美女| 亚洲日本免费电影| 欧美精品一区二区三区高清aⅴ| 色国产精品一区在线观看| 国产一区二区在线观看免费| 亚洲一区二区美女| 1024成人网色www| 久久一二三国产| 欧美日韩视频第一区| 不卡电影一区二区三区| 激情文学综合网| 午夜一区二区三区视频| 亚洲欧美色综合| 欧美国产禁国产网站cc| 日韩欧美中文一区二区| 欧美在线观看禁18| 99re这里只有精品视频首页| 国产精品自拍三区| 蜜臀久久99精品久久久久宅男 | 蜜臀精品一区二区三区在线观看| 一区二区三区在线观看欧美| 国产精品久久久久久久久免费相片 | 亚洲午夜视频在线| 国产精品视频在线看| 精品少妇一区二区三区在线播放| 欧美日韩在线不卡| 欧美中文字幕亚洲一区二区va在线| 国产成人亚洲精品青草天美| 久久成人综合网| 另类小说色综合网站| 美女一区二区三区| 日本不卡的三区四区五区| 午夜影视日本亚洲欧洲精品| 亚洲国产日韩一区二区| 一区二区三区在线观看欧美| 亚洲精品视频在线看| 亚洲人成网站色在线观看 | ㊣最新国产の精品bt伙计久久| 久久色在线观看| 精品国产一区二区三区不卡 | 精品国产免费人成电影在线观看四季| 欧美日韩一二区| 欧美日韩久久一区二区| 在线视频一区二区三| 欧美性一级生活| 欧美高清hd18日本| 日韩一区二区三区视频在线| 69久久99精品久久久久婷婷| 91精品国产综合久久久久久久| 日韩一区二区视频| 26uuu亚洲综合色| 国产日本欧洲亚洲| 中文字幕欧美一区| 亚洲午夜免费视频| 美女www一区二区| 国产一区二区三区免费看| 国产精品中文欧美| 99国产精品视频免费观看| 一本色道久久综合亚洲91| 欧美午夜精品久久久| 欧美军同video69gay| 日韩精品一区二区三区中文不卡 | 国产日韩欧美a| 一区二区三区在线播放| 日本aⅴ免费视频一区二区三区| 激情综合五月天| 99精品1区2区| 日韩一区二区在线免费观看| 久久精品一区四区| 一区二区三区在线视频播放 | 一区二区三区四区国产精品| 肉肉av福利一精品导航| 国产乱一区二区| 欧美在线免费视屏| 精品av久久707| 国产成人精品免费一区二区| 波多野结衣欧美| 欧美理论片在线| 国产精品入口麻豆原神| 亚洲成人手机在线| 国产成都精品91一区二区三| 欧美三日本三级三级在线播放| 久久影院午夜片一区| 亚洲一区二区三区视频在线| 极品瑜伽女神91| 欧美日韩精品是欧美日韩精品| 久久久久久一二三区| 亚洲制服丝袜av| 成人激情午夜影院| 欧美一区二区三区影视| 亚洲天堂精品在线观看| 久久综合综合久久综合| 欧美性极品少妇| 中文字幕精品综合| 九九在线精品视频| 欧美特级限制片免费在线观看| 欧美韩日一区二区三区| 日日噜噜夜夜狠狠视频欧美人| 成人av电影免费在线播放| 欧美成人一区二区三区片免费| 亚洲精品一二三四区| 国产·精品毛片| 日韩一区二区三| 亚洲成av人片在线观看无码| 成人动漫在线一区| 欧美精品一区二区久久久| 亚洲图片欧美一区| 91色|porny| 国产精品网站在线观看| 精品在线免费视频| 7777精品伊人久久久大香线蕉经典版下载 | 99久久99久久精品国产片果冻| 精品嫩草影院久久| 日本vs亚洲vs韩国一区三区二区| 在线观看区一区二| 亚洲色图另类专区| www.一区二区| 国产精品久久夜| 成人性生交大片免费看在线播放| 精品国产乱码91久久久久久网站| 日韩电影一区二区三区四区| 日本乱码高清不卡字幕| 亚洲女与黑人做爰| 在线视频欧美区| 亚洲激情综合网| 91视频你懂的| 亚洲视频在线观看三级| 99久久777色| 亚洲精品国产精品乱码不99| 色综合色综合色综合色综合色综合| 国产精品视频麻豆| av成人动漫在线观看| 国产精品福利一区二区| 91视频在线看| 亚洲一卡二卡三卡四卡五卡| 在线观看视频一区二区| 色综合天天性综合| 亚洲欧美日韩综合aⅴ视频| 欧美在线短视频| 五月天欧美精品| 91精品国产欧美一区二区18| 秋霞成人午夜伦在线观看| 精品国产一区二区亚洲人成毛片 | 久久精品国产77777蜜臀| 欧美mv和日韩mv的网站| 国产成人福利片| 国产精品大尺度| 欧美亚洲一区二区在线| 日日噜噜夜夜狠狠视频欧美人| 精品久久久久久综合日本欧美| 国产真实乱对白精彩久久| 国产午夜三级一区二区三| 99麻豆久久久国产精品免费优播| 一区二区高清视频在线观看| 91精品国产福利在线观看| 国产乱妇无码大片在线观看| 自拍视频在线观看一区二区| 欧美图片一区二区三区| 精品一区二区影视| 日韩美女精品在线| 日韩欧美中文字幕公布| 99免费精品视频| 男男成人高潮片免费网站| 国产精品入口麻豆九色|