Example #1
0
BOOL DML_QueryDatabase(CdSda* pDoc, CaNode* pNode, CTypedPtrList< CObList, CaDBObject* >& listObj)
{
	BOOL bOK = FALSE;
	CaLLQueryInfo queryInfo (OBT_DATABASE, pNode->GetName());
	queryInfo.SetFetchObjects (CaLLQueryInfo::FETCH_USER);
	queryInfo.SetIndependent(TRUE);

	CaSessionManager& sessionMgr = theApp.GetSessionManager();
	bOK = INGRESII_llQueryObject (&queryInfo, listObj, (void*)&sessionMgr);
#if defined (_IGNORE_STAR_DATABASE)
	if (bOK)
	{
		POSITION p = NULL, pos = listObj.GetHeadPosition();
		while (pos != NULL)
		{
			p = pos;
			CaDatabase* pDb = (CaDatabase*)listObj.GetNext(pos);
			if (pDb->GetStar() != OBJTYPE_NOTSTAR)
			{
				listObj.RemoveAt(p);
				delete pDb;
			}
		}
	}
#endif
	return bOK;
}
Example #2
0
void CuDlgMain::QueryDatabase(CComboBoxEx* pComboDatabase, CaNode* pNode, CString& strSelectedDatabase)
{
	int nIdx = CB_ERR;
	CWaitCursor doWaitCursor;
	UINT uFlag = (pComboDatabase == &m_cComboDatabase1)? REFRESH_DATABASE1: REFRESH_DATABASE2;
	CTypedPtrList< CObList, CaDBObject* >* lDatabase = (pComboDatabase == &m_cComboDatabase1)? &m_lDatabase1: &m_lDatabase2;
	//
	// Clean the combobox:
	pComboDatabase->ResetContent();
	if ((m_nAlreadyRefresh & uFlag) == 0)
	{
		while (!lDatabase->IsEmpty())
			delete lDatabase->RemoveHead();
		CaInstallationItem* pInstallation = new CaInstallationItem (_T("<Installation>"));
		lDatabase->AddHead(pInstallation);
		DML_QueryDatabase(NULL, pNode, *lDatabase);
	}

	COMBOBOXEXITEM cbitem;
	memset (&cbitem, 0, sizeof(cbitem));
	cbitem.mask = CBEIF_IMAGE | CBEIF_TEXT | CBEIF_SELECTEDIMAGE | CBEIF_LPARAM ;
	cbitem.iImage = 0;
	cbitem.iSelectedImage = 0;

	POSITION pos = lDatabase->GetHeadPosition();
	while (pos != NULL)
	{
		CaDatabase* pDatabase = (CaDatabase*)lDatabase->GetNext(pos);
		cbitem.pszText = (LPTSTR)(LPCTSTR)pDatabase->GetName();
		cbitem.lParam  = (LPARAM)pDatabase;
		cbitem.iItem   = pComboDatabase->GetCount();
		switch ( pDatabase->GetStar() )
		{
		case OBJTYPE_NOTSTAR:
			cbitem.iImage  = (pDatabase->GetItem().IsEmpty())? 1: 0;
			break;
		case OBJTYPE_STARNATIVE:
			cbitem.iImage  = 2;
			break;
		case OBJTYPE_STARLINK:
			cbitem.iImage  = 3;
			break;
		}
		cbitem.iSelectedImage = cbitem.iImage;
		pComboDatabase->InsertItem (&cbitem);
	}
	if (m_bPreselectDBxUser)
	{
		if (!strSelectedDatabase.IsEmpty())
		{
			nIdx = pComboDatabase->FindStringExact(-1, strSelectedDatabase);
			if (nIdx != CB_ERR)
				pComboDatabase->SetCurSel(nIdx);
			else
				pComboDatabase->SetCurSel(0);
		}
		else
		{
			pComboDatabase->SetCurSel(0);
		}
	}
	m_nAlreadyRefresh |= uFlag;
}