附加:
l_pRecordset执行select语句后就可以得到表的字段名,字段数,字段大小,我写了三个函数,分别得到指定表的字段数,
指定字段的字段名及字段大小。
// 得到字段名
BOOL CLx4Dlg::GetFieldsName(_RecordsetPtr RcdPtr, int nField, CString & strFieldName)
{
if(NULL == RcdPtr || nField >= RcdPtr->GetFields()->Count)return FALSE;
_variant_t vt((long)nField);
strFieldName.Format(_T("%s"), (char*)(RcdPtr->GetFields()->Item[vt]->Name));
return true;
}
// 得到字段大小
int CLx4Dlg::GetFieldsSize(_RecordsetPtr RcdPtr, int nField)
{
if(NULL == RcdPtr || nField >= RcdPtr->GetFields()->Count)return FALSE;
_variant_t vt((long)nField);
int nSize = RcdPtr->GetFields()->Item[vt]->DefinedSize; // 返回已声明的字段大小
//int nSize = RcdPtr->GetFields()->Item[vt]->ActualSize; // 返回给定字段中数据的实际大小
return nSize;
}
SQL 语句:
得到SQL SERVER的所有用户类型的表
select name from sysobjects where xtype='U'
得到ORACLE的所有用户表
select tname from tab where tabtype='TABLE'
得到ACCESS的所有用户建的表
SELECT Name FROM MSysObjects WHERE Flags=0 AND Type=1
SELECT MSysObjects.Name FROM MSysObjects WHERE Type=1