int StructuredDatabaseTest() { Table* table; int user_id; DynArray<1024> what; DynArray<1024> where; table = new Table(&database, "structured_test"); table->Truncate(); user_id = InsertUser(table, "dopey", "dopeypass", "online"); InsertEvent(table, user_id, "dinner", "cheezburger", "2009-03-24 01:09:00"); InsertEvent(table, user_id, "meeting", "important", "2009-03-24 11:12:00"); // SELECT * FROM event WHERE user=%d AND date > 2009-03-24 01 what.Printf("event:user:%d", user_id); where.Printf("date:2009-03-24 01"); //TableSelector selector(what.buffer, where.buffer); // QuerySelector selector("SELECT date, note FROM event WHERE user_id=%d", user_id); // table->Visit(selector); ListTableVisitor visitor; table->Visit(visitor); return TEST_SUCCESS; }
LRESULT CUserListCtrl::OnP4UserList(WPARAM wParam, LPARAM lParam) { CCmd_Users *pCmd= (CCmd_Users *) wParam; if(!pCmd->GetError()) { CObList const *users = pCmd->GetList(); SetRedraw(FALSE); int index = 0; for(POSITION pos= users->GetHeadPosition(); pos != NULL; index++) { CP4User *user = (CP4User *) users->GetNext(pos); InsertUser(user, index); } SetRedraw(TRUE); CString msg; msg.FormatMessage( IDS_NUMBER_OF_USERS_n, index ); AddToStatus( msg, SV_COMPLETION ); ReSort(); // Make sure previous item is re-selected if(users->GetCount() > 0) { int i = FindInList(m_Active.IsEmpty() ? GET_P4REGPTR()->GetP4User() : m_Active); if (i < 0) i=0; SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED); EnsureVisible(i, FALSE); // If m_Active is empty but we found the current user in the list, // then set m_Active to the correct value if (m_Active.IsEmpty() && i >= 0) m_Active = GET_P4REGPTR()->GetP4User(); } CP4ListCtrl::SetUpdateDone(); // Notify the mainframe that we have finished getting the users, // hence the entire set of async command have finished. MainFrame()->ExpandDepotIfNeedBe(); if (m_PostViewUpdateMsg) PostMessage(m_PostViewUpdateMsg, m_PostViewUpdateWParam, m_PostViewUpdateLParam); } else CP4ListCtrl::SetUpdateFailed(); delete pCmd; m_PostViewUpdateMsg = 0; MainFrame()->ClearStatus(); return 0; }
//得到好友列表 void CFrmUserList::slotRosterReceived() { LOG_MODEL_DEBUG("Roster", "CFrmUserList:: Roster received"); foreach (const QString &bareJid, CGlobal::Instance()->GetXmppClient()->rosterManager().getRosterBareJids()) { QXmppRosterIq::Item item = CGlobal::Instance()->GetXmppClient()->rosterManager().getRosterEntry(bareJid); InsertUser(item); //得到好友信息(包括头像图片) CGlobal::Instance()->GetXmppClient()->vCardManager().requestVCard(bareJid); } }
int Manager(HashTablePtr H){ int choice; printf("***********************************\n" "* Enter your choice *\n" "* 1 to insert a user *\n" "* 2 to delete a user *\n" "* 3 to print Userlist *\n" "* 4 to end *\n" "***********************************\n"); printf("your choice:\n"); if(!scanf("%d",&choice)){ printf("input error!!!\n"); exit(1); } while(choice != 4) { switch (choice) { case 1: Read(H); InsertUser(H); Write(H); break; case 2: Read(H); DeleteUser(H); Write(H); break; case 3: Read(H); printHash(H); break; default: printf("Invalid choice!!!\n"); break; } printf("***********************************\n" "* Enter your choice *\n" "* 1 to insert a user *\n" "* 2 to delete a user *\n" "* 3 to print Userlist *\n" "* 4 to end *\n" "***********************************\n"); printf("your choice:\n"); if(!scanf("%d",&choice)){ printf("input error!!!\n"); exit(1); } } }
LRESULT CUserListCtrl::OnP4EndSpecEdit( WPARAM wParam, LPARAM lParam ) { CCmd_EditSpec *pCmd= (CCmd_EditSpec *) wParam; int i, j; if (lParam != IDCANCEL && lParam != IDABORT) { if (m_UpdateState == LIST_UPDATED) { // we have to set 'index' again in case user's name got changed int index = FindInList(m_pNewSpec->GetUserName()); if(index > -1 ) UpdateUser(m_pNewSpec, index); else { InsertUser(m_pNewSpec, GetItemCount()); ReSort(); if( m_Active != m_olduser ) { if (GET_P4REGPTR()->GetExpandFlag() == 1) GET_P4REGPTR()->AddMRUPcuPath(MainFrame()->GetCurrentItemPath()); m_Active = m_olduser; GET_P4REGPTR()->SetP4User( m_olduser, TRUE, FALSE, FALSE ); MainFrame()->UpdateCaption( ) ; } } } else if ( m_pNewSpec ) delete m_pNewSpec; CString specOut(pCmd->GetSpecOut()); if ((i = specOut.Find(_T("\n\nJobView:\t"))) != -1) { i += lstrlen(_T("\n\nJobView:\n")); if ((j = specOut.Find(_T('\n'),i)) != -1) { // if JobView has changed, we have to refresh the changelists (and depot) if (m_oldJobView != specOut.Mid(i, j-i)) MainFrame()->UpdateDepotandChangeViews(TRUE); } } } else if ( m_pNewSpec ) delete m_pNewSpec; if (lParam != IDABORT) { MainFrame()->ClearStatus(); if (pCmd->HaveServerLock()) pCmd->ReleaseServerLock(); CDialog *dlg = (CDialog *)pCmd->GetSpecSheet(); dlg->DestroyWindow(); } if ((lParam == IDCANCEL) && pCmd->GetIsNewUser()) // if canceled, cleanup newly created user { m_Active = pCmd->GetItemName(); CString msg; msg.FormatMessage ( IDS_DELETENEWUSER_s, m_Active ); // ask if they want to delete the newly created user if( AfxMessageBox( msg, MB_YESNO|MB_ICONQUESTION ) == IDYES) { // fire off the delete of the newly created user CCmd_Delete *pCmdDel = new CCmd_Delete; pCmdDel->Init( m_hWnd, RUN_ASYNC ); pCmdDel->SetSwitch2User( m_olduser ); if( pCmdDel->Run( P4USER_DEL, m_Active ) ) MainFrame()->UpdateStatus( LoadStringResource(IDS_DELETING) ); else delete pCmdDel; } else { OnViewUpdate(); } } delete pCmd; m_EditInProgress = FALSE; return 0; }
void CFrmUserList::slotItemAdded(const QString &bareJid) { LOG_MODEL_DEBUG("Roster", "CFrmUserList::itemAdded jid:%s", qPrintable(bareJid)); QXmppRosterIq::Item item = CGlobal::Instance()->GetXmppClient()->rosterManager().getRosterEntry(bareJid); InsertUser(item); }