WEB开发网
开发学院软件开发Delphi 通用查询组件设计(续四) 阅读

通用查询组件设计(续四)

 2006-02-04 13:45:05 来源:WEB开发网   
核心提示:通用查询组件设计作者:nxyc_twz@163.com前段时间由于工作较忙,无暇整理本组件的相关文档,通用查询组件设计(续四),请大家谅解!以后我会陆续整理公布该组件的所有相关文档及源码!设置字段变量PRocedure TMyFieldInfo.SetVariables(d: TDataset);var value

通用查询组件设计

作者:nxyc_twz@163.com

  前段时间由于工作较忙,无暇整理本组件的相关文档,请大家谅解!以后我会陆续整理公布该组件的所有相关文档及源码!

设置字段变量

PRocedure TMyFieldInfo.SetVariables(d: TDataset);

var

  value : String;

begin

//设置变量值

  if AnsiUpperCase(FilterValue) = 'NULL' then

   exit;

  if FieldType = ftString then

  begin

   if CaseSensitive then

    case MatchType of

     fdMatchStart, fdMatchAny :

      value := FilterValue;

     fdMatchEnd :

      value := '%' + FilterValue;

     fdMatchExact :

      value := FilterValue;

    end

   else

    case MatchType of

     fdMatchStart, fdMatchAny :

      value := AnsiUpperCase(FilterValue);

     fdMatchEnd :

      value := '%' + AnsiUpperCase(FilterValue);

     fdMatchExact :

      value := AnsiUpperCase(FilterValue);

    end;

  end

  else

   value := FilterValue;

  if d is TDataSet then

  begin

   if MatchType <> fdMatchRange then

    TQuery(d).ParamByName(FieldName + 'Filter').Value :=  value

   else

   begin

    if CaseSensitive then

    begin

     if StartingValue <> '' then

      TQuery(d).ParamByName(FieldName + 'Start').Value := StartingValue;

     if EndingValue <> '' then

      TQuery(d).ParamByName(FieldName + 'End').Value := EndingValue;

    end

    else

    begin

     if StartingValue <> '' then

      TQuery(d).ParamByName(FieldName + 'Start').Value := AnsiUpperCase(StartingValue);

     if EndingValue <> '' then

      TQuery(d).ParamByName(FieldName + 'End').Value := AnsiUpperCase(EndingValue);

    end;

   end;

  end

  else

  begin

   if MatchType <> fdMatchRange then

    TQuery(d).ParamByName(FieldName + 'Filter').Value :=  value

   else

   begin

    if CaseSensitive then

    begin

     if StartingValue <> '' then

      TQuery(d).ParamByName(FieldName + 'Start').Value := StartingValue;

     if EndingValue <> '' then

      TQuery(d).ParamByName(FieldName + 'End').Value := EndingValue;

    end

    else

    begin

     if StartingValue <> '' then

      TQuery(d).ParamByName(FieldName + 'Start').Value := AnsiUpperCase(StartingValue);

     if EndingValue <> '' then

      TQuery(d).ParamByName(FieldName + 'End').Value := AnsiUpperCase(EndingValue); 

    end;

   end;

  end

end;

 

定义参数变量类

TDBVariable = class  //参数数据变量

  public

   VariableName : String;  //变量名 

   VariableValue : Variant;  //变量值

   constructor Create(name : String; value : Variant); //构造函数

  end;

 

Tags:通用 查询 组件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接