Ejemplo n.º 1
0
void COpenDBDlg::OnOK() 
{	 
	UpdateData();	
	OgdcString strAlias = m_strAlias;
	if(strAlias.IsEmpty() ||
		(m_pDataSources != NULL && m_pDataSources->Lookup(strAlias) != NULL))
	{		
		AfxMessageBox(IDS_ALIAS_ISEXISTED);
		return;
	}
	OgdcInt n_Class = m_Provider.GetEngineClass();	
	if(n_Class == 2)
	{
		OgdcString strTmpServer = OgdcString(m_strServer);
		char cTmp = '\\';
		if (strTmpServer.Find(cTmp,0)==-1) 
		{
			AfxMessageBox("请输入正确的路径!");
		     return;
		}
	}
	CDialog::OnOK();
}
Ejemplo n.º 2
0
OgdcBool OgdcFeatureMdb::GetValue( OgdcInt nIndex, OgdcVariant& varValue )
{

	OgdcByte* pByte = m_fieldValues.GetAt(nIndex);
	if (pByte == NULL)
	{
		varValue.Clear();
		return TRUE;
	}
	OgdcInt nSize = m_fieldDefines.ElementAt(nIndex).m_nSize;
	OgdcByte* pData /*= new OgdcByte[nSize]*/;
	pData = m_fieldValues.GetAt(nIndex);
	OgdcByte* pDataMirror = pData;

	switch (m_fieldDefines.GetAt(nIndex).m_nType)
	{
	case OgdcFieldInfo::Boolean:
	case OgdcFieldInfo::Byte:
		{
			OgdcByte* nValue = new OgdcByte[nSize];
			memcpy(nValue, pDataMirror, nSize);
			varValue = *nValue;
			nValue = NULL;
		}
		break;
	case OgdcFieldInfo::INT16:
		{
			OgdcShort* nValue = new OgdcShort;
			memcpy(nValue, pDataMirror, nSize);
			varValue = *nValue;
			delete nValue;
			nValue = NULL;
		}
		break;
	case OgdcFieldInfo::INT32:
		{
			OgdcInt* nValue = new OgdcInt;
			memcpy(nValue, pDataMirror, nSize);
			varValue = *nValue;
			delete nValue;
			nValue = NULL;
		}
		break;
	case OgdcFieldInfo::INT64:
		{
			OgdcLong* nValue = new OgdcLong;
			memcpy(nValue, pDataMirror, nSize);
			varValue = *nValue;
			delete nValue;
			nValue = NULL;
		}
		break;
	case OgdcFieldInfo::Double:
		{
			OgdcDouble* dValue = new OgdcDouble;
			memcpy(dValue, pDataMirror, nSize);
			varValue = *dValue;
			delete dValue;
			dValue = NULL;
		}
		break;
	case OgdcFieldInfo::Float:
		{
			OgdcFloat* dValue = new OgdcFloat;
			memcpy(dValue, pDataMirror, nSize);
			varValue = *dValue;
			delete dValue;
			dValue = NULL;
		}
		break;
	case OgdcFieldInfo::Text:
	case OgdcFieldInfo::Char:
	case OgdcFieldInfo::NText:
		{
			OgdcString strTemp = OgdcString((OgdcChar*)pByte);
			strTemp.SetCharset(GetCharset());
			varValue = strTemp;
		}
		break;
	case OgdcFieldInfo::Date:
	case OgdcFieldInfo::Time:
	case OgdcFieldInfo::TimeStamp:
		{
			OgdcDouble* dValue = new OgdcDouble[nSize];
			memcpy(dValue, pDataMirror, nSize);
			OgdcTime dateTime = *dValue;
			varValue = dateTime;
			dValue = NULL;
		}
		break;
	case OgdcFieldInfo::LongBinary:
		{
			OgdcByte* pValues = new OgdcByte[nSize];
			memcpy(pValues, pDataMirror, nSize);
			varValue.Clear();
			varValue.Set(pValues, nSize);
			pValues = NULL;
		}
		break;
	case OgdcFieldInfo::Geometry:
	default:
		{
			varValue.Clear();
			return FALSE;
		}
		break;
	}

	pData = NULL;
	pDataMirror = NULL;
	return TRUE;
}