我有个项目是用动态链接库访问数据库的,动态链接库需要被多线程调用,程序前段时间已经做完了(用BDE连接数据库),现正在试用着,但我有点不放心,怕我先前采用的方法不能很好的支持多线程(100个以上),现在想用Pro *C再做一个,想请教一下:
1、数据库是Oracle 9i的,但客户端是Oracle 7的(客户端是别人的机器,不敢轻易改动),在使用Pro *C写程序时,是否还要自己考虑线程方面的问题?
2、Pro *C和Pro *C++比起来有差别吗?程序体积、可靠性方面?
1、数据库是Oracle 9i的,但客户端是Oracle 7的(客户端是别人的机器,不敢轻易改动),在使用Pro *C写程序时,是否还要自己考虑线程方面的问题?
2、Pro *C和Pro *C++比起来有差别吗?程序体积、可靠性方面?
解决方案 »
- update语句出现ORA-00001: 违反唯一约束条件 怎么解决?
- 请教:动态创建oracle序列,使用时提示序列不存在
- 急\!用puls 在oracle中的导库问题
- 按日期分组
- Oracle 企业管理器 启动问题!!!!
- 关于update的问题,请高手指教
- 高手请进:Java中如何执行“show parameters;”这样的语句[在线等]
- 请教一下关于PL/SQL的两个问题
- 菜鸟问题,如何自动带出最后三次保存的值
- 新人问下简单的建表问题...
- 如何让Oracle启动时自动加载自定义的初始化参数配置文件
- 我在LINUX上装了ORACLE 8。1。7,但上面没带PROC预编译器,问,怎么安装PROC编译器
第一种作法是:
EXEC SQL ENABLE THREADS;
对多线程环境进行初始化,
其次,要建立sqlca会话环境,你需要调用
EXEC SQL CONTEXT ALLOCATE ctxName来初始化所有的sqlca环境,
然后在调用任何pl/sql or sql语句前用
EXEC SQL CONTEXT USE ctxName来绑定sqlca环境,如果你只建立了一个sqlca,就必须使用互斥,否则出错将会是oracle的一个定时炸弹。
在程序退出时记住要释放sqlca环境变量,否则可能会引起其它副作用...
把所有线程的数据库访问串行化,让它们排者队来处理,这样做绝对安全,但
效率恐怕不好。我想向数据库里插50万条记录,来试一下完成一个任务需要
多少时间,如果不超过0.1秒的话可以考虑采用后一种方法。