新手求助 如何用VC6得到SQL Server一个数据库的所有表名和表结构? 新手求助 如何用VC6得到SQL Server一个数据库的所有表名和表结构?rt....用哪种方式比较好?有没有参考代码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL CDlgTest::GetMicTab(){ try { m_pRecordset=theApp.m_pConnection->OpenSchema(adSchemaTables); while(!(m_pRecordset->adoEOF)) { //»ñÈ¡±í¸ñ _bstr_t table_name = m_pRecordset->Fields->GetItem("TABLE_NAME")->Value; //»ñÈ¡±í¸ñÀàÐÍ _bstr_t table_type = m_pRecordset->Fields->GetItem("TABLE_TYPE")->Value; //¹ýÂËһϣ¬Ö»Êä³ö±í¸ñÃû³Æ£¬ÆäËûµÄÊ¡ÂÔ if ( strcmp(((LPCSTR)table_type),"TABLE")==0) { m_cmbAlTab.AddString((LPCSTR)table_name); } m_pRecordset->MoveNext(); } m_pRecordset->Close(); } catch(_com_error e)///²¶×½Òì³£ { ::MessageBox(NULL,e.Description(),"Ìáʾ",MB_OK); return FALSE; } return true;}BOOL CDlgTest::GetMicFields(){ _bstr_t mStrSQL; CString strSQL; CString strColName; BSTR bstrColName; long ColCount,i; Field * field = NULL; HRESULT hr; Fields * fields = NULL; LPCTSTR nameField; CString str; int nTable=m_cmbAlTab.GetCurSel(); m_cmbAlTab.GetLBText(nTable,str);// strSQL.Format("SELECT * FROM %s",str); strSQL="select * from " + str; mStrSQL=strSQL; m_pRecordset->Open(mStrSQL, theApp.m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); hr=m_pRecordset->get_Fields(&fields);//µÃµ½¼Ç¼¼¯µÄ×ֶμ¯ºÏ if(SUCCEEDED(hr)) fields->get_Count(&ColCount);//µÃµ½¼Ç¼¼¯µÄ×ֶμ¯ºÏÖеÄ×ֶεÄ×ܸöÊý for(i=0;i<ColCount;i++) { fields->Item[i]->get_Name(&bstrColName);//µÃµ½¼Ç¼¼¯ÖеÄ×Ö¶ÎÃû UINT uType=fields->Item[i]->Type; fields->Item[i]->DefinedSize; strColName=bstrColName; nameField=strColName; //m_cmbCol.AddString(nameField); m_List.SetItemText(i,0,nameField); m_List.SetItemText(i,1,(LPCTSTR)uType); }// OnSelchangeComTable(); if(SUCCEEDED(hr)) fields->Release();//ÊÍ·ÅÖ¸Õë // ¹Ø±Õ¼Ç¼¼¯ m_pRecordset->Close(); return true;} 双目视觉 关于wsprintf函数的问题 关于线程传递参数问题 HTTP CLILEN T 问题(XMLHTTP问题) 项目设置:fatal error C1083怎样解决???????? VC++6连接警告问题 VC 如何安装MSchart,急!! vc中用ado如何调用oracle数据库?能给一个连接串例子么?多谢了 点击鼠标右键产生的菜单怎么样让它消失 PE文件的问题 CEdit 里怎么插入一个换行符 怎么使用scrollbar 江湖救急啊:c的图象叠加算法
{
try
{
m_pRecordset=theApp.m_pConnection->OpenSchema(adSchemaTables);
while(!(m_pRecordset->adoEOF))
{
//»ñÈ¡±í¸ñ
_bstr_t table_name = m_pRecordset->Fields->GetItem("TABLE_NAME")->Value;
//»ñÈ¡±í¸ñÀàÐÍ
_bstr_t table_type = m_pRecordset->Fields->GetItem("TABLE_TYPE")->Value;
//¹ýÂËһϣ¬Ö»Êä³ö±í¸ñÃû³Æ£¬ÆäËûµÄÊ¡ÂÔ
if ( strcmp(((LPCSTR)table_type),"TABLE")==0)
{
m_cmbAlTab.AddString((LPCSTR)table_name);
}
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
}
catch(_com_error e)///²¶×½Òì³£
{
::MessageBox(NULL,e.Description(),"Ìáʾ",MB_OK);
return FALSE;
}
return true;}BOOL CDlgTest::GetMicFields()
{
_bstr_t mStrSQL;
CString strSQL;
CString strColName;
BSTR bstrColName;
long ColCount,i;
Field * field = NULL;
HRESULT hr;
Fields * fields = NULL;
LPCTSTR nameField;
CString str;
int nTable=m_cmbAlTab.GetCurSel();
m_cmbAlTab.GetLBText(nTable,str);
// strSQL.Format("SELECT * FROM %s",str);
strSQL="select * from " + str;
mStrSQL=strSQL; m_pRecordset->Open(mStrSQL,
theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
hr=m_pRecordset->get_Fields(&fields);//µÃµ½¼Ç¼¼¯µÄ×ֶμ¯ºÏ
if(SUCCEEDED(hr))
fields->get_Count(&ColCount);//µÃµ½¼Ç¼¼¯µÄ×ֶμ¯ºÏÖеÄ×ֶεÄ×ܸöÊý
for(i=0;i<ColCount;i++)
{
fields->Item[i]->get_Name(&bstrColName);//µÃµ½¼Ç¼¼¯ÖеÄ×Ö¶ÎÃû
UINT uType=fields->Item[i]->Type;
fields->Item[i]->DefinedSize;
strColName=bstrColName;
nameField=strColName;
//m_cmbCol.AddString(nameField);
m_List.SetItemText(i,0,nameField);
m_List.SetItemText(i,1,(LPCTSTR)uType); }
// OnSelchangeComTable();
if(SUCCEEDED(hr))
fields->Release();//ÊÍ·ÅÖ¸Õë
// ¹Ø±Õ¼Ç¼¼¯
m_pRecordset->Close(); return true;}