本文整理汇总了C++中_RecordsetPtr::get_Fields方法的典型用法代码示例。如果您正苦于以下问题:C++ _RecordsetPtr::get_Fields方法的具体用法?C++ _RecordsetPtr::get_Fields怎么用?C++ _RecordsetPtr::get_Fields使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类_RecordsetPtr
的用法示例。
在下文中一共展示了_RecordsetPtr::get_Fields方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
__int64
ADOConnection::_GetIdentityFromRS(_RecordsetPtr pRS) const
{
try
{
if (pRS->GetRecordCount() == 0)
return 0;
_variant_t vaField;
FieldsPtr pFields;
FieldPtr pField;
HRESULT hr;
hr = pRS->get_Fields( &pFields );
vaField = "IDENT";
pFields->get_Item( vaField, &pField );
vaField.Clear();
if (pField)
{
pField->get_Value(&vaField);
switch (vaField.vt)
{
case VT_NULL:
return 0;
case VT_I4:
return vaField.intVal;
default:
if (vaField.decVal.sign == DECIMAL_NEG)
return -vaField.cyVal.int64;
else
return vaField.cyVal.int64;
}
}
return 0;
}
catch (...)
{
ErrorManager::Instance()->ReportError(ErrorManager::High, 5030, "ADOConnection::_GetIdentityFromRS", "Error while determening @@IDENTITY");
}
return 0;
}
示例2: CopyData
BOOL CFoxBase::CopyData(_RecordsetPtr &IRecordS, _RecordsetPtr &IRecordD)
{
_variant_t TempValue;
short Item;
FieldsPtr IFields;
FieldPtr IField;
if(IRecordS==NULL || IRecordD==NULL)
{
ExceptionInfo(_T("Source Recordset or destination Recordset cann't be empty"));
return FALSE;
}
if(IRecordS->adoEOF && IRecordS->BOF)
{
return TRUE;
}
if(!IRecordD->adoEOF || !IRecordD->BOF)
{
try
{
IRecordD->MoveLast();
}
catch(_com_error &e)
{
ExceptionInfo(e);
return FALSE;
}
}
try
{
IRecordS->MoveFirst();
}
catch(_com_error &e)
{
ExceptionInfo(e);
return FALSE;
}
try
{
while(!IRecordS->adoEOF)
{
IRecordS->get_Fields(&IFields);
IRecordD->AddNew();
for(Item=0;Item<IFields->GetCount();Item++)
{
IFields->get_Item(_variant_t(Item),&IField);
TempValue=IRecordS->GetCollect(_variant_t(IField->GetName()));
IRecordD->PutCollect(_variant_t(IField->GetName()),TempValue);
IField.Release();
}
IRecordD->Update();
IFields.Release();
IRecordS->MoveNext();
}
}
catch(_com_error &e)
{
ExceptionInfo(e);
return FALSE;
}
return TRUE;
}
示例3: CreateTableSQL
CString CFoxBase::CreateTableSQL(_RecordsetPtr &IRecord,LPCTSTR pTableName)
{
short Item;
CString CreateSQL;
CString DefList;
FieldsPtr IFields;
FieldPtr IField;
CreateSQL=_T("");
if(IRecord==NULL)
{
ExceptionInfo(_T("Recordset interface cann't be NULL"));
return CreateSQL;
}
if(pTableName==NULL)
{
ExceptionInfo(_T("Table name cann't be NULL"));
return CreateSQL;
}
IRecord->get_Fields(&IFields);
DefList=_T("");
for(Item=0;Item<IFields->GetCount();Item++)
{
IFields->get_Item(_variant_t(Item),&IField);
DefList+=IField->GetName();
DefList+=_T(" ");
switch(IField->GetType())
{
case adVarWChar:
{
CString Temp;
Temp.Format(_T("varchar(%d)"),IField->GetDefinedSize());
DefList+=Temp;
break;
}
case adLongVarWChar:
DefList+=_T("text");
break;
case adVarBinary:
{
CString Temp;
Temp.Format(_T("varbinary(%d)"),IField->GetDefinedSize());
DefList+=Temp;
break;
}
// case adNumeric:
// case adGUID:
// case adLongVarBinary:
// {
// ExceptionInfo(_T("不支持LongVarBinary"));
// return CreateSQL;
// }
// break;
case adInteger:
DefList+=_T("int");
break;
case adUnsignedTinyInt:
case adSmallInt:
DefList+=_T("smallint");
break;
case adSingle:
case adDouble:
DefList+=_T("float");
break;
case adDBTimeStamp:
case adDate:
DefList+=_T("date");
break;
// case adBoolean:
// break;
default:
{
ExceptionInfo(_T("不支持此类型"));
return CreateSQL;
}
}
if(Item < IFields->GetCount()-1)
{
DefList+=_T(",");
}
IField.Release();
}
//.........这里部分代码省略.........