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

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

?? untfunctions.pas

?? 通訊過程中需要某些重要的命令不丟失
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
{*******************************************************}
{      單元名:  untFunctions.pas                       }
{      創(chuàng)建日期:2006-01-06 9:07:22                     }
{      創(chuàng)建者    馬敏釗 QQ 22900104                     }
{      功能:    提供公共的方法                         }
{                                                       }
{*******************************************************}

unit untFunctions;

interface
//------------------------------------------------------------------------------
// 根據(jù)此配置文件決定編譯那些函數(shù)
//------------------------------------------------------------------------------
{$DEFINE Db}  //數(shù)據(jù)庫操作函數(shù)
{$DEFINE File}//文件操作函數(shù)
{.$DEFINE Graph}//圖形操作函數(shù)
{$DEFINE dialog}//對話筐
{$DEFINE List}//列表
{$DEFINE Zlib}//壓縮


uses SysUtils

{$IFDEF dialog}
  , dialogs
  , Controls
{$ENDIF}

{$IFDEF Db}
  , Contnrs
  , Variants
  , adodb, db
{$ENDIF}

{$IFDEF File}
  , Windows
  , Forms
{$ENDIF}

{$IFDEF Graph}
  , Graphics
{$ENDIF}

{$IFDEF List}
  , Classes
{$ENDIF}

{$IFDEF ZLib}
  , ZLib
{$ENDIF}
  ;

//------------------------------------------------------------------------------
// 數(shù)據(jù)庫
//------------------------------------------------------------------------------

{$IFDEF Db}
const
  CDb_State_NoneUsed = '';
  CDb_State_EverUsed = -1;
  CDb_State_CanUsed = 0;
