| 2343 | } |
| 2344 | |
| 2345 | CString TagArrayToSQL(WizIndex& index, const CWizStdStringArray& arrayTagName) |
| 2346 | { |
| 2347 | CWizStdStringArray arrayWhere; |
| 2348 | // |
| 2349 | CWizTagDataArray arrayAllTag; |
| 2350 | std::set<CString> setAllTag; |
| 2351 | // |
| 2352 | for (CWizStdStringArray::const_iterator it = arrayTagName.begin(); |
| 2353 | it != arrayTagName.end(); |
| 2354 | it++) |
| 2355 | { |
| 2356 | CString strTagName = *it; |
| 2357 | if (strTagName.isEmpty()) |
| 2358 | continue; |
| 2359 | // |
| 2360 | CWizTagDataArray arrayTag; |
| 2361 | index.tagArrayByName(strTagName, arrayTag); |
| 2362 | if (arrayTag.empty()) |
| 2363 | continue; |
| 2364 | // |
| 2365 | for (CWizTagDataArray::const_iterator itTag = arrayTag.begin(); |
| 2366 | itTag != arrayTag.end(); |
| 2367 | itTag++) |
| 2368 | { |
| 2369 | if (setAllTag.find(itTag->strGUID) == setAllTag.end()) |
| 2370 | { |
| 2371 | setAllTag.insert(itTag->strGUID); |
| 2372 | arrayAllTag.push_back(*itTag); |
| 2373 | } |
| 2374 | } |
| 2375 | } |
| 2376 | // |
| 2377 | for (CWizTagDataArray::const_iterator it = arrayAllTag.begin(); |
| 2378 | it != arrayAllTag.end(); |
| 2379 | it++) |
| 2380 | { |
| 2381 | CString strWhere = WizFormatString1("DOCUMENT_GUID in (select distinct DOCUMENT_GUID from WIZ_DOCUMENT_TAG where TAG_GUID ='%1')", it->strGUID); |
| 2382 | arrayWhere.push_back(strWhere); |
| 2383 | } |
| 2384 | // |
| 2385 | if (arrayWhere.empty()) |
| 2386 | return CString(); |
| 2387 | // |
| 2388 | if (arrayWhere.size() == 1) |
| 2389 | { |
| 2390 | return arrayWhere[0]; |
| 2391 | } |
| 2392 | else |
| 2393 | { |
| 2394 | CString strWhere; |
| 2395 | ::WizStringArrayToText(arrayWhere, strWhere, " or "); |
| 2396 | strWhere = WizFormatString1("( %1 )", strWhere); |
| 2397 | return strWhere; |
| 2398 | } |
| 2399 | } |
| 2400 | |
| 2401 | CString FileTypeArrayToSQL(const CWizStdStringArray& arrayFileType) |
| 2402 | { |
no test coverage detected