CString str;
CDBVariant var; //统计参观人数 paizhao表
int seenumber=0;
Cpaizhao rs(&m_db);
sql.Format("select count(ID) from paizhao");
rs.Open(CRecordset::forwardOnly,sql);

rs.GetFieldValue(short(0),var,SQL_C_SLONG);
if(var.m_dwType!=DBVT_NULL)
seenumber=var.m_iVal;
str.Format("%d",seenumber);
m_seenumber.SetWindowTextA(str);
========以上是代码
Cpaizhao是通过添加类->mfc odbc使用者,绑定到数据源上的。
产生“无效描述符错误”。
怎么解决?谢谢大家了!

解决方案 »

  1.   

    rs.Open(CRecordset::forwardOnly,sql); 
    这一步出错 “Debug assertion failed”
    file:f\rtm\vctools\vc7libs\ship\atlmfc\include\atltime.inl
      

  2.   

    你的m_db变量打开了数据库,初始化了没有?? 另外,你是字段名是否正确??把SQL改成:select count(*) from paizhao再试试
      

  3.   

    初始化了,在init中写了m_db.OpenEx(_T("DSN=Subject;UID=TT;PWD=tt123456"),CDatabase::noOdbcDialog);
    sql给成select count(*) from paizhao 还是一样的错误....
      

  4.   

    是不是所有的SQL都出错? select * from paizhao可以么?
      

  5.   

    select * from paizhao
    结果没有debug assertion failed的错了。
    但运行到getfieldvalue这一步,还是有“无效的描述符”错误。
    我的getfieldvalue使用有问题吗?
      

  6.   

    rs.GetFieldValue(short(0),var,SQL_C_SLONG);
    改成:
    short index = 0;
    rs.GetFieldValue( index, var );试试..
      

  7.   

    ID int
    ID2 int
    Name nchar(10)
    Message nchar(200)
    Image nchar(30)
    Data datetime
      

  8.   

    呵呵,果然,这里面有很多都是系统的字段名,最好不要用它们,会有冲突..比如ID,NAME等.建议你改掉:
    MY_ID int 
    MY_ID2 int 
    MY_Name nchar(10) 
    MY_Message nchar(200) 
    MY_Image nchar(30) 
    MY_Data datetime