//------------------------------------------------------------------------------
// 數(shù)據(jù)庫操作類
//------------------------------------------------------------------------------
type
  {檢查ADO是否可用的線程}
  TDBMrg = class;

  TCheckThread = class(TThread)
  private
    CheckTime: Cardinal;
  public
    DbMrg: TDbmrg;
    procedure Execute; override;
    constructor Create(IsStop: boolean; IDbMrg: TDbmrg);
  end;
  TDBMrg = class
  private
    FConn: TADOConnection;
    FPool: TStringList;
    FName: Integer;
    FAutoFreeConn: boolean;
    FTotCount: Integer;
    FThread_Check: TCheckThread;
  public
    {一個公共的BUff 啟動時未創(chuàng)建}
    TepBuff: TADOQuery;
    property TotCount: Integer read FTotCount write FTotCount;
    constructor Create(IConStr: string; ICreateBuffCount: Integer = 5); overload;
    constructor Create(IConn: TADOConnection; ICreateBuffCount: Integer = 5);
      overload;
    destructor Destroy; override;
    {獲取一個ADO對象 可以指定名字 如果沒有名字 系統(tǒng)自己返回一合適的對象}
    function GetAnQuery(IuserTime: integer = 1; Iname: string = ''): TADOQuery; overload;
    function GetAnQuery(Iname: string): TADOQuery; overload;
    {獲取自動增長的ID號碼}
    function GetId(ItabName, IFieldName: string): Integer;
    {獲取符合記錄的個數(shù)}
    function GetCount(ItabName, IFieldName: string; Ivalue: variant): Cardinal;
      overload;
    function GetCount(ItabName: string): Cardinal; overload;
    {根據(jù)字段名和值刪除表內(nèi)容}
    procedure DeleteSomeThing(ItabName, IFieldName: string; Ivalue: Variant);
    {讀取某個字段的值}
    function GetSomeThing(ItabName, IGetField, IWhereField: string; Ivalue: Variant): variant;
    {判斷是否已經(jīng)存在這個值}
    function IsExitThis(ItabName, IFieldName: string; Ivalue: Variant): boolean;
    {在數(shù)據(jù)集內(nèi)定位記錄}
    function FindDataInDataSet(IData: TDataSet; IFieldName, IFieldValue: string; Iopt: TLocateOptions): boolean;
    {執(zhí)行一個語句}
    function ExecAnSql(Isql: string): Integer; overload;
    function ExecAnSql(Isql: string; const Args: array of const): Integer; overload;
    function ExecAnSql(IQueryRight: integer; Isql: string; const Args: array of const): Integer; overload;
    {執(zhí)行一個查詢語句}
    function OpenDataset(ISql: string): TADOQuery; overload;
    {用指定的ADO執(zhí)行}
    function OpenDataset(IadoName, ISql: string): TADOQuery; overload;
    function OpenDataset(Iado: TADOQuery; ISql: string; const Args: array of const):
      TADOQuery; overload;
    function OpenDataset(ISql: string; const Args: array of const): TADOQuery; overload;
    function OpenDataset(IQueryRight: integer; ISql: string; const Args: array of
      const): TADOQuery; overload;
    {釋放ADO使用權(quán)以便其它人員使用}
    procedure BackToPool(Iado: TADOQuery); overload;
    procedure BackToPool(IName: string); overload;
    {加入一個由外部創(chuàng)建的ADO 幫它管理生命周期和重用}
    procedure AddAnOutAdo(Iado: TADOQuery);
    {為操作表預(yù)備一個ADO}
    function Ready(ItabName: string; Iado: TADOQuery): TADOQuery; overload;
    function Ready(ItabName: string; IQueryRight: integer = 1): TADOQuery; overload;
    {打開一個表}
    function OpenTable(ItabName: string; Iado: TADOQuery): TADOQuery; overload;
    function OpenTable(ItabName: string; IQueryRight: integer = 1): TADOQuery; overload;

    {檢查是否處于可修改狀態(tài)}
    function CheckModState(IAdo: TADOQuery): boolean;
    {安全保存}
    function SafePost(Iado: TADOQuery): boolean;
    {查詢總共有多少個ADOquery}
    function PoolCount: Integer;
    {空閑著的ADO數(shù)量}
    function PoolFreeCount: Integer;
    {獲取連接}
    function GetConn: TADOConnection;
    {獲取ACCESS連接字符串}
    class function GetAccessConnStr(IDataSource: string; Ipsd: string = ''): string;
    {獲取MSSQL連接字符串}
    class function GetMsSQLConnStr(IDataSource, IAcc, Ipsd, IDataBase: string): string;
    {獲取Oracle連接字符串}
    class function GetOracleConnStr(IDataSource, IAcc, Ipsd: string): string;
    {獲取Excel連接字符串}
    class function GetExcelConnStr(IFileName: string): string;
    {獲取Text連接字符串}
    class function GetTextConnStr(IDBPath: string): string;
    {獲取Dbf連接字符串}
    class function GetDBFConnStr(IDBPath: string): string;
    {獲取MySQl連接字符串}
    class function GetMySqlConnStr(IDataSource, IDbName, IAcc, Ipsd: string): string;
  end;
//------------------------------------------------------------------------------
// 一個全局的變量
//------------------------------------------------------------------------------
var
  Gob_DBMrg: TDBMrg = nil;
  {判斷變體是是空就返回0或者''}
function IsNullReturnint(Ivar: Variant): Integer;
function IsNullReturnFloat(Ivar: Variant): Double;
function IsNullReturnStr(Ivar: Variant): string;
{$ENDIF}

//------------------------------------------------------------------------------
// 對話筐
//------------------------------------------------------------------------------
{$IFDEF dialog}
{幾個常用的對話筐}
function QueryInfo(Info: string): Boolean;
procedure ErrorInfo(Info: string); overload;
procedure ErrorInfo(Info: string; const Args: array of const); overload;
procedure WarningInfo(Info: string);
procedure TipInfo(Info: string);
procedure ExceptTip(Info: string);
procedure ExceptionInfo(Info: string);
var
  ShowDeBug: Boolean = True; {是否顯示Debug信息}
