我用
CDaoDatabase dao_db;
dao_db.Open("",FALSE,FALSE,"ODBC;");
连接上sqlserver2000数据库,
可以成功执行
dao_db.Execute("insert into TableName values ('','')");可是执行
dao_db.Execute("update TableName set field1=var where field2=1");
dao_db.Execute("delete from TableName where field2=1");
时,总是抛出例外,
错误类型为:SQL_INVALID_HANDLE;
这到底是怎么回事呀,是数据库设置问题,还是程序参数问题。
急!

解决方案 »

  1.   

    错误类型为:SQL_INVALID_HANDLE;是句柄错误,说明指向dao_db有问题,
    但是还有可能是("update TableName set field1=var where field2=1")
    数据库更新语句有错误,告诉你一个绝招:
    CString strSQL;
    strSQL.Format(("update TableName set field1=var where field2=1")
    MessageBox(strSQL);
    可以在调试和运行时看见更新语句,如果不知道这句是写错了还是对了,
    打开SQL Server查询分析器,或找到要更改的表,单击右建,选择"打开表"
    --“查询”,把update TableName set field1=var where field2=1靠到
    查询分析其中执行,能执行就说明语句没错。等分中,呵呵 
      

  2.   

    DAO是微软专为Acess做的,
    如果通过ODBC方式,用CDatabase更合适
      

  3.   

    还要提醒你,如果你开发与SQL SEVER有关的程序,是要对Micorsoft负版权费的。
    除非你不会被发现。
    而用ACCESS这些小数据库就没有关系。