免费注册 查看新帖 |

Chinaunix

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

OCI 批量处理BLOB时 update问题。。。。。。。。。。。。。。。。。。。。。。。。。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-20 17:30 |只看该作者 |倒序浏览
bool update_blob(BLOBPIC **blobsub, OCILobLocator **blob)
{
        text                *update = (text *)"SELECT pic FROM blobpic WHERE pid = :1 FOR UPDATE";
        OCIBind                *bndhp1 = NULL;
        OCIDefine        *defhp1 = NULL;
        sb4                        status = 0;
        bool                ersign = 1;
        BLOBPIC                *tempid = NULL;                        //用来临时保存PID
       
        //tempid = blobsub->pid;
        //prepare to update
       
        ersign = ersign & CheckErr(errhp, OCIStmtPrepare(stmthp, errhp, (oratext *)update, (sb4)strlen((char *)update), OCI_NTV_SYNTAX, OCI_DEFAULT));

        ersign = ersign & CheckErr(errhp, OCIBindByPos(stmthp, &bndhp1, errhp, 1, blobsub[0]->pid,(sb4)sizeof(blobsub[0]->pid), SQLT_INT,&blobsub[0]->indic, &blobsub[0]->alen, &blobsub[0]->rcodep, MAXPICNUM, &blobsub[0]->curelp, OCI_DEFAULT));
        OCIBindArrayOfStruct(bndhp1, errhp, sizeof(blobsub[0]->pid), sizeof(sb2), sizeof(ub2), sizeof(ub2), sizeof(ub2));                                                                //批量处理

        ersign = ersign & CheckErr(errhp, OCIDefineByPos(stmthp, &defhp1, errhp, 1, (void *)blob[0], (sb4)sizeof(blob[0]), SQLT_BLOB, 0, 0, 0, OCI_DEFAULT));   
        OCIDefineArrayOfStruct(defhp1, errhp, sizeof(blob),sizeof(sb2), sizeof(ub2), sizeof(ub2));

        //update
        status = OCIStmtExecute(svchp, stmthp, errhp, MAXPICNUM, 0, NULL, NULL, OCI_DEFAULT);

        if(status && status != OCI_SUCCESS_WITH_INFO)                                                //出错则返回
        {
                CheckErr(errhp, status);
                OCIHandleFree((dvoid *)envhp, OCI_HTYPE_ENV);
                return FALSE;
        }

        return ersign;
}


运行时出现"编译绑定长度不同于执行绑定长度"的错误代码  
MAXPICNUM 为3
是不是哪儿的参数错了?

OCIBindByPos()的最后那几个指针是否必须为指针?数组可以么?alenp 与indp rcodep maxarr_len curelep 他们都必须要设置么?

谢谢!!

[ 本帖最后由 summy00 于 2008-6-20 17:45 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-06-21 21:58 |只看该作者
我觉得就算有人知道 也没时间来这里回答我。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP