我想问一下有没有相关的函数
SQLTABLES函数在MFC中应该如何使用
以及如何获得表包含的所有字段?
谢谢!

解决方案 »

  1.   

    select * from dbo.sysobjects where OBJECTPROPERTY(id, N'IsUserTable') = 1
      

  2.   

    ado的,你修改一下应该可以的:
    void OpenSchemaX(TCHAR *TableName)
    {
        HRESULT  hr = S_OK; IADORecordBinding   *picRs = NULL;

    _RecordsetPtr pRstSchema("ADODB.Recordset");
    _ConnectionPtr pConnection("ADODB.Connection" );
    pConnection->ConnectionString = TableName;
    pConnection->Provider = "Microsoft.Jet.OLEDB.4.0";   try
        {
    pConnection->Open(pConnection->ConnectionString, "", "", adModeUnknown);
      pRstSchema->QueryInterface(
              __uuidof(IADORecordBinding), (LPVOID*)&picRs);        pRstSchema = pConnection->OpenSchema(adSchemaTables);//枚举表的名称处理        while(!(pRstSchema->EndOfFile))
            {
    CString strTableType;            _bstr_t table_name = pRstSchema->Fields->
                    GetItem("TABLE_NAME")->Value;//获取表的名称            _bstr_t table_type = pRstSchema->Fields->
                    GetItem("TABLE_TYPE")->Value;//获取表的类型
                strTableType.Format("%s",(LPCSTR) table_type);

    if(!lstrcmp(strTableType,_T("TABLE")))
                {
    m_cbTeam.AddString((LPCSTR) table_name);//添加表的名称
    }            pRstSchema->MoveNext();
            }
            // Clean up objects before exit.        pRstSchema->Close();
            pConnection->Close();
        }    catch (_com_error &e)
        {
            // Notify the user of errors if any.
            // Pass a connection pointer accessed from the Connection.        
            PrintProviderError(pConnection);
            PrintComError(e);
        }
    }