ado查询对于2000和2008不同的表现
我一直以来都用 sql2000的,最近准备升级到 2008,在 adoQuery 查询方面,碰到了一个挺麻烦的问题
一般,我都是用 adoQuery.LockType=ltBatchOptimistic,来确保本地 Post 时不会提交,
同时,由于 adoQuery 在查询时,会自动根据查询的结果判断某个字段是否可写,
比如
select ClientCode,ClientName,'X'+ ClientCode as XClientCode from TClient
三个字段中,XClientCode 是不可更新的
在 2000 下,如果我对这个查询语句改进一下,可以避免此问题
select * from (select top 100000 ClientCode,ClientName,'X'+ ClientCode as XClientCode from TClient) as D
也就是把作为子查询,并且子查询中必须使用 top 标记
但是,换成 2008 数据库后,使用子查询,adoQuery 还是无法更新到类似字段,这对我的系统影响很大,因为我很多地方都是利用 adoQuery.LockType=ltBatchOptimistic 来 adoquery 当做本地数据集使用的,检索时从数据库取出一条数据插入到 adoQuery ,以实现根据需要检索并更新客户端显示数据的目的,因为有些查询比较复杂,也自然会使用到"计算"的字段
很郁闷啊,求助!!!