可能做的复杂了,因为不知道还能怎么做
DataSetXLXXSJJ2的作用就在于计算出了线路长度,其他的一点用也没有,具体见sql
[其中,“线路信息数据集2”即DataSetXLXXSJJ2的sql是,功能就是从QYLJB和XLDYB中算出了线路ID和相应的长度、SELECT XLDYB.XLID,SUM(QYLJB.ZD) AS '线路长度'
FROM XLDYB, QYLJB
WHERE XLDYB.XLID=QYLJB.XLID
GROUP BY XLDYB.XLID]
然后在数据网格中显示出来。数据网格因为有线路长度这个临时字段,所以插不进去
直接给Query赋SQL语句
你现在不是先定义一个,“线路信息数据集2”,它的SQL是
SELECT XLDYB.XLID,SUM(QYLJB.ZD) AS '线路长度'
FROM XLDYB, QYLJB
WHERE XLDYB.XLID=QYLJB.XLID
GROUP BY XLDYB.XLID
然后再给这个数据集加上一个UserFilter:=' XLDYB.XLID='''+DataSetXLXXSJJ.FieldByName。
UserFilter 就是在原先的SQL语句的Where 再and 一下UserFilter 条件。
那么你直接把整个这个SQL赋值“线路信息数据集2”这个数据集,或者赋值Query就可以了
至于Query然后复制,参考代码如下
var
lQuery: TQuery;
begin
lQuery := TQuery.Create(nil);
try
lQuery.ConnectionString := 'DATABASEURL=Biz:\HGOPERATION\HGOPERATIONDB.DATABASE';
lQuery.CommandText :='select * from QMINFOTABLE where ZD=1 and ZD2>100';
lQuery.Open;
finally
lQuery.Free;
end;
end;