procedure DeBug(ICon: Variant); overload;
procedure DeBug(ICon: string; const Args: array of const); overload;

{$ENDIF}
//------------------------------------------------------------------------------
// 列表
//------------------------------------------------------------------------------
{$IFDEF List}
{清除列表}
procedure ClearList(IList: TStrings);
{添加到列表}
procedure AddList(Ilist: Tstrings; ICapTion: string; Iobj: TObject);
{獲取選中對象}
function GetObj(Ilist: TStrings; Iidx: Integer): TObject;
{分割字符串}
procedure GetEveryWord(S: string; E: TStrings; C: string);
{獲取文件名稱}
function GetOnlyFileName(IfileName: string): string;
{$ENDIF}
//------------------------------------------------------------------------------
// 圖形
//------------------------------------------------------------------------------
{$IFDEF Graph}
{RGBTODElphiColor}
function RGB2BGR(C: Cardinal): TColor;
{DelphiColorTORGB}
function BGR2RGB(C: TColor): Cardinal;
{$ENDIF}
//------------------------------------------------------------------------------
// 文件
//------------------------------------------------------------------------------

{$IFDEF File}
{文件是否在使用中}
function IsFileInUse(FName: string): Boolean;
{取Windows系統(tǒng)目錄}
function GetWindowsDir: string;
{取臨時文件目錄}
function GetWinTempDir: string;
{查找指定目錄下文件}
procedure FindFileList(Path, Filter: string; FileList: TStrings; ContainSubDir: Boolean);
{$ENDIF}


{$IFDEF ZLib}
procedure EnCompressStream(CompressedStream: TMemoryStream);
procedure DeCompressStream(CompressedStream: TMemoryStream);

{$ENDIF}

//------------------------------------------------------------------------------
// 公共函數(shù)
//------------------------------------------------------------------------------
{IFTHen}
function IfThen(AValue: Boolean; const ATrue: Integer; const AFalse: Integer = 0): Integer; overload;
function IfThen(AValue: Boolean; const ATrue: Int64; const AFalse: Int64 = 0): Int64; overload;
function IfThen(AValue: Boolean; const ATrue: Double; const AFalse: Double = 0.0): Double; overload;
function IfThen(AValue: Boolean; const ATrue: string; const AFalse: string = ''): string; overload;
function IfThen(AValue: Boolean; const ATrue: boolean; const AFalse: boolean): boolean; overload;

{*隨機(jī)字符串}
function RandomStr(aLength: Longint): string;
{*縮短路徑顯示}
function FormatPath(APath: string; Width: Integer): string;
{當(dāng)前項(xiàng)目的路徑}
function GetCurrPath: string;
{判斷是否都是數(shù)字}
function IsallNumber(IStr: string): boolean;
{獲取格式化的當(dāng)前時間}
function GetFormatTime: string;
{獲取格式化的當(dāng)前日期和時間}
function GetDocTime: string;
{獲取格式化的當(dāng)前日期}
function GetFormatDate: string;
{獲取格式化的當(dāng)前日期}
function GetDocDate: string;
{獲取日期和時間}
function GetFormatDateTime: string;
{設(shè)置系統(tǒng)時間}
function SetSystime(ATime: TDateTime): boolean;

{程序只運(yùn)行一個實(shí)列}
function AppRunOnce: Boolean;

{字符串簡單加密}
function Str_Encry(ISrc: string; key: string = 'mMz'): string;
{字符串簡單解密}
function Str_Decry(ISrc: string; key: string = 'mMz'): string;
{獲取硬盤剩余空間情況}
function GetDiskInfo(IdiskName: string): string;
{取文件長度}
function GetFileSize(FileName: string): Integer;
function GetFileSize64(const FileName: string): Int64;

implementation

