//--------------------------------------------------------------------------- __fastcall TFormReport::TFormReport(TComponent* Owner, TMyFields fields, AnsiString QueryString, AnsiString filename, bool hidePokupatel, bool hideDate) : TForm(Owner) { id_partner = -1; a = true; DateEnd->Date = Date(); DateStart->Date = Date(); Report = new TFReport(); Fields = fields; QueryStr = QueryString; ReportFileName = filename; FrameList1->Query = CreateQuery(this, DateReplace(QueryString), true); FrameList1->Query->Name = "NaklDS"; FrameList1->Query->OnFilterRecord = IBQuery1FilterRecord; Refresh(); FrameList1->Query->Filtered = true; if(hidePokupatel){ EditPartner->Visible = false; cxLabel3->Visible = false; EditGroup->Top = EditPartner->Top; EditGroup->Top = EditPartner->Top; cxLabel1->Top = cxLabel3->Top; } if(hideDate){ DateStart->Visible = false; DateEnd->Visible = false; } // DateEnd->Properties->OnChange = DateChange; // DateStart->Properties->OnChange = DateChange; }
//--------------------------------------------------------------------------- // Змінює дані строки в таблиці. //--------------------------------------------------------------------------- bool UpdateTable(AnsiString tname, int identity, TMyColumns args, AnsiString id_name) { bool rezult = true; TMyColumns::iterator iter; AnsiString str = "update "+tname+" set "; unsigned int i=0; for(iter = args.begin(); iter != args.end(); ++iter) { str += iter->first + "=:p_"+iter->first + (i == args.size()-1?" ":", "); i++; } str += " where "+((id_name == NULL)? ("ID_" + tname) : id_name)+" = :p_ID_"+tname; TIBQuery *q = CreateQuery(0, str, false); i=0; for(iter = args.begin(); iter != args.end(); ++iter) { q->ParamByName("p_"+iter->first)->Value = iter->second; i++; } try{ if(identity > 0) { q->ParamByName("p_ID_"+tname)->Value = identity; q->ExecSQL(); q->Transaction->Commit(); }else{ rezult = false; } }catch(...){ rezult = false; } delete q; return rezult; }
//--------------------------------------------------------------------------- __fastcall TPartnerListForm::TPartnerListForm(TComponent* Owner, TPartnerType pt) : TForm(Owner) { FrameList1->Query = CreateQuery(this, "select id_partner, namepartner, saldo, info from Partner", true); Refresh(); switch (pt) { case ptPokupec: RadioButtonPokupec->Checked = true; RadioButtonPostach->Enabled = false; RadioButtonRashod->Enabled = false; break; case ptPostach: RadioButtonPostach->Checked = false; RadioButtonPostach->Checked = true; RadioButtonPokupec->Enabled = false; RadioButtonRashod->Enabled = false; break; case ptRashod: RadioButtonPokupec->Enabled = false; RadioButtonPostach->Enabled = false; RadioButtonRashod->Checked = true; break; case ptAll: RadioButtonPostach->Checked = false; RadioButtonPostach->Checked = true; break; } }
//--------------------------------------------------------------------------- // Удаляє строку з таблиці. //--------------------------------------------------------------------------- bool DeleteFromTable(AnsiString tname, int identity,bool message, AnsiString id_name ) { bool rezult = true; bool del = false; if(message) { if(MessageDlg("Ви дійсно хочете знищити запис?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes) { del = true; } }else{ del = true; } TIBQuery *q = CreateQuery(0, "delete from "+tname+" where "+((id_name == NULL)? ("ID_" + tname) : id_name)+" = "+IntToStr(identity) , false); try { if(del){ q->ExecSQL(); q->Transaction->Commit(); }else{ rezult = false; } }catch(...){ rezult = false; } delete q; return rezult; }
//--------------------------------------------------------------------------- // Вставляє стоку в таблицю. //--------------------------------------------------------------------------- int InsertIntoTable(AnsiString tname, TMyColumns args) { int rezult = true; TMyColumns::iterator iter; AnsiString str = "insert into "+tname+" ("; AnsiString str_p = " values ("; unsigned int i=0; for(iter = args.begin(); iter != args.end(); ++iter) { str += iter->first + (i == args.size()-1?" ) ":", "); str_p += ":p_"+iter->first + (i == args.size()-1?" ) ":", "); i++; } str += str_p; TIBQuery *q = CreateQuery(0, str, false); for(iter = args.begin(); iter != args.end(); ++iter) { q->ParamByName("p_"+iter->first)->Value = iter->second; i++; } try{ q->ExecSQL(); q->Transaction->Commit(); // q->SQL->Clear(); // q->SQL->Add( "select @@identity as 'id'" ); // q->Open(); // rezult = q->FieldByName("id")->AsInteger; rezult = 0; }catch(...){ rezult = false; } delete q; return rezult; }
//---------------------------------------------------------------------------- void PointInPolyhedron::CreateScene () { mScene = new0 Node(); mWireState = new0 WireState(); mRenderer->SetOverrideWireState(mWireState); // Create a semitransparent sphere mesh. VertexFormat* vformatMesh = VertexFormat::Create(1, VertexFormat::AU_POSITION, VertexFormat::AT_FLOAT3, 0); TriMesh* mesh = StandardMesh(vformatMesh).Sphere(16, 16, 1.0f); Material* material = new0 Material(); material->Diffuse = Float4(1.0f, 0.0f, 0.0f, 0.25f); VisualEffectInstance* instance = MaterialEffect::CreateUniqueInstance( material); instance->GetEffect()->GetAlphaState(0, 0)->BlendEnabled = true; mesh->SetEffectInstance(instance); // Create the data structures for the polyhedron that represents the // sphere mesh. CreateQuery(mesh); // Create a set of random points. Points inside the polyhedron are // colored white. Points outside the polyhedron are colored blue. VertexFormat* vformat = VertexFormat::Create(2, VertexFormat::AU_POSITION, VertexFormat::AT_FLOAT3, 0, VertexFormat::AU_COLOR, VertexFormat::AT_FLOAT3, 0); int vstride = vformat->GetStride(); VertexBuffer* vbuffer = new0 VertexBuffer(1024, vstride); VertexBufferAccessor vba(vformat, vbuffer); Float3 white(1.0f, 1.0f, 1.0f); Float3 blue(0.0f, 0.0f, 1.0f); for (int i = 0; i < vba.GetNumVertices(); ++i) { Vector3f random(Mathf::SymmetricRandom(), Mathf::SymmetricRandom(), Mathf::SymmetricRandom()); vba.Position<Vector3f>(i) = random; if (mQuery->Contains(random)) { vba.Color<Float3>(0, i) = white; } else { vba.Color<Float3>(0, i) = blue; } } DeleteQuery(); mPoints = new0 Polypoint(vformat, vbuffer); mPoints->SetEffectInstance(VertexColor3Effect::CreateUniqueInstance()); mScene->AttachChild(mPoints); mScene->AttachChild(mesh); }
//--------------------------------------------------------------------------- int __fastcall TDocPrihod::GetNewNomer() { int result = -1; TIBQuery * q = CreateQuery(0, "select gen_id(gen_nomer_prihod,1) from rdb$database", true); if(!q->FieldByName("gen_id")->IsNull) result = q->FieldByName("gen_id")->AsInteger; FNomer = result; return result; }
unsigned int Database::Rewrite() { std::string new_filename(m_filename); new_filename += ".new"; FILE *f = fopen(new_filename.c_str(), "w+"); if (!f) { TRACE << "Can't write timer database: " << errno << "\n"; return (unsigned)errno; } fprintf(f, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); fprintf(f, "<timerdb>\n"); db::QueryPtr qp = CreateQuery(); qp->Where(qp->Restrict(tv::epg::STATE, db::NE, tv::epg::NONE)); for (db::RecordsetPtr rs = qp->Execute(); rs && !rs->IsEOF(); rs->MoveNext()) { unsigned int state = rs->GetInteger(tv::epg::STATE); if (state == NONE || state == CANCELLED) continue; fprintf(f, "<record><id>%u</id>" "<title>%s</title>" "<description>%s</description>" "<start>%u</start>" "<end>%u</end>" "<channel>%u</channel>" "<state>%s</state></record>\n", rs->GetInteger(ID), util::XmlEscape(rs->GetString(TITLE)).c_str(), util::XmlEscape(rs->GetString(DESCRIPTION)).c_str(), rs->GetInteger(START), rs->GetInteger(END), rs->GetInteger(CHANNEL), statemap[state]); } fprintf(f, "</timerdb>\n"); if (ferror(f)) { fclose(f); unlink(new_filename.c_str()); return (unsigned)errno; } fclose(f); int rc = ::rename(new_filename.c_str(), m_filename); if (rc) return (unsigned)errno; return 0; }
//--------------------------------------------------------------------------- float __fastcall TKassa::GetOplataNakladna(int Nomer, int Partner) { float result = 0; TIBQuery * q = CreateQuery(NULL, " select sum(suma) sumaoplata from kassa where typedok = 2 and nomerdok = " + IntToStr(Nomer)+ " and id_partner = "+IntToStr(Partner),true); result = q->FieldByName("sumaoplata")->AsFloat; delete q; return result; }
//--------------------------------------------------------------------------- void __fastcall TDocPrihod::Delete() { if(MessageDlg("¬и действительно хотите удалить целый документ?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes) { TIBQuery * q = CreateQuery(0, "delete from prihod where nomer = " + IntToStr(FNomer), true); delete q; } }
//--------------------------------------------------------------------------- void TRashod::Fill(int id) { TIBQuery * q = CreateQuery(0, "select * from rashod where id_rashod="+IntToStr(id),true); FID_Rashod = q->FieldByName("ID_Rashod")->AsInteger; FID_Partner = q->FieldByName("ID_Partner")->AsInteger; FCina = q->FieldByName("Cina")->AsFloat; FKilxkist = q->FieldByName("Kilxkist")->AsFloat; FID_Tovar = q->FieldByName("ID_Tovar")->AsInteger; FNomer = q->FieldByName("Nomer")->AsInteger; FDataDok = q->FieldByName("datadok")->AsDateTime; }
//--------------------------------------------------------------------------- void __fastcall TKassa::Fill(int id) { TIBQuery * q = CreateQuery(0, "select * from kassa where id_kassa="+IntToStr(id),true); FID_Kassa = q->FieldByName("id_kassa")->AsInteger; FID_Partner = q->FieldByName("ID_Partner")->AsInteger; FSuma = q->FieldByName("Suma")->AsFloat; FTypeDok = (TTypeDok)q->FieldByName("TypeDok")->AsInteger; FNomerDok = q->FieldByName("NomerDok")->AsInteger; FData = q->FieldByName("Data")->AsDateTime; FComment = q->FieldByName("Comment")->AsString; FPartner = new TPartner(q->FieldByName("id_partner")->AsInteger); delete q; }
bool Connection::Exists( std::string const& tn ) { bool rtv = false; if( !qExists ) { qExists = CreateQuery( "SELECT count(*) FROM sqlite_master WHERE type = 'table' AND name = ?" ); } ( *qExists ).Add( tn ); qExists->Execute( [ &]( Sqlite::DataReader& dr ) { rtv = dr.ReadInt32() > 0; } ); return rtv; }
//--------------------------------------------------------------------------- void TDocPrihod::Fill(int nomer) { TIBQuery * q = CreateQuery(0, "select nomer, datadok, id_partner, sum(kilxkist*cina) as suma from prihod where nomer = " +IntToStr(nomer)+ " group by nomer, datadok, id_partner" ,true); FDataDok = q->FieldByName("datadok")->AsDateTime; FNomer = nomer; FSuma = q->FieldByName("suma")->AsFloat; if(!FPartner) FPartner = new TPartner(q->FieldByName("id_partner")->AsInteger); }
// @cmember Retrieves the query which was passed to the tag. CCFXQuery* CCFXRequestImpl::GetQuery() { // Query _request.getQuery() jmethodID getQuery = _env->GetMethodID( _env->GetObjectClass( _request ), "getQuery", "()Lcom/allaire/cfx/Query;" ); if ( getQuery == NULL ) throw new CCFXExceptionImpl( "Failed to get _request.getQuery() method", "CCFXRequestImpl::GetQuery" ); jobject query = _env->CallObjectMethod( _request, getQuery ); if ( query == NULL ) return NULL; return CreateQuery( query ); }
//--------------------------------------------------------------------------- __fastcall TPrihodForm::TPrihodForm(TComponent* Owner, TDocPrihod * doc) : TDocumentForm(Owner) { Report = new TFReport(); Document = doc; DocToForm(); FrameList1->Query = CreateQuery(this, "select p.id_prihod, p.id_tovar,t.kod, t.nametovar,p.kilxkist, p.cina " " from Tovar t, Prihod p " " where p.nomer = "+IntToStr(Document->Nomer)+ " and p.id_tovar = t.id_tovar" ,true); FrameList1->Query->Name = "PrihodDS"; Refresh(); }
// @cmember Adds a query to the template which contains this tag. CCFXQuery* CCFXRequestImpl::AddQuery( LPCSTR lpszName, CCFXStringSet* pColumns ) { if ( ( lpszName == NULL ) || ( pColumns == NULL ) ) return NULL; // Query _response.addQuery( String name, String[] columns ) jmethodID addQuery = _env->GetMethodID( _env->GetObjectClass( _response ), "addQuery", "(Ljava/lang/String;[Ljava/lang/String;)Lcom/allaire/cfx/Query;" ); if ( addQuery == NULL ) throw new CCFXExceptionImpl( "Failed to get _response.addQuery() method", "CCFXRequestImpl::AddQuery" ); jobjectArray columns = ((CCFXStringSetImpl*)pColumns)->ToJavaObjectArray( _env ); jstring name = _env->NewStringUTF( lpszName ); return CreateQuery( _env->CallObjectMethod( _response, addQuery, name, columns ) ); }
BOOL CLController::Restore( void ) { // 모든 군주 시스템 협력 객체들의 복원 CQuery* pQuery = CreateQuery(); if( !pQuery ) return FALSE; CTElection* pElection = static_cast<CTElection*>( m_pLord->GetElection() ); CLEvent* pEvent = static_cast<CLEvent*>( m_pLord->GetEvent() ); CTLordSkill* pSkills = static_cast<CTLordSkill*>( m_pLord->GetSkills() ); if( m_pLord->Restore( pQuery ) && pElection->Restore( pQuery ) && pEvent->Restore( pQuery ) && pSkills->Restore( pQuery ) ) { SAFE_DELETE( pQuery ); return TRUE; } SAFE_DELETE( pQuery ); return FALSE; }
void CDbController::DbHandler( void ) { CQuery* pQuery = CreateQuery(); if( !pQuery ) return; SetQueryObject( pQuery ); BOOL bReturnValue = FALSE; DWORD dwBytesTransferred = 0; DWORD dwCompletionKey = 0; LPDB_OVERLAPPED_PLUS pov = NULL; while( 1 ) { bReturnValue = ::GetQueuedCompletionStatus( m_hIocp, &dwBytesTransferred, &dwCompletionKey, (LPOVERLAPPED*)&pov, INFINITE ); if( FALSE == bReturnValue ) { ASSERT( 0 ); } if( dwBytesTransferred == 0 ) { SAFE_DELETE( pQuery ); return; } if( pov->nQueryMode == eTimer ) OnTimer(); Handler( pov, dwCompletionKey ); // mulcom BEGIN100415 DB_OVERLAPPED_PLUS 메모리 풀 사용. SAFE_DELETE_ARRAY( pov->lpBuf ); // mulcom END100415 DB_OVERLAPPED_PLUS 메모리 풀 사용. SAFE_DELETE( pov ); } }
//--------------------------------------------------------------------------- __fastcall TNakladnaForm::TNakladnaForm(TComponent* Owner, TDocRashod * doc) : TDocumentForm(Owner) { Report = new TFReport(); Document = doc; DocToForm(); FrameList1->Query = CreateQuery(this, "select r.id_rashod, r.id_tovar,t.kod, t.nametovar,r.kilxkist, t.cinaprodazh, r.cina " " from Tovar t, Rashod r " " where r.nomer = "+IntToStr(Document->Nomer)+ " and r.id_tovar = t.id_tovar order by r.id_rashod" ,true); FrameList1->Query->Name = "NakDS"; TRashod * r = new TRashod(FrameList1->Query->FieldByName("id_rashod")->AsInteger); TTovar * t = new TTovar(r->ID_Tovar,Document->Partner->ID_Partner); if(t->CinaProdazh != 0) cxSpinEditProcent->Value = Round(((t->CinaProdazh - r->Cina)/t->CinaProdazh)*100,0); delete r; delete t; Refresh(); }
BOOL CCoupleController::Restore() { CQuery* pQuery = CreateQuery(); if( !pQuery ) return FALSE; if( !pQuery->Execute( "uspRestoreCouple %d", g_appInfo.dwSys ) ) { Error( "couldn't execute uspRestoreCouple" ); return FALSE; } while( pQuery->Fetch() ) { int nExperience = pQuery->GetInt( "nExperience" ); u_long idFirst = pQuery->GetInt( "idFirst" ); u_long idSecond = pQuery->GetInt( "idSecond" ); CCouple* pCouple = new CCouple( idFirst, idSecond ); m_pHelper->Couple( pCouple ); pCouple->AddExperience( nExperience ); } pQuery->Clear(); if( !pQuery->Execute( "uspRestorePropose %d", g_appInfo.dwSys ) ) { Error( "couldn't execute uspRestorePropose" ); return FALSE; } while( pQuery->Fetch() ) { u_long idProposer = pQuery->GetInt( "idProposer" ); time_t tPropose = pQuery->GetInt( "tPropose" ); bool bResult = m_pHelper->AddPropose( idProposer, tPropose ); ASSERT( bResult ); } SAFE_DELETE( pQuery ); return FALSE; }
SQLHSTMT ODBC::ExecuteSql( const char* sqltext, const char* format, ... ) { int ior; // 0 - in, 1 - out, 2 - ret, возращаемое значение процедурой int inum = 1, // номер входного параметра onum = 1; // номер выходного параметра SQLSMALLINT typeSql, // тип параметра дл¤ базы данных typeCpp; // тип параметра дл¤ c++ SQLUINTEGER clnsz; // размер пол¤ дл¤ некоторых типов SQLSMALLINT digits; // чисел после зап¤той дл¤ некоторых типов SQLLEN sqlNTS = SQL_NTS; //строка завершаетс¤ 0 SQLLEN sqlNullData = SQL_NULL_DATA; //передаем Null int tsz; // размер типа в байтах va_list va; va_start( va, format ); SQLHSTMT qr = CreateQuery(sqltext); while( format && *format ) { while( *format == ' ' ) format++; switch( *format++ ) { case 'i': ior = 0; break; case 'o': ior = 1; break; case 'r': ior = 2; break; case '!': ior = -1; break; } typeCpp = 0; clnsz = 0; digits = 0; bool null = false; SQLPOINTER ptr = va_arg( va, SQLPOINTER ); SQLLEN* strLenOrNull = 0; if( ior >= 0 ) { // если надо дл¤ получаемых данных узнать их длину или узнать, равно ли это // значение NULL (длина = -1) if( *format == '0' ) format++, null = true; switch( *format++ ) { case 'b': typeSql = SQL_CHAR; typeCpp = SQL_C_UTINYINT; tsz = sizeof(char); break; case 'c': typeSql = SQL_CHAR; typeCpp = SQL_C_STINYINT; tsz = sizeof(char); break; case 'i': typeSql = SQL_INTEGER; typeCpp = SQL_C_SLONG; tsz = sizeof(int); break; case 'u': switch( *format++ ) { case ' ': case 0 : typeSql = SQL_INTEGER; typeCpp = SQL_C_ULONG; tsz = sizeof(int); break; case 'h': typeSql = SQL_SMALLINT; typeCpp = SQL_C_USHORT; tsz = sizeof(short); break; } break; case 'd': typeSql = SQL_DOUBLE; typeCpp = SQL_C_DOUBLE; tsz = sizeof(double); break; case 'f': typeSql = SQL_REAL; typeCpp = SQL_C_FLOAT; tsz = sizeof(float); break; case 's': typeSql = SQL_CHAR; typeCpp = SQL_C_CHAR; clnsz = tsz = gettsz(&format); strLenOrNull = &sqlNTS; break; case 'h': typeSql = SQL_SMALLINT; typeCpp = SQL_C_SSHORT; tsz = sizeof(short); break; case 't': typeSql = SQL_TYPE_TIMESTAMP; typeCpp = SQL_TYPE_TIMESTAMP; tsz = sizeof(TIMESTAMP_STRUCT); if( ((TIMESTAMP_STRUCT*)ptr)->year == 0 ) strLenOrNull = &sqlNullData; break; case 'r': typeSql = SQL_LONGVARBINARY; typeCpp = SQL_C_BINARY; clnsz = tsz = gettsz(&format); break; } } // если возращаемое значение равно NULL, то его длина равна -1, поэтому нужно // в таких случа¤х об¤зательно передавать указатель дл¤ сохранени¤ длины, иначе // при встрече NULL ODBC выдаст ошибку SQLLEN* len = null ? va_arg( va, SQLLEN* ) : &lenForNull; if( ior == 0 && null ) strLenOrNull = len; switch( ior ) { case -1: break; case 0: if( (int)pSQLBindParameter( qr, inum++, SQL_PARAM_INPUT, typeCpp, typeSql, clnsz, digits, ptr, 0, strLenOrNull ) == SQL_ERROR ) { DBG( "ODBC", "Error in param %d" ); } break; case 1: pSQLBindCol( qr, onum++, typeCpp, ptr, tsz, len ); break; case 2: pSQLBindParameter( qr, inum++, SQL_PARAM_OUTPUT, typeCpp, typeSql, clnsz, digits, ptr, 0, 0 ); break; } } va_end(va); if( (SQLRETURN)pSQLExecute(qr) != SQL_ERROR ) if( onum > 1 ) //есть выходные пол¤ { if( NextRow(qr) ) return qr; } else return qr; PrintQueryError(qr); CloseQuery(qr); return 0; }
/** * Give the async task time to do its work * Can only be called on the async task manager thread */ void FOnlineAsyncTaskSteamFindServerBase::Tick() { ISteamUtils* SteamUtilsPtr = SteamUtils(); check(SteamUtilsPtr); if (!bInit) { SteamMatchmakingServersPtr = SteamMatchmakingServers(); check(SteamMatchmakingServersPtr); int32 NumFilters = 0; MatchMakingKeyValuePair_t* Filters = NULL; CreateQuery(&Filters, NumFilters); #if DEBUG_STEAM_FILTERS for (int32 FilterIdx=0; FilterIdx<NumFilters; FilterIdx++) { UE_LOG_ONLINE(Verbose, TEXT(" \"%s\" \"%s\" "), UTF8_TO_TCHAR(Filters[FilterIdx].m_szKey), UTF8_TO_TCHAR(Filters[FilterIdx].m_szValue)); } #endif if (SearchSettings->MaxSearchResults <= 0) { UE_LOG_ONLINE(Warning, TEXT("FOnlineAsyncTaskSteamFindServerBase::Tick - SearchSettings->MaxSearchResults should be greater than 0, but it is currently %d. No search results will be found."), SearchSettings->MaxSearchResults); } ServerListRequestHandle = SteamMatchmakingServersPtr->RequestInternetServerList(Subsystem->GetSteamAppId(), &Filters, NumFilters, this); if (ServerListRequestHandle == NULL) { // Invalid API call bIsComplete = true; bWasSuccessful = false; } // Preallocate space for results PendingSearchResults.Empty(SearchSettings->MaxSearchResults); delete [] Filters; bInit = true; } ElapsedTime += 1.0f/16.0f; // Cancel query when we've reached our requested limit bool bReachedSearchLimit = (SearchSettings->SearchResults.Num() >= SearchSettings->MaxSearchResults) ? true : false; // Check for activity timeout bool bTimedOut = (ElapsedTime >= ASYNC_TASK_TIMEOUT) ? true : false; // Check for proper completion bool bServerSearchComplete = (bServerRefreshComplete && PendingSearchResults.Num() == 0) ? true : false; if ( bReachedSearchLimit || bTimedOut || bServerSearchComplete) { bIsComplete = true; bWasSuccessful = true; } if (bIsComplete) { // Cancel further server queries (may trigger RefreshComplete delegate) if (ServerListRequestHandle != NULL) { SteamMatchmakingServersPtr->CancelQuery(ServerListRequestHandle); SteamMatchmakingServersPtr->ReleaseRequest(ServerListRequestHandle); ServerListRequestHandle = NULL; } // Cancel further rules queries for (int32 PendingIdx=0; PendingIdx<PendingSearchResults.Num(); ++PendingIdx) { PendingSearchResults[PendingIdx].CancelQuery(); } PendingSearchResults.Empty(); } }