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

📄 sqlanalyzeserviceunit.pas

📁 随便说说最近项目中的三层架构吧。讲点实际的东西。我最讨厌空讲道理。网上讲道理的太多了
💻 PAS
字号:
unit SQLAnalyzeServiceUnit;

interface

uses
  Classes, Variants, SysUtils, DBClient, Dialogs, Contnrs, ServiceObjectUnit;

type
  TSQLAnalyzeService= class(TServiceObject)
    private
      function getSQLStatement(const pServiceCode: String): String;
      function FormatEx(const sStr: String; vParams: OleVariant): String;

    public
      function getSQLCode(const pSql: String; vParams: OleVariant): String; overload;
      function getSQLCode(const pSql: String): String; overload;
  end;
  
implementation

function TSQLAnalyzeService.FormatEx(const sStr: String; vParams: OleVariant): String;
var
  i_i: Integer;
  pSS: PShortString;
  ary_s: array[1..100] of variant;
  ary_rec: array[1..100] of TVarRec;
  tmpVar: variant;
begin
  if not VarIsArray(vParams) then
    Result := '';

  for i_i := VarArrayLowBound(vParams, 1) to VarArrayHighBound(vParams, 1) do
  begin
    case Vartype(vParams[i_i]) of
      varDate:
        vParams[i_i] := Quotedstr(Datetimetostr(VartoDatetime(vParams[i_i])));
      varboolean:
        if vParams[i_i] then
          vParams[i_i] := '1'
        else
          vParams[i_i] := '0';
    end;

    ary_s[i_i] := vParams[i_i];
    new(pSS);
    pSS^ := ary_s[i_i];
    ary_rec[i_i+1].VString := pSS;
    ary_rec[i_i+1].VType := vtString;
  end;

  Result := Format(sStr, ary_rec);
end;

function TSQLAnalyzeService.getSQLStatement(const pServiceCode: String): String;
begin
  //扩展功能:
  Result := pServiceCode;
end;

function TSQLAnalyzeService.getSQLCode(const pSql: String): String;
begin
  Result := getSQLStatement(pSql);
end;

function TSQLAnalyzeService.getSQLCode(const pSql: String; vParams: OleVariant): String;
begin
  if  not VarIsArray(vParams) then
    Result := ''
  else
    Result := FormatEx(getSQLStatement(pSql), vParams);
end;


end.

⌨️ 快捷键说明

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