{$IFDEF ZLib}
{-------------------------------------------------------------------------------
  過程名:    EnCompressStream
  作者:      馬敏釗
  日期:      2006.03.01
  參數(shù):      CompressedStream: TMemoryStream
  返回值:    無
  說明:     流壓縮函數(shù)
-------------------------------------------------------------------------------}

procedure EnCompressStream(CompressedStream: TMemoryStream);
var
  SM: TCompressionStream;
  DM: TMemoryStream;
  Count: int64; //注意,此處修改了,原來是int
begin
  if CompressedStream.Size <= 0 then exit;
  CompressedStream.Position := 0;
  Count := CompressedStream.Size; //獲得流的原始尺寸
  DM := TMemoryStream.Create;
  SM := TCompressionStream.Create(clMax, DM);
  try
    CompressedStream.SaveToStream(SM); //SourceStream中保存著原始的流
    SM.Free; //將原始流進(jìn)行壓縮,DestStream中保存著壓縮后的流
    CompressedStream.Clear;
    CompressedStream.WriteBuffer(Count, SizeOf(Count)); //寫入原始文件的尺寸
    CompressedStream.CopyFrom(DM, 0); //寫入經(jīng)過壓縮的流
    CompressedStream.Position := 0;
  finally
    DM.Free;
  end;
end;


{-------------------------------------------------------------------------------
  過程名:    DeCompressStream
  作者:      馬敏釗
  日期:      2006.03.01
  參數(shù):      CompressedStream: TMemoryStream
  返回值:    無
  說明:      解壓縮函數(shù)
-------------------------------------------------------------------------------}

procedure DeCompressStream(CompressedStream: TMemoryStream);
var
  MS: TDecompressionStream;
  Buffer: PChar;
  Count: int64;
begin
  if CompressedStream.Size <= 0 then exit;
  CompressedStream.Position := 0; //復(fù)位流指針
  CompressedStream.ReadBuffer(Count, SizeOf(Count));
  //從被壓縮的文件流中讀出原始的尺寸
  GetMem(Buffer, Count); //根據(jù)尺寸大小為將要讀入的原始流分配內(nèi)存塊
  MS := TDecompressionStream.Create(CompressedStream);
  try
    MS.ReadBuffer(Buffer^, Count);
    //將被壓縮的流解壓縮,然后存入 Buffer內(nèi)存塊中
    CompressedStream.Clear;
    CompressedStream.WriteBuffer(Buffer^, Count); //將原始流保存至 MS流中
    CompressedStream.Position := 0; //復(fù)位流指針
  finally
    FreeMem(Buffer);
    MS.Free;
  end;
end;
{$ENDIF}

{-------------------------------------------------------------------------------
  過程名:    GetCurrPath
  作者:      馬敏釗
  日期:      2006.01.09
  參數(shù):      無
  返回值:    String
  說明:      獲取當(dāng)前項(xiàng)目的路徑
-------------------------------------------------------------------------------}

function GetCurrPath: string;
begin
  Result := ExtractFilePath(ParamStr(0));
end;

{--------------------------------
  過程名:    IsallNumber
  作者:      mmz
  日期:      2006.01.06
  參數(shù):      IStr: string
  返回值:    boolean
  說明:
-------------------------------------------------------------------------------}

function IsallNumber(IStr: string): boolean;
var
  i: Integer;
begin
  if Length(IStr) = 0 then begin
    Result := False;
    Exit;
  end;
  Result := True;
  for I := 1 to Length(IStr) do begin // Iterate
    if not (IStr[i] in ['0'..'9']) then begin
      Result := False;
      Exit;
    end;
  end; // for
end;

{-------------------------------------------------------------------------------
  過程名:    GetDateTime
  作者:      馬敏釗
  日期:      2006.01.15
  參數(shù):      無
  返回值:    String
  說明:      獲取格式化的時間
-------------------------------------------------------------------------------}

function GetFormatTime: string;
begin
  Result := FormatDateTime('hh:nn:ss', now);
