本文整理汇总了C++中CField::GetFieldType方法的典型用法代码示例。如果您正苦于以下问题:C++ CField::GetFieldType方法的具体用法?C++ CField::GetFieldType怎么用?C++ CField::GetFieldType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CField
的用法示例。
在下文中一共展示了CField::GetFieldType方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Modify
/************************************************************************************
函数名称:
CFieldList::Modify
功能说明:
修改一个字段
详细解释:
出入参数:
[in,out]nIndex:旧字段的位置
[in,out]pField :新的字段
返回类型:
制作:
Eric 2002-9-4
修改:
************************************************************************************/
bool CFieldList::Modify(int nIndex,CFieldType NewFieldType)
{
CField *pField = this->FieldByIndex(nIndex);
if (pField ==NULL)
return false;
if (pField->GetFieldType() == NewFieldType)
return true;
CField* pNewField=CreateField(NewFieldType);
pNewField->CopyCommonProperty(pField);
Modify(IndexOf(pField),pNewField);
return true;
}
示例2: PasteCol
/*
PasteCol 表名 源列名称 目标列名称
*/
bool TCManager::PasteCol(TCPacket &inP,AnaWord &aw, TCPacket &outP)
{
if (aw.GetWordCount() !=4)
return SetResultState(false,outP,GetLanguage(FormatIsError));
int nUserID = GetUserID(inP);
if (nUserID==0)
return SetResultState(false,outP,GetLanguage(UserIDIsNotFound));
string sTableName = aw.GetAt(1);
string sSrcName = aw.GetAt(2);
string sDstName = aw.GetAt(3);
CDataInterface *pDI = g_system.GetCurData(nUserID,aw.GetAt(1));
if (pDI == NULL)
return SetResultState(false,outP,GetLanguage(UserTableIsNotFound));
CField *pSrcField = pDI->FieldByName(sSrcName.c_str());
if (pSrcField == NULL)
return SetResultState(false,outP,GetLanguage(FieldNameNotFind));
CFieldType ft = pSrcField->GetFieldType();
CField *pDstField = pDI->FieldByName(sDstName.c_str());
if (pDstField == NULL)
{
pDstField = pDI->m_DataAccess.m_pFieldList->CreateField(ft);
pDstField->SetFieldName(sDstName);
pDstField->SetWidth(pSrcField->GetWidth());
pDI->m_DataAccess.m_pFieldList->Add(pDstField);
}
pDI->m_DataAccess.First();
while (!pDI->m_DataAccess.Eof())
{
pDI->m_DataAccess.Edit();
if (pSrcField->IsNull())
{
pDstField->SetNull();
}
else
{
if (ft == fDouble)
pDstField->SetAsDouble(pSrcField->GetAsDouble());
else if (ft == fInt)
pDstField->SetAsInteger(pSrcField->GetAsInteger());
else if (ft == fBoolean)
pDstField->SetAsBool(pSrcField->GetAsBool());
else if (ft == fString)
pDstField->SetAsString(pSrcField->GetAsString());
else
pDstField->SetAsDateTime(&pSrcField->GetAsDateTime());
}
pDI->m_DataAccess.Next();
}
return SetResultState(true,outP);
}
示例3: GetDataInfo
/*
#获取字段和记录信息 文件名没有,则返回当前表信息
>Command
Text
GetDataInfo 表名
<Command
Text
ColInfo 列信息
Fail 错误信息
*/
bool TCManager::GetDataInfo(TCPacket &inP,AnaWord &aw,TCPacket &outP)
{
if (aw.GetWordCount()!=2)
return SetResultState(false,outP,GetLanguage(FormatIsError));
int nUserID = GetUserID(inP);
if (nUserID==0)
return SetResultState(false,outP,GetLanguage(UserIDIsNotFound));
CDataInterface *pDI = g_system.GetCurData(nUserID,aw.GetAt(1));
if (pDI ==NULL)
{
return SetResultState(false,outP,GetLanguage(UserTableIsNotFound));
}
CDataAccess &da = pDI->m_DataAccess;
string strScript ;
int nCnt = da.GetRecordCount();
char buffer[50];
memset(buffer,0,50);
sprintf(buffer,"%d",nCnt);
string sRecordCount = buffer;
for (int i=0;i<da.GetFieldCount();i++)
{
CField *pField = da.FieldByIndex(i);
string ss = (const char*)pField->GetFieldName();
ss = AnaWord::GetUniquely(ss);
CFieldType ft = pField->GetFieldType();
if (ft ==fString )
ss = ss + " s ";
else if (ft == fDate)
ss = ss + " d ";
else if (ft == fInt)
ss = ss + " n ";
else if (ft == fDouble)
ss = ss + " f ";
else if (ft == fBoolean)
ss = ss + " b ";
char buf[10];
sprintf(buf," %d ",pField->GetWidth());
string sWidth = buf;
strScript = strScript+ " "+ ss +sWidth;
}
sRecordCount = "ColInfo "+sRecordCount + strScript;
outP.AddItem("Text",sRecordCount);
return SetResultState(true,outP);
}
示例4: Modify
//字段类型修改
void CFields::Modify(int nIndex, CField* pNewField)
{
m_FieldVersion.Modify(nIndex,FieldByIndex(nIndex), pNewField);
///////////////////////////////////////////////{{lps added.2003/02/18
CField* pOldFld = FieldByIndex(nIndex);
LPBYTE pOldValue = pNewField->m_pValue;
POSITION posData = pNewField->m_ValueLabel.m_DataList.GetHeadPosition();
while(posData)
{
pNewField->m_pValue = (LPBYTE)pNewField->m_ValueLabel.m_DataList.GetNext( posData );
pNewField->RealDeleteData();
}
pNewField->m_ValueLabel.m_DataList.RemoveAll();
pNewField->m_ValueLabel.m_strLabelList.RemoveAll();
posData = pOldFld->m_ValueLabel.m_DataList.GetHeadPosition();
int posStr = pOldFld->m_ValueLabel.m_strLabelList.GetSize();
int nPos = 0;
while(posData != NULL && nPos < posStr)
{
LPBYTE pData = (LPBYTE)pOldFld->m_ValueLabel.m_DataList.GetNext( posData );
CTString strLabel = pOldFld->m_ValueLabel.m_strLabelList.GetAt(nPos);
pOldFld->m_ValueLabel.m_pField->m_pValue = pData;//~~~~~~~~~~~~~~~~~~~~~~~~~
pNewField->RealNewData();
//从日期字段转化到其他类型,或者从其他字段转化到日期字段.
if((pOldFld->GetFieldType() == fDate)
||(pNewField->GetFieldType() == fDate))
{
FILETIME ftValue = pOldFld->m_ValueLabel.m_pField->GetAsDateTime();
//填入不成功,则m_pValue无效.
if(!pNewField->SetAsDateTime(&ftValue))
{
pNewField->m_pValue = pOldValue;
pNewField->RealDeleteData();
continue;
}
}
else
{
CTString strr = pOldFld->m_ValueLabel.m_pField->GetAsString();
//填入不成功,则m_pValue无效.此时的原则:留下可以转换的,抛弃无法转化的.
//比如fString型串"2002/01/30"转换为fInt,fDouble等时将为false.
if(!pNewField->SetAsString(strr))
{
pNewField->m_pValue = pOldValue;
pNewField->RealDeleteData();
continue;
}
}
pNewField->m_ValueLabel.m_DataList.AddTail(pNewField->m_pValue);
//取得label字符串然后添加在当前对象中相应的链表中
// CTString str = pValueLabel->m_strLabelList.GetNext(posStr);
pNewField->m_ValueLabel.m_strLabelList.Add(strLabel);
nPos++;
}
//assert(posData == NULL && posStr == NULL);
pNewField->m_pValue = pOldValue;
///////////////////////////////////////////////}}
SetCurVersion();
}