⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbfunctions.pas

📁 万能数据库查看程序 万能数据库查看程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      try
      J:=0;
      vAllWidth:=0;
      for I:=0 to mDBGrid.Columns.Count - 1 do
      if mDBGrid.Columns[I].Visible then begin
      Inc(J);
      SetLength(vWidths, J);
      vWidths[J - 1]:=mDBGrid.Columns[I].Width;
      Inc(vAllWidth, mDBGrid.Columns[I].Width);
      end;
      if J <=0 then Exit;
      mStrings.Clear;
      mStrings.Add(Format('<TABLE BGCOLOR="%s" BORDER=1 WIDTH="100%%">',[ColorToHtml(mDBGrid.Color)]));
      if mCaption<> '' then  mStrings.Add(Format('<CAPTION>%s</CAPTION>', [StrToHtml(mCaption)]));
      vColFormat:='';
      vColText:='';
      vColFormat:=vColFormat + '<TR>'#13#10;
      vColText:=vColText + '<TR>'#13#10;
      J:=0;
      for I:=0 to mDBGrid.Columns.Count - 1 do
      if mDBGrid.Columns[I].Visible then begin
        vColFormat:=vColFormat + Format(' <TD BGCOLOR="%s" ALIGN=%s WIDTH="%d%%">DisplayText%d</TD>'#13#10,[ColorToHtml(mDBGrid.Columns[I].Color),
        cAlignText[mDBGrid.Columns[I].Alignment],Round(vWidths[J] / vAllWidth * 100), J]);vColText:=vColText + Format(' <TD BGCOLOR="%s" ALIGN=%s WIDTH="%d%%">%s</TD>'#13#10,
        [ColorToHtml(mDBGrid.Columns[I].Title.Color),cAlignText[mDBGrid.Columns[I].Alignment],Round(vWidths[J] / vAllWidth * 100),StrToHtml(mDBGrid.Columns[I].Title.Caption,
        mDBGrid.Columns[I].Title.Font)]);Inc(J);
      end;
      vColFormat:=vColFormat + '</TR>'#13#10;
      vColText:=vColText + '</TR>'#13#10;
      mStrings.Text:=mStrings.Text + vColText;
      mDBGrid.DataSource.DataSet.First;
      while not mDBGrid.DataSource.DataSet.Eof do begin
      J:=0;
      vColText:=vColFormat;
      for I:=0 to mDBGrid.Columns.Count - 1 do
      if mDBGrid.Columns[I].Visible then
      begin
      vColText:=StringReplace(vColText, Format('>DisplayText%d<',[J]),Format('>%s<', [StrToHtml(mDBGrid.Columns[I].Field.DisplayText,mDBGrid.Columns[I].Font)]),[rfReplaceAll]);
      Inc(J);
      end;
      mStrings.Text:=mStrings.Text + vColText;
      mDBGrid.DataSource.DataSet.Next;
      end;
      mStrings.Add('</TABLE>');
      finally
      mDBGrid.DataSource.DataSet.Bookmark:=vBookmark;
      mDBGrid.DataSource.DataSet.EnableControls;
      vWidths:=nil;
      end;
      Result:=True;
    end; ///////////////////////把DBGrid组件内的数据内容导出到HTML网页文件//////////////////////////////

///////////////////////////////把DBGrid组件内的数据内容导出到TXT文本文件//////////////////////////////
  function  DBGridToTxt(mDBGrid:TDBGrid;mStrings:TStrings;symbol:string=' ';mCaption:TCaption=''):Boolean;
  var                 //symbol为用来分隔各字段间的字符,mCaption文本标题
    TempStr,vBookmark:string;
    I:Integer;
  begin
    Result:=False;
    Application.ProcessMessages;
    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;
    try
    mStrings.Clear;
    if mCaption<> '' then  mStrings.Add(mCaption);
    for I:=0 to mDBGrid.Columns.Count-2 do TempStr:=TempStr+'"'+mDBGrid.Columns[I].Title.Caption+'"'+symbol+'';
    TempStr:=TempStr+mDBGrid.Columns[I].Title.Caption+'"';
    mStrings.Add(TempStr);    //将字段标题存入文本
    while not mDBGrid.DataSource.DataSet.Eof do
      begin
        TempStr:='';
        for I:=0 to mDBGrid.Columns.Count-2 do
          if mDBGrid.Columns[I].Visible then TempStr:=TempStr+'"'+mDBGrid.Columns[I].Field.DisplayText+'"'+symbol+'';
          TempStr:=TempStr+mDBGrid.Columns[I].Field.DisplayText+'"';
          mStrings.Add(TempStr);    //将列表当然一条数据存入文本
          mDBGrid.DataSource.DataSet.Next;
      end;
    finally
    mDBGrid.DataSource.DataSet.Bookmark:=vBookmark;
    mDBGrid.DataSource.DataSet.EnableControls;
    end;
    Result:=True;
  end; ///////////////////////把DBGrid组件内的数据内容导出到TXT文本文件//////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//在之前uses ComObj,ActiveX
//=============================================================================
// Procedure: GetTempPathFileName
// Author   : ysai
// Date     : 2003-01-27
// Arguments: (None)
// Result   : string
//============================================================================= 
{function GetTempPathFileName():string;
//取得临时文件名
var
 SPath,Sfile:array [0..254] of char;
begin
 GetTempPath(254,SPath);
 GetTempFileName(SPath,'~SM',0,SFile);
 result:=SFile;
 DeleteFile(PChar(result));
end;

//=============================================================================
// Procedure: CreateAccessFile
// Author   : ysai
// Date     : 2003-01-27
// Arguments: FileName:String;PassWord:string=''
// Result   : boolean
//=============================================================================
function CreateAccessFile(FileName:String;PassWord:string=''):boolean;
//建立Access文件,如果文件存在则失败
var
 STempFileName:string;
 vCatalog:OleVariant;
begin
 STempFileName:=GetTempPathFileName;
 try
   vCatalog:=CreateOleObject('ADOX.Catalog');
   vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
   result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
   DeleteFile(STempFileName);
 except
   result:=false;
 end;
end;

//=============================================================================
// Procedure: CompactDatabase
// Author   : ysai
// Date     : 2003-01-27
// Arguments: AFileName,APassWord:string
// Result   : boolean
//=============================================================================
function CompactDatabase(AFileName,APassWord:string):boolean;
//压缩与修复数据库,覆盖源文件
var
 STempFileName:string;
 vJE:OleVariant;
begin
 STempFileName:=GetTempPathFileName;
 try
   vJE:=CreateOleObject('JRO.JetEngine');
   vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
       format(SConnectionString,[STempFileName,APassWord]));
   result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
   DeleteFile(STempFileName);
 except
   result:=false;
 end;
end;

//=============================================================================
// Procedure: ChangeDatabasePassword
// Author   : ysai
// Date     : 2003-01-27
// Arguments: AFileName,AOldPassWord,ANewPassWord:string
// Result   : boolean
//=============================================================================
function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean;
//修改ACCESS数据库密码
var
 STempFileName:string;
 vJE:OleVariant;
begin
 STempFileName:=GetTempPathFileName;
 try
   vJE:=CreateOleObject('JRO.JetEngine');
   vJE.CompactDatabase(format(SConnectionString,[AFileName,AOldPassWord]),
       format(SConnectionString,[STempFileName,ANewPassWord]));
   result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
   DeleteFile(STempFileName);
 except
   result:=false;
 end;
end;                        }




  
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
end.


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -