比如在VC程序要取得SQL SERVER数据表的行数? 用count? 怎么做才能返回呢?

解决方案 »

  1.   

    用SQL select count(*)
    from tablename
      

  2.   

    SQL
    select count(*) from table
    ADO
    设Recordset的游标为adUseClient,打开记录集, 然后GetRecordCount
      

  3.   

    select count(*) as cc
    from tablenamevc使用ADO的recordset智能指针,得到recordset,就像
    vt=rs->Fields->Item["MsgFormat"]->Value;
    if (vt.vt==VT_NULL)
    {
    sub.nMsgFormat=15;
    }
    else
    {
    sub.nMsgFormat=vt.intVal;
    }
      

  4.   

    格式很麻烦,代码写的比较罗嗦,自己看吧
    _RecordsetPtr rs;
    rs.CreateInstance(__uuidof(Recordset));
    rs->CursorLocation =adUseClient;
    rs->CursorType =adOpenForwardOnly;
    rs->LockType =adLockReadOnly;CString str_sql;
    str_sql.Format("select count(*) as cc from tablename");
    _variant_t vsqlstr=(_variant_t)str_sql;
    if (rs->State!=0)
    {
    rs->Close ();
    } rs->Open (vsqlstr,_variant_t((IDispatch *)conn),adOpenForwardOnly,adLockReadOnly,adCmdText);
    int Lines=0;

    if (rs->adoEOF)
     Lines=0;
    else
    {
        _variant_t vt;
        vt=rs->Fields->Item["cc"]->Value;
        if (vt.vt==VT_NULL)
        {
           Lines=0;
        }
        else
        { 
           Lines=vt.intVal;
        }
    }
      

  5.   

    现在项目用的是ODBC不是API,至于一楼的做法,是不可能的,那是在SQL SERVER查询分析器中的做法.前面见laiyiling老大贴过一个链接的,找不到了.郁闷谢谢各位回复,我加点分.
      

  6.   

    ODBC也可以执行SQL,使用SELECT COUNT(*)的方法是很便捷的,为什么不可能?
      

  7.   

    ODBC也可以执行SQL,使用SELECT COUNT(*)的方法是很便捷的,为什么不可能?
    ///////
    这样得到的行数,用什么保存?
    这条SELECT COUNT(*) 语句必须是一个字符串的,你不可能说 
    LONG raws=0;
    char*p=(char*)"raw=SELECT COUNT(*)...."; 然后执行 SQLExecDirect(.. p...)吧?