您的位置:首页 > 其它

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

2004-04-13 14:08 441 查看
通用查询组件设计
作者: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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: