以下代码,为什么不能够执行"delete from table1"这样简单的SQL语句的操作,请高手指点,因为找了比较多的贴都没有具本说到是什么原因。
Environment *env;
Connection *conn;
Statement *stmt;/////连接
 char struser[]="system";
char strpwd[]="123qwe";
char strconn_string[]="192.168.20.215:1521/myorcl";
env = Environment::createEnvironment(Environment::OBJECT);  
conn = env->createConnection(struser, strpwd, strconn_string);  
if( NULL != conn )  
    printf("conn success\r\n");
else  
    printf("conn fail\r\n");char strsql[]="DELETE FROM BKWX_SP.ZGDX_SMS_MT_OPER  ";
stmt = conn->createStatement();
stmt->setSQL(strsql);
int count=stmt->executeUpdate();
conn->commit();
conn->terminateStatement(stmt);
env->terminateConnection(conn);
Environment::terminateEnvironment(env);  
return 0;
查询,修改和插入的操作都可以,就单单delete 操作不行,真是急死人了,请指教一下

解决方案 »

  1.   

    查询,修改和插入的操作都可以,就单单delete 操作不行.
    查查数据表的主键,外键设置,是不是有关联的数据要删除
    DELETE FROM BKWX_SP.ZGDX_SMS_MT_OPER constraints
      

  2.   

    什么解决方案?说了不适合你,还不是浪费口舌?
    首先明确你的问题所在,你不能删除,是否捕捉到数据库给你的异常信息、。?
    看你的代码好像连异常都没有捕捉,
    贴出你捕捉到的ORACLE信息就可以比较清晰的定位问题所在了猜想情况:外键,无权限删除,数据库锁,触发器等
      

  3.   

    不管怎么样你先把错误代码打印出来。
    或者你直接在sqlplus里面删除该表看提示什么?否则谁也帮不了你。