免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2732 | 回复: 2
打印 上一主题 下一主题

同步数据遇到的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-18 14:04 |只看该作者 |倒序浏览
int InsertBDTTable()
{
    int n;
    EXEC SQL BEGIN DECLARE SECTION;       
    int nCount;
    BDTNEWSTRU bdtnewstru;
    BDTSTRU bdtstru;
    EXEC SQL END DECLARE SECTION;                
         
    EXEC SQL SELECT COUNT (*) INTO :nCount FROM BDTNEW;       
    EXEC SQL DECLARE bdtnewcur CURSOR FOR SELECT * FROM BDTNEW;       
    EXEC SQL OPEN bdtnewcur;
    for(n = 0; n < nCount; n++)
    {               
        memset(&bdtnewstru, 0, sizeof(bdtnewstru));
        memset(&bdtstru, 0, sizeof(bdtstru));
               
        EXEC SQL FETCH bdtnewcur INTO :bdtnewstru;
                          
        EXEC SQL INSERT BDT VALUES (:bdtnewstru);
                          
        if (sqlca.sqlcode == SQLCODE_DUPKEY)               
        {
            EXEC SQL   DELETE  BDT WHERE   BDTPRO_COD =:bdtnewstru.szPRO_COD AND
            BDTBR =:bdtnewstru.szBR;
            EXEC SQL INSERT BDT VALUES (:bdtnewstru);                                    
        }                
    }
    EXEC SQL COMMIT;
    EXEC SQL CLOSE bdtnewcur;
    EXEC SQL DEALLOCATE CURSOR bdtnewcur;            
}

如上
如果nCount值小的时候是没问题的。
可是如果nCount值达到几十万,并且,需要插入的数据达到几十万的时候。
日志空间就满了。
这个该如何解决呢??
我曾试过把    EXEC SQL COMMIT;
放到insert操作之后,即:
if (sqlca.sqlcode == SQLCODE_DUPKEY)               
        {
            EXEC SQL   DELETE  BDT WHERE   BDTPRO_COD =:bdtnewstru.szPRO_COD AND
            BDTBR =:bdtnewstru.szBR;
            EXEC SQL INSERT BDT VALUES (:bdtnewstru);            
                    EXEC SQL COMMIT;
                       
        }       
可最后结果是只完成了插入一条数据。
请高手帮我解决以下

论坛徽章:
0
2 [报告]
发表于 2007-07-19 08:56 |只看该作者
??一天了都没人??

论坛徽章:
0
3 [报告]
发表于 2007-07-19 16:13 |只看该作者
在一个打开的游标遍历过程中,是没办法提交多个事务的。
如果你的应用这么简单,建议用BCP同步。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP