首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

啊彻底被VC的ADO数据库操作给打败了

2013-06-19 
求救啊,彻底被VC的ADO数据库操作给打败了1.创建许多也可以下标递增的视图,VS1,VS2,...,VSn然后VS1v1 ,VS

求救啊,彻底被VC的ADO数据库操作给打败了

1.创建许多也可以下标递增的视图,VS1,VS2,...,VSn;
   然后VS1=v1 ,  VS2=VS1+V2 , VSn=VSn-1 + Vn ,....
   在VS2=VS1+V2组合的时间,有可能VS1中有的零件,V2中没有,反之V2中有的VS1中也可能没有,所以用了联合查询
   CREATE VIEW VS2 AS
   SELECT 零件,A.零件数量+B.零件数量 AS 零件数量 ,a.备注+','+b.备注 
       FROM VS1 A,V2 B WHERE  A.零件=B.零件
   UNION
       SELECT .... FROM ... WHERE A.零件<>B.零件
   UNION .....
   (上面的语句是用的CString::FORMAT自动生成的VS2,VS1和V2,这里只是个假设,方便看)
 然后我发现,特妹的ADO的JET SQL居然不支持视图里的联合查询,没办法我又百度了下,参考高手们的指点想了个办法2
2.直接创建临时的表TABLE,不用视图,大约伪码如下
    (1).SELECT INTO T1 FROM V1
    (2).UPDATE T1 SET 零件数量=T1.零件数量+DSUM("零件数量","V2","零件="'&T1.零件&"'"
    (3).INSERT  剩下那些不相等的
  第(2)步不能改为子查询,因为JET也不支持UPDATE的子查询,我搞了半天才明白过来...
第2个办法也出了问题,虽然SQL语句在程序执行过程中没抛出异常,但是零件数量全为空,练个零都没有...
好像是这个DSUM前面不能有运算符吧,这不蛋痛吗~~
我的本想这样做最后的汇总
已有视图V1,V2,..,Vn
然后创建临时的表或视图 设名为VT1,VT2,VT3..,VTn;
VT1=V1;  VT2=VT1+V2;  VT3=VT2+V3  ;...; VTn=VTn-1+Vn;
可是我发现貌似JET里真没这中能最后汇总起来的方式,视图没有联合查询,用表就要用UPDATE,如果不用UPDATE,也是有更麻烦的方法,不过感觉SQL语句写到那份上,是不是也太2了,而且如果这是一个大数据库,最后的执行会卡死人的.

我想问下,有没有什么好的方法,可以执行方法1和2里的语句,比如再加个什么组件或库之类的,最好可以做成绿色的软件,因为我会在单位好几台电脑上用这个软件,每个电脑都打补丁会很郁闷的,因为有些机器装了还原卡...

或者各位还有什么别的可执行的语句来完成这个数据库的汇总.

先谢谢各位大神了.坐等神自天而降~~
1.创建许多也可以下标递增的视图,VS1,VS2,...,VSn;
   然后VS1=v1 ,  VS2=VS1+V2 , VSn=VSn-1 + Vn ,....
   在VS2=VS1+V2组合的时间,有可能VS1中有的零件,V2中没有,反之V2中有的VS1中也可能没有,所以用了联合查询


   CREATE VIEW VS2 AS
   SELECT 零件,A.零件数量+B.零件数量 AS 零件数量 ,a.备注+','+b.备注 
       FROM VS1 A,V2 B WHERE  A.零件=B.零件
   UNION
       SELECT .... FROM ... WHERE A.零件<>B.零件
   UNION .....
   (上面的语句是用的CString::FORMAT自动生成的VS2,VS1和V2,这里只是个假设,方便看)
 然后我发现,特妹的ADO的JET SQL居然不支持视图里的联合查询,没办法我又百度了下,参考高手们的指点想了个办法2
2.直接创建临时的表TABLE,不用视图,大约伪码如下
    (1).SELECT INTO T1 FROM V1
    (2).UPDATE T1 SET 零件数量=T1.零件数量+DSUM("零件数量","V2","零件="'&T1.零件&"'"
    (3).INSERT  剩下那些不相等的
  第(2)步不能改为子查询,因为JET也不支持UPDATE的子查询,我搞了半天才明白过来...
第2个办法也出了问题,虽然SQL语句在程序执行过程中没抛出异常,但是零件数量全为空,练个零都没有...
好像是这个DSUM前面不能有运算符吧,这不蛋痛吗~~
我的本想这样做最后的汇总
已有视图V1,V2,..,Vn
然后创建临时的表或视图 设名为VT1,VT2,VT3..,VTn;
VT1=V1;  VT2=VT1+V2;  VT3=VT2+V3  ;...; VTn=VTn-1+Vn;
可是我发现貌似JET里真没这中能最后汇总起来的方式,视图没有联合查询,用表就要用UPDATE,如果不用UPDATE,也是有更麻烦的方法,不过感觉SQL语句写到那份上,是不是也太2了,而且如果这是一个大数据库,最后的执行会卡死人的.

我想问下,有没有什么好的方法,可以执行方法1和2里的语句,比如再加个什么组件或库之类的,最好可以做成绿色的软件,因为我会在单位好几台电脑上用这个软件,每个电脑都打补丁会很郁闷的,因为有些机器装了还原卡...

或者各位还有什么别的可执行的语句来完成这个数据库的汇总.

先谢谢各位大神了.坐等神自天而降~~
直接用MYSQL api不好吗

热点排行