_RecordsetPtr m_pRecordset("adodb.recordset");
m_pRecordset = m_pConnection->OpenSchema(adSchemaTables);
while(!m_pRecordset->endoffile)
          .....程序报错,说'endoffile' : is not a member of '_Recordset'晕 怎么回事 该怎么处理

解决方案 »

  1.   


    这个忘了说了
    #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","EndOfFile")
      

  2.   

    endoffile这个不对1.导入ado库
    在StdAfx.h中,加入如下代码
    #import "c:\program files\common files\system\ado\msado15.dll"  \
                no_namespace  rename("EOF","adoEOF") rename("BOF","adoBOF")while(!m_pRecordset->->adoEOF)
    http://blog.csdn.net/handsomerun/archive/2006/08/12/1055311.aspx
      

  3.   

    .....
    #这个我是添加的,只是还是不认识.
    还有就是,我想要读取的是用户表的表名,while(!m_pRecordset->->adoEOF)是双箭头?
      

  4.   

    写错了吧
    应该是单箭头
    rename("EOF","EndOfFile")
    rename("EOF","adoEOF")
    就是把EOF用后者代替,防止冲突
      

  5.   

    en  谢谢 这个我知道 
    你前面写的
    _RecordsetPtr pRstSchemaTable("ADODB.Recordset");
    pRstSchemaTable=m_pConn->OpenSchema(adSchemaTables);
    while(!pRstSchemaTable->EndOfFile){
    _bstr_t tableName=pRstSchemaTable->Fields->GetItem("TABLE_NAME")->Value;//读取表名
    _bstr_t tableType=pRstSchemaTable->Fields->GetItem("TABLE_TYPE")->Value;//读出来的不只是表而已^_^
    if(!lstrcmp(str_type,_T("TABLE"))//将表名都读出来,其中{}是该怎么做?然后 读出来所有的名称都按顺序放在tableName里?
      

  6.   

    还有_bstr_t tableName;
    while(!m_pRecordset->EndOfFile)
    {
    tableName =m_pRecordset->Fields->GetItem("TABLE_NAME")->Value;//读取表名
             }
    中的tableName获取表名后是空,表明不能正确获取,是怎么回事,是不是哪错了?
      

  7.   

    不好意思啊 是我太菜了 所以问题特别多我的      _bstr_t tableName;
    while(!m_pRecordset->EndOfFile)
    {
    tableName =m_pRecordset->Fields->GetItem("TABLE_NAME")->Value;//读取表名
             }
    当执行它时出错,如果把while这个循环去掉,是可以获得第一个系统表名的,但是我不知道该怎么样循环获得所有表名.
      

  8.   

    那些我会,ADO数据库的连接查询插入什么的和其他ODBC DAO都类似,我是不知道该怎么通过一个存在变量里的数据库名来查找其所有的用户表名,帮帮忙大哥,谢谢了.
      

  9.   

    请毛毛大虾看看
    http://community.csdn.net/Expert/topic/5747/5747562.xml?temp=.7158319
      

  10.   

    CString DB_PathNam = "E:\\VC\\filebrw\\rb.mdb";  //路径
    CString str;
    str ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + DB_PathName;
    HRESULT hr;
    try
    {
    hr = m_pConnection.CreateInstance("ADODB.Connection");
    if(SUCCEEDED(hr))
    {
    m_pConnection->ConnectionTimeout=3;
    hr = m_pConnection->Open((_bstr_t)str,"","",adModeUnknown);
    }
    }然后就是读取表名了,我的写法是:
    m_pRecordset = m_pConnection->OpenSchema(adSchemaTables);
    _bstr_t table_name;
    table_name = m_pConnection->fields->getitem("table_name")->value;
    CString name;
    name = (char*)(_bstr_t)tableName;
    MessageBox(name);
    但是只会显示第一个表名,不知道该怎么显示所有的表,最好是显示所有的用户表
      

  11.   

    table_name = m_pConnection->fields->getitem("table_name")->value;
    -------------------------------------------------------------------
    是不是应该m_pRecordset->Fields->GetItem("TABLE_NAME")->Value
    一次只能取得记录集中的一条记录
    在用m_pRecordset->MoveNext(),取得第二条记录就可以了吧
      

  12.   

    m_pRecordset->Fields->GetItem("TABLE_NAME")->Value
    m_pConnection->fields->getitem("table_name")->value;
    都出错,'fields' : is not a member of '_Connection'我该添加的都加了 怎么会出这个错
      

  13.   

    因为本来就不应该用m_pConnection->fields啊,把这句去掉
      

  14.   

    只用上面一句报什么错?
    应该不是'fields' : is not a member of '_Connection'吧
      

  15.   

    m_pRecordset->fields->GetItem("TABLE_NAME")->value
    这样的话出错:'fields' : is not a member of '_Recordset'
    晕 昨天还好好的可以读一个表...可能会是什么原因呢?
      

  16.   

    像MSDN中有VB代码":
    Public Sub OpenSchemaX()   Dim cnn1 As ADODB.Connection
       Dim rstSchema As ADODB.Recordset
       Dim strCnn As String
          
       Set cnn1 = New ADODB.Connection
          strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
       cnn1.Open strCnn
          
       Set rstSchema = cnn1.OpenSchema(adSchemaTables)
       
       Do Until rstSchema.EOF
          Debug.Print "Table name: " & _
             rstSchema!TABLE_NAME & vbCr & _
             "Table type: " & rstSchema!TABLE_TYPE & vbCr
          rstSchema.MoveNext
       Loop
       rstSchema.Close
       
       cnn1.Close
       
    End Sub
    但是不知道该怎么用VC来写.
      

  17.   

    m_pRecordset->fields->GetItem("TABLE_NAME")->value
    这样的话出错:'fields' : is not a member of '_Recordset'
    晕------------居然是大小写问题
      

  18.   

    我想问一下,我用这条语句:
    _bstr_t tableType tableType=m_Recordset->Fields->GetItem("TABLE_TYPE")->Value;
    为什么结果是access type table,我怎么才能获得表中属性的名称和类型呀?谢谢了!