代码如下:
CDatabase dbconn;
CRecordset rc(&dbconn);
CString ConnectString= "ODBC";
CString sql = "select * from table1";
dbconn.OpenEx(ConnectString);
rc.Open(CRecordset::snapshot,sql);
rc.MoveFirst();
while(!rc.IsEOF())
{
rc.MoveNext();
}输入用户名密码登陆数据库后,出现错误“要支持快照功能,ODBC静态游标是必要的”
是怎么会事,请高手指点我这个菜鸟。

解决方案 »

  1.   

    我认为代码没有问题,(你用的不是ACCESS吧),应该是数据库设置的问题
      

  2.   

    数据库是SYBASE11.5。需要怎么设置呢
      

  3.   

    CDatabase dbconn;
    CRecordset rc(&dbconn);CString sql;
    sql.Format("select * from table1");
    rc.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
    if(rc.GetRecordCount()!=0)
       rc.MoveFirst();
    while(!rc.IsEOF())
    {
    rc.MoveNext();
    }
    在使用ODBC时已经建立了与库的映射,从而
    CString ConnectString= "ODBC";
    dbconn.OpenEx(ConnectString);时不必要的。
    我的做法,不知道这样行不行
      

  4.   

    to Akagg:
       不用 ConnectString ,怎么知道和哪个库连啊。
      

  5.   


    rc.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
      

  6.   

    to gxingmin:
        提示也是一样的。用dynaset,提示ODBC不支持动态结果集。
      

  7.   

    按照Akagg()所说去掉了openEx()那一句,不会出现ODBC的错误了,
     但是提示“在调用SQLFetchScroll/SQLExtendedFetch之前列没有绑定数据列”
     是怎么会事呢?