如果存在我就不创建 避免出错 SQL语句怎么写我用的是ACCESSmyado.m_pRecordset = myado.m_pCommand->Execute(&vNULL,&vNULL,adCmdText);里面的adCmdText
和返回什么

解决方案 »

  1.   

    ADOX Tables对象里面有Table集合的,判断下在不在其中也可以得知
      

  2.   

    if exists(select * from sysobjects where id=object_id(' prhelloworld‘) and objectproperty (id,'isprocedure')=1)    ;prhelloworld为表名
      

  3.   

    SELECT * FROM MsysObjects WHERE [Name]="myTable"
      

  4.   

    下面代码适用于MSSQL、Access(oracle未用过) 
       enum DB_OBJECT_TYPE
        {
            DB_TABLE,
            DB_PROCEDURE
        };//用于判断某张数据库表是否在数据库中存在
    BOOL CADOConnection::FindDBObjectByName(CString lpObjName,enum DB_OBJECT_TYPE objType)
    {
        ADODB::_RecordsetPtr ds;
        _variant_t vtFld;
        CString strTableName,strColumnName;    switch(objType)
        {
        case DB_TABLE:
            ds=m_pConnectionPtr->OpenSchema(ADODB::adSchemaTables);
            strColumnName=_T("TABLE_NAME");
         break;
        case DB_PROCEDURE:
            ds=m_pConnectionPtr->OpenSchema(ADODB::adSchemaProcedures);
            strColumnName=_T("PROCEDURE_NAME");
            lpObjName += _T(";1");
            break;
        default:
            break;
        }    if (ds->adoEOF!=VARIANT_TRUE)
        {
            ds->MoveFirst();
            while (ds->adoEOF!=VARIANT_TRUE)
            {
                vtFld=ds->GetFields()->GetItem((_variant_t)strColumnName)->Value;
                strTableName = vtFld.bstrVal;
                if( strTableName==lpObjName )
                    return true;
                ds->MoveNext();
            }
        }
        return false;
    }