procedure TForm1.Button1Click(Sender: TObject); var I: Integer; ParamStr: string; Begin QueryParam.Close; for I := 0 to QueryParam.ParamCount - 1 do //获取查询组件的参数个数,并将其作为循环控制变量的终值 begin ParamStr := ListBox1.Items[I]; //获取列表框中的第I个查询参数值 case QueryParam.Params[I].DataType of //此CASE语句,根据查询参数的数据类型,确定赋值形式, //查询参数的数据类型有36种,详见表8-1的说明 ftString: Query1.Params[I].AsString := ParamStr; //为查询参数赋值 ftSmallInt: QueryParam.Params[I].AsSmallInt := StrToIntDef(ParamStr, 0); // 如果字符串是一个有效的数字(10进制或16进制),则StrToIntDef函数 //将其转换成数字,否则,该函数返回缺省值,此处大缺省值为0 ftInteger: QueryParam.Params[I].AsInteger := StrToIntDef(ParamStr, 0); ftWord: QueryParam.Params[I].AsWord := StrToIntDef(ParamStr, 0); ftBoolean: begin if ParamStr = 'True' then QueryParam.Params[I].AsBoolean := True else QueryParam.Params[I].AsBoolean := False; end; ftFloat: QueryParam.Params[I].AsFloat := StrToFloat(ParamStr); ftCurrency: QueryParam.Params[I].AsCurrency := StrToFloat(ParamStr); ftBCD: QueryParam.Params[I].AsBCD := StrToCurr(ParamStr); ftDate: QueryParam.Params[I].AsDate := StrToDate(ParamStr); ftTime: QueryParam.Params[I].AsTime := StrToTime(ParamStr); ftDateTime: QueryParam.Params[I].AsDateTime := StrToDateTime(ParamStr); end; end; QueryParam.Open; //赋完值后,执行查询语句 end;