如题

解决方案 »

  1.   

    _variant_t vtFld;try
    {
    vtFld = _Recordset->Fields->GetItem(lpFieldName)->Value;
        switch(vtFld.vt)
    {
    case VT_R4:
    val = vtFld.fltVal;
    break;
    case VT_R8:
    val = vtFld.dblVal;
          break;
    case VT_DECIMAL:......这样做.
      

  2.   

    也可以这样:
    _variant_t varValue;
    varValue = _Recroset->GetCollect("字段名");
    varValue中就是你要取得字段中的值。
      

  3.   

    参考一下:
    最关键就是第一句
        _RecordsetPtr ptrRS = m_pConnection->OpenSchema(adSchemaTables);
        if(!ptrRS->BOF)
        {
        CString sName, sNameShort, sSchema;
        int nPos = -1;
        HRESULT hr = S_OK;
        int nIndex = 0;
        
                    hTreeRoot = m_Tree.InsertItem("Tables", 0, 0);                while(!ptrRS->adoEOF)
        {
        sName = CrackStrVariant(ptrRS->GetCollect(L"TABLE_NAME"));

    if("MSys" == sName.Left(4) || "sys" == sName.Left(3) || "编码" == sName.Right(4) || "dt" == sName.Left(2) || "V" == sName.Left(1))
    {
    ptrRS->MoveNext();
    continue;
    }                    sNameShort = sName;
        nPos = sName.Find(';');
        if(nPos != -1)
        sName = sName.Left(nPos);
        if(sName.Find(' ') != -1) // MS SQL Server scenario
       sName = "[" + sName + "]";
        // Alternatively...     sSchema = CrackStrVariant(ptrRS->Fields->GetItem(_variant_t((long)1))->Value);                    //sName += " (" + sSchema + ")";     HTREEITEM hTreeSPRoot = m_Tree.InsertItem(sName, 1, 1, hTreeRoot);
                                        
                        hr = ptrRS->MoveNext();
        if(FAILED(hr))
        _com_issue_error(hr);
        }
        }
                ptrRS = NULL;
        }
      

  4.   

    简化一下
    _RecordsetPtr ptrRS = m_pConnection->OpenSchema(adSchemaTables);
    while(!ptrRS->adoEOF)
    {
        CString sName, sSchema;
        sName = CrackStrVariant(ptrRS->GetCollect(L"TABLE_NAME"));
        sSchema = CrackStrVariant(ptrRS->Fields->GetItem(_variant_t((long)1))->Value);
        hr = ptrRS->MoveNext();
    }

      

  5.   

    哪我想判断数据库中有没有我要的表,表名知道?怎么用ADO实现?
      

  6.   

    j_s_p(大少) :在SQL在有系统表中有
    可以用try{
    Open()
    }cathc()
      

  7.   

    CrackStrVariant()这个函数怎么找不到呢。