请问用ADO怎么获得数据库的表信息!

inlinefunction 2003-05-29 10:58:55
谢谢了!
...全文
42 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Javcy 2003-06-06
  • 打赏
  • 举报
回复
study
lornwolf 2003-06-06
  • 打赏
  • 举报
回复
pRecordSet->Fields->GetItem(_variant_t(long(i)))->GetType();/// 字段类型

GetType()返回的是一个enum类型,怎么把它转化成字符串~?
lornwolf 2003-06-06
  • 打赏
  • 举报
回复
up
CharmDream 2003-06-04
  • 打赏
  • 举报
回复
pRecordSet->Fields->GetItem(_variant_t(long(i)))->GetType();/// 字段类型
pRecordSet->Fields->GetItem(_variant_t(long(i)))->GetName();/// 字段名
pRecordSet->Fields->GetItem(_variant_t(long(i)))->GetActualSize();/// 字段长度
。。。
ssfly 2003-05-30
  • 打赏
  • 举报
回复
哦,那是包含在一个类里的
//
// MODULE: Ado.h
//
// AUTHOR: Carlos Antollini
//
// mailto: cantollini@hotmail.com
//
// Date: 07/25/2002
//
// Version 2.04
//
就是这个,:D:D很好用的
天限天空 2003-05-30
  • 打赏
  • 举报
回复
ADOX_DB.CreateInstance(__uuidof(ADOX::Catalog));
try{
ADOX_DB->PutActiveConnection( _bstr_t(ConnectionStr) );
int tableCount = ADOX_DB->Tables->Count;
for(int i=0;i<tableCount;i++)
{//得到表对象指针
ADOX::_TablePtr tablePtr = (ADOX::_TablePtr)ADOX_DB->Tables->GetItem((long)i);
ADOX::PropertiesPtr tableProperties = (ADOX::PropertiesPtr)tablePtr->GetProperties();
ADOX::ColumnsPtr colunmsPtr = tablePtr->GetColumns();
CString tableName = (BSTR)tablePtr->Name;

int colunmCount = colunmsPtr->Count;
m_TableList.AddString(tableName);

}

} catch(_com_error &e) {
AfxMessageBox(e.Description());
}
genny 2003-05-30
  • 打赏
  • 举报
回复
adx_db是什么类型?
inlinefunction 2003-05-30
  • 打赏
  • 举报
回复
谢谢二楼newkey007(无限天空)老兄的提示!!
free_card 2003-05-30
  • 打赏
  • 举报
回复
http://www.csdn.net/cnshare/soft/14/14373.shtm
washingli 2003-05-30
  • 打赏
  • 举报
回复
用不上那么繁杂,用纪录集本身的Fields这个属性就行本人昨天都用了。
_ConnectionPtr pConnection1 = NULL;
_RecordsetPtr pFieldRecordSet=NULL;
_RecordsetPtr pValueRecordSet=NULL;
HRESULT hr;
hr=pConnection1.CreateInstance(__uuidof(Connection));
hr=pFieldRecordSet.CreateInstance(__uuidof(Recordset));
pValueRecordSet.CreateInstance(__uuidof(Recordset));
pConnection1->ConnectionString =
"Provider='sqloledb';Data Source='dbsvr';"
"Initial Catalog='CCAIMS';Integrated Security='SSPI';User ID='sa';PWD='';";
pConnection1->ConnectionTimeout = 30;
try
{
hr=pConnection1->Open("","","",adConnectUnspecified);
//初始化一个纪录集
pFieldRecordSet->Open("select FIELD_ID,MAINFRAME_DOC_SEQ from T_FRM_FIELD where mainframe_doc_seq is not null order by mainframe_doc_seq"//and mainframe_doc_seq<5
,_variant_t((IDispatch *)pConnection1,true)
,adOpenDynamic// ,adOpenKeyset
,adLockOptimistic
,adCmdText);
pValueRecordSet->Open("select * from T_APP_1KEY "
,_variant_t((IDispatch *)pConnection1,true)
,adOpenDynamic// ,adOpenKeyset
,adLockOptimistic
,adCmdText);
}
catch(_com_error &e)
{
MessageBox(NULL,e.ErrorMessage(),"线程",MB_OK);
if (pConnection1->State == adStateOpen)
pConnection1->Close();
if(pFieldRecordSet->State==adStateOpen)
pFieldRecordSet->Close();
if(pValueRecordSet->State==adStateOpen)
pValueRecordSet->Close();
fin.close();
return 1;
}



/////////////////////////////
/////////////////
FieldPtr ftr;
ftr=pValueRecordSet->Fields->GetItem(_variant_t(long(i)));i表示要获取的字段index
ftr里存放了你要得信息
ssfly 2003-05-29
  • 打赏
  • 举报
回复
首先创建一个记录集,我是这么做的
CUsrReportApp * pApp = (CUsrReportApp *)AfxGetApp();
m_pDb = pApp->m_pDb;
m_pRs = new CADORecordset(m_pDb);
再用SQL语句来查询你的表,如下:
m_strSelectSql.Format("Select * from ......");
m_pDb->Execute(m_strSelectSql);
PS:前提你必须先把数据库打开

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