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

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

?? dbfunctions.pas

?? 萬能數(shù)據(jù)庫查看程序 萬能數(shù)據(jù)庫查看程序
?? PAS
?? 第 1 頁 / 共 2 頁
字號(hào):
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組件的標(biāo)題能進(jìn)行對(duì)DBGrid內(nèi)的數(shù)據(jù)對(duì)行排序
function  DBGridRecordSize(mColumn:TColumn):Boolean;
function  DBGridAutoSize(mDBGrid:TDBGrid;mOffset:Integer=8):Boolean;//讓DBGrid1控件能自動(dòng)調(diào)節(jié)字段的寬度
function  DBGridToHtml(mDBGrid:TDBGrid;mStrings:TStrings;mCaption:TCaption=''):Boolean; //把DBGrid組件內(nèi)的數(shù)據(jù)導(dǎo)出到HTML文件
function  DBGridToTxt(mDBGrid:TDBGrid;mStrings:TStrings;symbol:string=' ';mCaption:TCaption=''):Boolean; //把DBGrid組件內(nèi)的數(shù)據(jù)內(nèi)容導(dǎo)出到TXT文本文件


implementation


//////////////////////讓DBGrid組件的標(biāo)題能進(jìn)行對(duì)DBGrid內(nèi)的數(shù)據(jù)對(duì)行排序////////////
  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組件的標(biāo)題能進(jìn)行對(duì)DBGrid內(nèi)的數(shù)據(jù)對(duì)行排序////////////


/////////////讓DBGrid1控件能自動(dòng)調(diào)節(jié)字段的寬度(數(shù)據(jù)網(wǎng)格自動(dòng)適應(yīng)寬度)
//用法:用DBGrid的DBGrid1DrawColumnCell事件調(diào)用DBGridRecordSize(Column); 然后調(diào)用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 //調(diào)整數(shù)據(jù)網(wǎng)格自動(dòng)適應(yīng)寬度     mOffset為讓自動(dòng)放松的百分比
    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控件能自動(dòng)調(diào)節(jié)字段的寬度(數(shù)據(jù)網(wǎng)格自動(dòng)適應(yīng)寬度)//////////////////