end;

function GetDocTime: string;
begin
  Result := FormatDateTime('hhnnss', Time);
end;

function GetFormatDate: string;
begin
  Result := FormatDateTime('yyyy-mm-dd', Date);
end;

function GetDocDate: string;
begin
  Result := FormatDateTime('yyyymmdd', Date);
end;

function GetFormatDateTime: string;
begin
  Result := FormatDateTime('yyyy-mm-dd hh:nn:ss', Now);
end;

function SetSystime(ATime: TDateTime): boolean;
var
  ADateTime: TSystemTime;
  yy, mon, dd, hh, min, ss, ms: Word;
begin
  decodedate(ATime, yy, mon, dd);
  decodetime(ATime, hh, min, ss, ms);
  with ADateTime do begin
    wYear := yy;
    wMonth := mon;
    wDay := dd;
    wHour := hh;
    wMinute := min;
    wSecond := ss;
    wMilliseconds := ms;
  end;
  Result := SetLocalTime(ADateTime);
 // PostMessage(HWND_BROADCAST, WM_TIMECHANGE, 0, 0);
end;


{-------------------------------------------------------------------------------
  過程名:    AppRunOnce
  作者:      馬敏釗
  日期:      2006.02.28
  參數(shù):      無

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品无人区| 欧美日韩国产a| 国产精品久久久久久久久晋中 | 日韩avvvv在线播放| 欧美精品高清视频| 另类小说欧美激情| 日本一区二区视频在线| 9i看片成人免费高清| 亚洲在线视频一区| 欧美一区二区黄| 国产一区二区三区黄视频| 国产精品毛片a∨一区二区三区| 成人动漫一区二区| 一区二区三区加勒比av| 91精品久久久久久蜜臀| 国内精品在线播放| 亚洲男女一区二区三区| 91精品国模一区二区三区| 黑人巨大精品欧美一区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 色拍拍在线精品视频8848| 亚洲大片精品永久免费| 久久综合av免费| 91视频免费看| 免费成人在线影院| 亚洲视频图片小说| 亚洲精品一区二区三区影院 | 亚洲综合另类小说| 日韩免费视频一区| 色8久久人人97超碰香蕉987| 久久精品国产在热久久| 一色屋精品亚洲香蕉网站| 777午夜精品免费视频| 波多野结衣中文字幕一区| 日韩电影免费一区| 国产精品福利一区二区| 欧美变态tickle挠乳网站| 色综合激情五月| 国产成人av影院| 日本不卡视频一二三区| 亚洲免费在线观看| 欧美电影免费观看完整版| 欧美在线视频日韩| 成人丝袜高跟foot| 韩日欧美一区二区三区| 亚洲18色成人| 自拍偷拍欧美激情| 久久影院视频免费| 欧美肥妇毛茸茸| 欧美午夜在线观看| 成人看片黄a免费看在线| 久久精品国产精品亚洲红杏| 亚洲综合网站在线观看| 国产精品美日韩| 久久久久免费观看| 91精品国产欧美一区二区成人| 日本韩国一区二区| av在线播放不卡| 国产激情精品久久久第一区二区| 毛片av一区二区| 午夜激情一区二区| 午夜视频一区在线观看| 一区二区三区.www| 一区二区三区不卡视频 | 欧美精品一区二区三区很污很色的| 91黄色小视频| 91豆麻精品91久久久久久| 成人国产精品免费观看视频| 国产一区二区伦理片| 激情欧美日韩一区二区| 国内欧美视频一区二区| 精品一区二区三区免费播放| 美洲天堂一区二卡三卡四卡视频| 天天亚洲美女在线视频| 午夜精品免费在线| 天天av天天翘天天综合网| 亚洲不卡av一区二区三区| 亚洲国产毛片aaaaa无费看| 一区二区三区自拍| 亚洲午夜精品网| 午夜精品在线视频一区| 免费视频一区二区| 久久99精品久久久| 国产在线播放一区| 处破女av一区二区| 91视频com| 欧洲一区二区三区免费视频| 欧美日韩一区二区三区在线看| 欧美亚洲高清一区| 在线不卡一区二区| 日韩精品最新网址| 久久久久久久综合日本| 国产精品久久三| 亚洲成人午夜电影| 美腿丝袜一区二区三区| 懂色av一区二区三区蜜臀| 本田岬高潮一区二区三区| 在线亚洲欧美专区二区| 欧美一区二区三区视频在线观看| 欧美成人高清电影在线| 欧美国产一区在线| 一区二区三区四区在线免费观看| 亚洲电影第三页| 国产精品乡下勾搭老头1| 色婷婷综合久久久中文字幕| 欧美一级在线观看| 日本一区二区不卡视频| 亚洲成年人网站在线观看| 国产一区二区网址| 在线免费精品视频| 亚洲精品一区在线观看| 亚洲人xxxx| 激情六月婷婷综合| 在线亚洲欧美专区二区| www国产亚洲精品久久麻豆| 中文字幕亚洲区| 美女视频网站久久| 色香色香欲天天天影视综合网| 日韩欧美在线一区二区三区| 国产精品美女久久久久久| 欧美a一区二区| 91免费视频大全| 久久人人爽爽爽人久久久| 一区二区三区丝袜| 国产一区不卡在线| 制服丝袜亚洲色图| 亚洲视频中文字幕| 国产一区91精品张津瑜| 欧美精品在线视频| 中文字幕五月欧美| 国产精品一区二区三区网站| 欧美日韩高清在线播放| 成人免费一区二区三区视频| 国产自产v一区二区三区c| 在线观看日韩国产| 国产精品家庭影院| 蜜桃视频在线观看一区二区| 91福利在线导航| 国产精品国产a级| 国内一区二区视频| 日韩视频国产视频| 亚洲v精品v日韩v欧美v专区| 97成人超碰视| 欧美国产国产综合| 国内不卡的二区三区中文字幕 | 亚洲午夜久久久久中文字幕久| 成+人+亚洲+综合天堂| 精品少妇一区二区三区视频免付费| 亚洲已满18点击进入久久| 成人a免费在线看| 国产日韩欧美高清在线| 国内外精品视频| 亚洲精品一区二区三区福利| 日韩av高清在线观看| 欧美三级韩国三级日本三斤 | 国产精品久久久久久亚洲毛片| 久久99热99| 欧美成人高清电影在线| 日本亚洲一区二区| 91麻豆精品国产91| 日韩电影在线免费| 日韩一级二级三级| 免费高清在线一区| 日韩一二在线观看| 久久99精品一区二区三区三区| 日韩一区二区三区在线视频| 蜜桃久久久久久| 欧美mv日韩mv国产网站app| 久久精品72免费观看| 欧美大片在线观看一区| 久久国产尿小便嘘嘘| 精品国产人成亚洲区| 国产精品一区二区在线观看网站| 久久亚区不卡日本| 风间由美一区二区三区在线观看 | 欧美精品xxxxbbbb| 日韩电影免费在线看| 欧美大片一区二区| 国产美女娇喘av呻吟久久| 国产亚洲成aⅴ人片在线观看 | 91免费小视频| 亚洲成人三级小说| 精品久久久久久久久久久院品网 | 亚洲精选在线视频| 欧美三级日本三级少妇99| 日本不卡高清视频| 精品国产区一区| av电影在线不卡| 亚洲午夜精品网| 欧美xingq一区二区| 成人一区二区视频| 一区二区三区四区在线| 欧美精品aⅴ在线视频| 久久成人18免费观看| 国产精品视频看| 欧美日韩一级二级| 国产盗摄精品一区二区三区在线| 自拍av一区二区三区| 91精品国产乱| 成人性视频网站|