敬业的IT人 >> 编程开发 >> Delphi >> 通用查询组件设计(续四)

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

敬业的IT人 互联网 佚名 2008-1-4 16:37:13

通用查询组件设计<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

作者: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;

粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com