///////////////////////把DBGrid組件內(nèi)的數(shù)據(jù)內(nèi)容導(dǎo)出到HTML網(wǎng)頁文件//////////////////////////////
//用法:DBGridToHtml(DBGrid1,Date,Table);DBGrid1為DBGrid控件,Date為一個(gè)TSrings的變量,Table為HTML文件的標(biāo)題。導(dǎo)出到文件:Date.SaveToFile(FileName);  FileName為要導(dǎo)出文件的路徑及文件名
  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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区国产| 午夜精品福利一区二区三区蜜桃| 欧美日韩国产综合久久| 丰满放荡岳乱妇91ww| 久久国产精品99精品国产| 亚洲一区二区欧美日韩 | 蜜臀久久99精品久久久久久9| 成人免费在线视频| 国产欧美一区二区三区鸳鸯浴 | 欧美一级片在线观看| 欧美中文字幕不卡| 91在线视频官网| 久久精品国产99国产| 亚洲不卡一区二区三区| 亚洲永久免费av| 亚洲国产精品t66y| 久久精品夜夜夜夜久久| 色噜噜偷拍精品综合在线| 亚洲电影欧美电影有声小说| 亚洲免费观看高清完整版在线观看熊 | 三级不卡在线观看| 视频一区二区中文字幕| 日韩成人免费看| 欧美aa在线视频| 久久99九九99精品| 久久国产三级精品| 国产一区二区三区电影在线观看| 玖玖九九国产精品| 老色鬼精品视频在线观看播放| 丝袜国产日韩另类美女| 亚洲精品国产视频| 亚洲va天堂va国产va久| 天天色天天操综合| 日韩不卡一区二区三区| 极品少妇一区二区| 国产真实乱子伦精品视频| 国产91对白在线观看九色| av午夜一区麻豆| 色香蕉成人二区免费| 欧美性色aⅴ视频一区日韩精品| 欧美日本一道本| 欧美一级理论片| 国产午夜精品一区二区| 中文字幕一区二| 亚洲成av人在线观看| 老司机午夜精品| 成人伦理片在线| 欧美亚洲动漫另类| 精品国产一区久久| 国产精品免费视频观看| 亚洲国产成人av| 精品一区二区三区av| 97久久超碰国产精品| 欧美剧情片在线观看| 精品动漫一区二区三区在线观看| 国产欧美在线观看一区| 一区二区三区四区不卡在线 | 欧美天堂一区二区三区| 91精品国产欧美一区二区成人 | 欧美不卡一区二区三区四区| 国产三级久久久| 夜夜嗨av一区二区三区中文字幕 | 日韩1区2区3区| 国产成人精品综合在线观看| 在线区一区二视频| 欧美成人r级一区二区三区| 一区免费观看视频| 奇米影视7777精品一区二区| 不卡视频在线观看| 91精品国产色综合久久ai换脸| 国产欧美精品一区二区三区四区| 一二三四区精品视频| 久久99久久久欧美国产| jizz一区二区| 精品国产伦一区二区三区观看体验 | 欧洲中文字幕精品| 国产午夜三级一区二区三| 亚洲无人区一区| 国产福利不卡视频| 91精品国产综合久久久蜜臀图片| 国产精品久线在线观看| 奇米一区二区三区av| 色综合咪咪久久| 国产拍揄自揄精品视频麻豆| 丝袜美腿亚洲色图| 91污片在线观看| 久久亚洲春色中文字幕久久久| 亚洲一二三区在线观看| 成人午夜又粗又硬又大| 精品捆绑美女sm三区| 亚洲成人av资源| av在线这里只有精品| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧美专区亚洲专区| 国产精品国产三级国产三级人妇| 久久福利资源站| 欧美调教femdomvk| 亚洲色图都市小说| 国产精品一区二区果冻传媒| 欧美一区二区免费视频| 亚洲靠逼com| 成人国产精品视频| 日本一区二区视频在线观看| 久久91精品久久久久久秒播| 欧美另类videos死尸| 亚洲制服丝袜一区| 99精品久久只有精品| 国产欧美日韩在线视频| 国产九九视频一区二区三区| 91精品国产手机| 天堂成人国产精品一区| 精品视频资源站| 亚洲风情在线资源站| 91官网在线观看| 亚洲综合色成人| 色婷婷综合五月| 一级日本不卡的影视| 在线一区二区观看| 一区二区在线免费观看| www.综合网.com| 亚洲欧洲av色图| 色先锋资源久久综合| 一区二区三区在线视频观看 | 99免费精品视频| 欧美精品一区二区三区久久久 | 国产精品99久久久久久久女警 | 亚洲国产你懂的| 欧美日韩亚洲综合一区| 午夜激情一区二区三区| 欧美三级日本三级少妇99| 亚洲制服丝袜av| 欧美福利视频导航| 免费看欧美女人艹b| 日韩欧美国产一区在线观看| 国产自产高清不卡| 欧美国产日韩在线观看| www.欧美精品一二区| 一区二区三区中文字幕在线观看| 一本一本大道香蕉久在线精品 | 成人毛片视频在线观看| 中文字幕五月欧美| 91丨porny丨户外露出| 亚洲三级免费观看| 91性感美女视频| 午夜精品福利在线| 精品国产123| 国产成人av一区二区三区在线| 中文字幕av一区二区三区高| 色综合激情久久| 午夜精品免费在线观看| 欧美成人艳星乳罩| 成人av中文字幕| 亚洲成av人片www| 精品免费视频一区二区| 成人激情图片网| 午夜精品一区二区三区免费视频 | 国产精品人人做人人爽人人添| 色婷婷综合久色| 日韩av电影免费观看高清完整版在线观看| 日韩欧美一级特黄在线播放| 国产成人精品aa毛片| 亚洲国产日韩综合久久精品| 欧美成人性战久久| 91毛片在线观看| 美女网站色91| 亚洲女与黑人做爰| 欧美电视剧免费观看| 不卡区在线中文字幕| 日韩一区欧美二区| 国产精品情趣视频| 欧美视频在线观看一区| 亚洲第一福利视频在线| 99久久精品国产观看| 亚洲男女一区二区三区| 久久亚洲综合av| 欧美浪妇xxxx高跟鞋交| 一本到三区不卡视频| 精品一区二区三区免费| 日日骚欧美日韩| 亚洲另类春色校园小说| 国产精品久久免费看| 精品国产乱子伦一区| 欧美日韩亚洲国产综合| heyzo一本久久综合| 国产91色综合久久免费分享| 精品一区二区三区香蕉蜜桃| 天堂一区二区在线| 亚洲午夜精品网| 亚洲在线视频一区| 最近日韩中文字幕| 国产精品毛片大码女人| 久久综合九色综合97_久久久| 69堂亚洲精品首页| 欧美久久久久久久久| 欧美日韩国产高清一区二区三区 | 国产精品亚洲视频| 激情综合网天天干| 激情伊人五月天久久综合| 美女视频黄频大全不卡视频在线播放| 亚洲国产精品久久久久婷婷884 |