/*---------------------------------------------------------------------------------------------- This method checks for duplicates in list names. If the given name exists then return true. @param pszName name to check to see if it exists. @return True if name already exists. ----------------------------------------------------------------------------------------------*/ bool ListsPropDlg::CheckName(const achar * pszName) { AfMainWnd * pafw = MainWindow(); AssertPtr(pafw); AfLpInfo * plpi = pafw->GetLpInfo(); AssertPtr(plpi); Vector<HVO> & vhvo = plpi->GetPsslIds(); AfDbInfoPtr qdbi = plpi->GetDbInfo(); AssertPtr(qdbi); IOleDbEncapPtr qode; qdbi->GetDbAccess(&qode); StrAnsi sta; int i; StrUni stuIds; int cv = vhvo.Size(); Assert(cv); ComBool fIsNull; ComBool fMoreRows; ULONG cbSpaceTaken; IOleDbCommandPtr qodc; const int kcchBuffer = MAX_PATH; OLECHAR rgchName[kcchBuffer]; HVO hvo; StrUni stu; for (i = 0; i < cv; ++i) { hvo = vhvo[i]; stu.Format(L"exec GetOrderedMultiTxt '%d', %d", hvo, kflidCmMajorObject_Name); CheckHr(qode->CreateCommand(&qodc)); CheckHr(qodc->ExecCommand(stu.Bstr(), knSqlStmtStoredProcedure)); CheckHr(qodc->GetRowset(0)); CheckHr(qodc->NextRow(&fMoreRows)); Assert(fMoreRows); // This proc should always return something. CheckHr(qodc->GetColValue(1, reinterpret_cast <BYTE *>(rgchName), kcchBuffer * isizeof(OLECHAR), &cbSpaceTaken, &fIsNull, 2)); sta = rgchName; if (hvo != m_hvoObj && sta.Equals(pszName)) return false; } return true; }