OCI_Connection *conn_put1 = (OCI_Connection *)dbp->dbenv->app_private;OCI_Statement *st2;st2 = OCI_StatementCreate(conn_put1);if(dbp->dbenv->reginfo){
sprintf(sql,"update %s set data = empty_blob() where key = '%s' and itemcode = '%s' returning data into :data",table_view,(char*)key->data,dbp->dbenv->reginfo);
}else{
sprintf(sql,"insert into %s(key,data) values('%s',empty_blob()) returning data into :data",table_view,(char*)key->data);
}
lock();
OCI_Prepare(st2, sql);OCI_RegisterLob(st2,MT(":data"),OCI_BLOB);OCI_Execute(st2);unlock();
rs_put1 = OCI_GetResultset(st2);// print resultset content /
while (OCI_FetchNext(rs_put1))
{
lob_put1 = OCI_GetLob(rs_put1, 1); OCI_LobWrite(lob_put1, (char*)data->data, data->size);}OCI_ReleaseResultsets(st2);OCI_StatementFree(st2);
以上函数是我工程中截取的一部分
所有语句都是可用的
在我进行单人操作时可以插入数据进去
但是一旦是多人同时操作时
lock()和unlock()函数就会导致我的工程死锁
死锁就是在下面这三句操作时
OCI_Prepare(st2, sql);OCI_RegisterLob(st2,MT(":data"),OCI_BLOB);OCI_Execute(st2);如果哪位大侠知道如何解决或者还有疑问
在线等候解答和提供解释
sprintf(sql,"update %s set data = empty_blob() where key = '%s' and itemcode = '%s' returning data into :data",table_view,(char*)key->data,dbp->dbenv->reginfo);
}else{
sprintf(sql,"insert into %s(key,data) values('%s',empty_blob()) returning data into :data",table_view,(char*)key->data);
}
lock();
OCI_Prepare(st2, sql);OCI_RegisterLob(st2,MT(":data"),OCI_BLOB);OCI_Execute(st2);unlock();
rs_put1 = OCI_GetResultset(st2);// print resultset content /
while (OCI_FetchNext(rs_put1))
{
lob_put1 = OCI_GetLob(rs_put1, 1); OCI_LobWrite(lob_put1, (char*)data->data, data->size);}OCI_ReleaseResultsets(st2);OCI_StatementFree(st2);
以上函数是我工程中截取的一部分
所有语句都是可用的
在我进行单人操作时可以插入数据进去
但是一旦是多人同时操作时
lock()和unlock()函数就会导致我的工程死锁
死锁就是在下面这三句操作时
OCI_Prepare(st2, sql);OCI_RegisterLob(st2,MT(":data"),OCI_BLOB);OCI_Execute(st2);如果哪位大侠知道如何解决或者还有疑问
在线等候解答和提供解释
解决方案 »
- 请问下,我创建一个触发器后删除不了啦,一删除pl/sql就未响应,其他的能删除,这是怎么回事??请帮帮忙
- 求一简单的存储过程!
- 在进行备份(EXP)的时候,在备份中同时进行更新(insert、update)等操作,备份内容是更新前还是更新后
- oracle如何查询两个数据库
- 高手帮忙,求一个详细的存储过程 高手看过来
- 急需ORACLE8性能测试工具!!!!
- 请问存储过程里的变量需不需要指定精度?
- 请问当字段无法确定的时候如何来设计表格??(详细请进)
- 这个trigger怎么写?
- 手工建库的问题
- 通过查看数据库中的哪个试图来监控队列任务的基本情况?
- 有条UPDATE过程只更新了部分字段,手动跑却全部更新
我的工程是纯c语言的
怎么也轮不到java吧
再说我现在是oci出的问题
就应该是往数据库发不是么?
这样当同时多进程调用DML的时候,会有NOWAIT共享锁问题吧?猜测!