有数据集adsPrice,字段有:ID, price1
现在我想在程序运行时动态的添加查询字段price2,price2:=price1*1.2
首先说明下为什么要这样做,因为要添加的查询字段个数不确定,我用动态数组来创建一个
Price:array of TFloatField这样的动态数组.而且每个添加的查询字段的计算方法不一样,我该怎么写呢?
请高手给个例子,或者代码示例.
我.cn
现在我想在程序运行时动态的添加查询字段price2,price2:=price1*1.2
首先说明下为什么要这样做,因为要添加的查询字段个数不确定,我用动态数组来创建一个
Price:array of TFloatField这样的动态数组.而且每个添加的查询字段的计算方法不一样,我该怎么写呢?
请高手给个例子,或者代码示例.
我.cn
解决方案 »
- delphi7如何调用.net 写的DLL
- 请教:怎样对XML文件中查询的所有记录按某个属性进行排序。
- 关于Tstringlist的用法
- 谁有胆量接受挑战?如何更改文本数据库的内容?
- 一个关于web service的问题
- 请提供一个类似qq里分组控件
- 我想在用户保存之前提示用户那些比填数据为输入,你看这样写代码行不
- String1中包含有String2,如何从String1中删除String2,并返回删除后的结果? 在线等待...立即结贴!
- win32页下的PageScroller 是如何使用,动态时呢?
- 新人散分,基础问题。。。
- 知道ip地址,程序中如何检测此机子是否开机?谢谢了
- ntext类型数据转换为image(图片)
fieldname: string; //新增字段名称
formula: string; //计算公式
begin
fieldname := 'field2';
formula := ' field1 * 2 ';with adsPrice do
begin
close;
sql.clear;
sql.text := format(' alter table Tablename add %s as %s ',[fieldName,formula]);
execsql;
end;
end;
不用保存到后台数据库,找下相关的资料,不难
priceArray : array of string; //储存公式内容的动态数组;
以上应是同样长度的数组.如动态增加这样的计算公式: price2:=price1*1.2 可用动态查询来实现:var
sqls : string;
i, fieldCounts: integer;
begin
sqls:='select id, price';
for i:=Low(FieldArray) to High(FieldArray) do begin
for j:=Low(priceArray) to High(priceArray) do begin
sqls:=sqls+','+FieldArray[i]+'='+priceArray[j]
end;
end;
sqls:=sqls+' from 表1';
with adsPrice do
begin
close;
sql.clear;
sql.text := sqls;
open;
end;
随手写写, 去试一下
var
sqls : string;
// i, fieldCounts: integer;
i,j: integer;
begin
.......
id price1 price2 price3 ....
1 1 50 100 ....
2 2 100 200 ....
3 3 150 300 ....
.....
数据可能很多,price2,price3都是计算字段,还可能有price4,price5.....,先在我改变price1,希望price2,或者其他添加的price....都跟着变,数据量可能很多,在一个dbgrid中修改price1,难道我修改一条记录要close,再open一次吗?
大家都来讨论下