这样的语句是不行的:
CString strSQL;
strSQL.format("delete from table1 where rid=%d;\
               delete from table2 where rid=%d",rid,rid);
这样的语句也不行:
CString strSQL;
strSQL.format("delete from table1 where rid=%d;\n\
               delete from table2 where rid=%d",rid,rid);
发现oracle中不同的操作语句必须以;结束,并要换行,问题是第二种我已经换行了。并且在执行这个查询之前我把format之后的strSQL复制到oracle的sqlplus里也可以执行,但能过设置ado的commandtext值行却不行.应该怎么写这样的多操作语句??

解决方案 »

  1.   

    楼主可以用BatchUpdate来实现。
      

  2.   

    batchupdate只能用来刷新对当前的记录的操作结果的吧,我这个是要通过sql语句来执行,方式不一样的。
      

  3.   

    你就不能这么写。一定要分两次来写,如果一定要同时完成就用transaction.
      

  4.   

    发现oracle中不同的操作语句必须以;结束,并要换行,问题是第二种我已经换行了。并且在执行这个查询之前我把format之后的strSQL复制到oracle的sqlplus里也可以执行,但能过设置ado的commandtext值行却不行.
    ---------------------------
    你的认为是错的,你所说的分号是sqlplus的符号,不是oracle的符号。
    所以即使你单单执行delete from table1 where rid=%d;这一句也是不对的。