informix esql/c多线程编程问题请教:-439错误

IamDinosaur 2005-01-10 04:23:55
多线程同时操作同一数据库,老是提示-439错误:
-439 Database server is currently processing an SQL task.

You attempted to call an SQL routine or attempted to execute an SQL
statement within a signal handling function/routine or a callback
function/procedure. Use only the sqldone() and sqlbreak() library
functions inside your INFORMIX-ESQL/C callback function. Use only the
ECO-SQD and ECO-SQB library routines inside your ESQL/COBOL callback
procedure. In addition, if you want to unregister your callback
function in INFORMIX-ESQL/C, you can invoke the sqlbreakcallback()
callback registration function within your callback procedure. If you
want to unregister your callback procedure in ESQL/COBOL, you can
invoke the ECO-SQBCB callback registration routine within your callback
procedure.
...全文
381 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkhawk 2005-03-26
  • 打赏
  • 举报
回复
由于子进程会继承父进程的连接,所以在创建进程之前先使用sqldetach中断子进程的连接,这不会影响父进程的连接,然后在创建的进程内重新建立连接,这样,父、子进程就拥有自己的独立连接了。每个进程都可以有自己的当前连接。
wenlq 2005-01-29
  • 打赏
  • 举报
回复
前贴 我测的情况没有测到 两线程 同时运行的情况。

后来我测了 ,发现与你同样的情况。

我用tlitcp 连接 来connect 两个库连接可以。
wenlq 2005-01-25
  • 打赏
  • 举报
回复
我在 unixware7.11 环境测试了,在线程 pthread_create 前 打开数据库也可以。

在两个线程中分别打开也可以的。
IamDinosaur 2005-01-24
  • 打赏
  • 举报
回复
我用
EXEC SQL connect to 'dbname' as 'conname' with concurrent transaction;
连接啦,还是不行!
wenlq 2005-01-12
  • 打赏
  • 举报
回复
试试 每个线程都独立创建数据库连接。

1,195

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