我的应用是这样的,有多个连接,每个连接都有对表的处理,且可能是并发的。
我现在通过定义db_link_name数组实现多个连接
sprintf((char *)buf,"oracle%d",Connect_Num);
strcpy((char *)db_link_name[Connect_Num],buf);
EXEC SQL CONNECT :usr_name IDENTIFIED BY :pass_word 
AT :db_link_name[Connect_Num] USING :server_name; 对于每个连接的处理:
EXEC SQL AT :db_link_name[0] PREPARE SS FROM :dyn_statement;
EXEC SQL AT :db_link_name[0] PREPARE SS FROM :dyn_statement;
EXEC SQL AT :db_link_name[0] OPEN CC USING DESCRIPTOR bind;
        EXEC SQL AT :db_link_name[0] COMMIT WORK;
如果一直这样串行处理则没有问题,但是并发执行则不行,是不是因为我的ss和cc没有根据db_link_name的不同而不同呢?但是好像不能定义ss和cc数组! EXEC SQL DECLARE CC[] CURSOR FOR SS[];会报错的比如: 
EXEC SQL AT :db_link_name[0] PREPARE SS FROM :dyn_statement;
EXEC SQL AT :db_link_name[1] PREPARE SS FROM :dyn_statement;//到这里就已经出问题了,提示prepare无效或open无效。
EXEC SQL AT :db_link_name[0] PREPARE SS FROM :dyn_statement;
EXEC SQL AT :db_link_name[1] PREPARE SS FROM :dyn_statement;
EXEC SQL AT :db_link_name[0] OPEN CC USING DESCRIPTOR bind;
EXEC SQL AT :db_link_name[1] OPEN CC USING DESCRIPTOR bind;
请大家帮帮我,谢谢,急死我了!