rs.ActiveConnection =cnn
rs.open(strsql)

rs.open strsql,cnn

set rs=cnn.execute(strsql)
是等价的.

解决方案 »

  1.   

    rs.open 是ADO方式执行
    CNN.EXECUTE是数据库方式执行
    实际上一般情况下两者是等价的
      

  2.   

    应该是open执行sql语句,然后是把结果数据集取回,execute执行sql语句,不取回数据。
    execute用insert/delete等语句。 Open用select * from your_table等语句。
      

  3.   

    这两个方式不完全等价!!!!!区别1:
    rs.open(strsql),只要你在后面用适当的参数,可以返回可写的结果集。

    set rs=cnn.execute(strsql)
    返回的只能是只读的结果集!!!区别2:
    使用rs.open,必须先创建rs,就是说要先NEW它;
    必须先dim rs as new adodb.recordset
    或者  set rs = new adodb.recordset
    而使用set rs=cnn.execute(strsql),就没有必要先NEW它了。
    只要  dim rs as adodb.recordset
    就可以。