CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  数据库

[百分求教]使用VC连接操作数据库,最好用什么方法?

楼主cime63(流浪的孩子)2006-03-01 21:45:30 在 VC/MFC / 数据库 提问

我想用VC写一个程序来连接操作access数据库,需要得到数据库中的各个表及其中字段的相关信息  
   
  比方:表名,表注释,表创建时间,修改时间  
  字段名,字段类型,注释,是否为主键,可否为空,有没有默认值等等  
   
  请问大家这些应该怎么做?在C+++上我是新手,请大家帮帮我  
  谢谢大家啦  
  问题点数:100、回复次数:15Top

1 楼billy145533($_$)回复于 2006-03-01 22:02:57 得分 20

ado  
  网上有n多例子Top

2 楼xuzheng318(忧郁王子)回复于 2006-03-01 22:09:45 得分 20

http://www.code365.com/programe/vc/sl/200512152324007357.htm  
   
  http://www.code365.com/programe/vc/sl/200512152324007892.htmTop

3 楼cime63(流浪的孩子)回复于 2006-03-01 22:26:59 得分 0

谢过楼上两位先  
  做惯了.NET(C#),做VC时头晕得很Top

4 楼joinclear()回复于 2006-03-01 23:00:56 得分 10

做惯了.NET(C#),做VC时头晕得很  
  那为什么 要用VC做呢 用.net做吧Top

5 楼cime63(流浪的孩子)回复于 2006-03-01 23:09:07 得分 0

joinclear()   (   )   信誉:100     2006-03-01   23:00:00     得分:   0      
     
     
        做惯了.NET(C#),做VC时头晕得很  
  那为什么 要用VC做呢 用.net做吧  
  =============================================  
  这个程序的使用者都没有装.net   framework啊Top

6 楼syy64(太平洋)回复于 2006-03-02 08:00:05 得分 10

ADOTop

7 楼cime63(流浪的孩子)回复于 2006-03-02 08:06:39 得分 0

顶上去Top

8 楼cime63(流浪的孩子)回复于 2006-03-02 08:22:16 得分 0

使用ADO,怎么才能取得数据库中表名,表注释,字段名,字段类型,是否主键,可否为空等等信息呀?Top

9 楼cime63(流浪的孩子)回复于 2006-03-02 09:15:23 得分 0

再顶一次  
  请帮新手一次呀Top

10 楼alen_ghl(东方求*)回复于 2006-03-02 10:57:40 得分 0

用别的人写好的ado类,特别是已经有n年使用经验的类,   绝对好用!Top

11 楼syy64(太平洋)回复于 2006-03-02 11:09:25 得分 30

BOOL   CDlgRecordset::GetMicTable()  
  {  
    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_cmbTable.AddString((LPCSTR)table_name);  
  }                
  m_pRecordset->MoveNext();          
  }        
  m_pRecordset->Close();      
  }  
  catch(_com_error   e)///²¶×½Òì³£    
  {      
  ::MessageBox(NULL,e.Description(),"Ìáʾ",MB_OK);  
  return   FALSE;  
  }  
   
  return   true;  
   
  }Top

12 楼syy64(太平洋)回复于 2006-03-02 11:10:04 得分 0

BOOL   CDlgRecordset::GetMicCol()  
  {  
  //OnSelchangeComTable();  
   
  /*try    
  {      
  m_pRecordset=theApp.m_pConnection->OpenSchema(adSchemaColumns);  
   
  while(!(m_pRecordset->adoEOF))        
  {                    
  //»ñÈ¡±í¸ñ          
          _bstr_t   col_name   =   m_pRecordset->Fields->GetItem("TABLE_NAME")->Value;  
  //_bstr_t   col_name   =   m_pRecordset->Fields->GetItem(str)->Value;  
  //»ñÈ¡±í¸ñÀàÐÍ                  
  _bstr_t   col_type   =   m_pRecordset->Fields->GetItem("COLUMN_TYPE")->Value;  
  //¹ýÂËһϣ¬Ö»Êä³ö±í¸ñÃû³Æ£¬ÆäËûµÄÊ¡ÂÔ  
  if   (   strcmp(((LPCSTR)col_type),"COLUMN")==0)  
  {  
  m_cmbCol.AddString((LPCSTR)col_name);  
  }                
  m_pRecordset->MoveNext();          
  }        
  m_pRecordset->Close();      
  }*/  
  _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_cmbTable.GetCurSel();  
  m_cmbTable.GetLBText(nTable,str);  
  // strSQL.Format("SELECT   *   FROM   %s",str);  
  strSQL="select   *   from   "   +   str;  
  mStrSQL=strSQL;  
   
  /* if(m_pRecordset->State==1)  
  {  
  m_pRecordset->Close();  
  }  
  m_pRecordset->Open(mStrSQL,  
  theApp.m_pConnection.GetInterfacePtr(),  
  adOpenKeyset,  
  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);//&micro;&Atilde;&micro;&frac12;&frac14;&Ccedil;&Acirc;&frac14;&frac14;&macr;&Ouml;&ETH;&micro;&Auml;×&Ouml;&para;&Icirc;&Atilde;&ucirc;  
  // UINT   uType=fields->Item[i]->Type;  
  strColName=bstrColName;  
  nameField=strColName;  
  m_cmbCol.AddString(nameField);  
   
  }  
  // OnSelchangeComTable();  
  if(SUCCEEDED(hr))  
  fields->Release();//&Ecirc;&Iacute;·&Aring;&Ouml;&cedil;&Otilde;&euml;  
   
   
  //   &sup1;&Oslash;±&Otilde;&frac14;&Ccedil;&Acirc;&frac14;&frac14;&macr;  
  /// m_pRecordset->Close();  
   
   
   
   
  /*catch(_com_error   e)///&sup2;&para;×&frac12;&Ograve;ì&sup3;&pound;    
  {      
  ::MessageBox(NULL,e.Description(),"&Igrave;á&Ecirc;&frac34;",MB_OK);  
  return   FALSE;  
  }*/  
   
  return   true;  
   
  }Top

13 楼cime63(流浪的孩子)回复于 2006-03-02 23:02:52 得分 0

先谢过楼上的了  
  最近两天有点忙,周末抽点时间做一下那个程序  
   
  嘿嘿,偶是全才,现在在搞PHP呢  
  其实.NET才是偶的主修Top

14 楼cime63(流浪的孩子)回复于 2006-03-03 08:08:33 得分 0

UPTop

15 楼junliu_0(驴子)回复于 2006-03-03 09:25:05 得分 10

楼主原来是高手啊,向楼主学习!Top

相关问题

  • vc操作access数据库
  • vc连接ORACLE数据库?
  • XML数据库的连接与操作
  • 连接数据库操作失败
  • 请教VC数据库操作问题
  • 用vc开发,使用ado连接远程的sql 2000数据库,好像在某个数据库操作上给阻死了
  • 数据库连接的问题.怎么样连接数据库操作最快?
  • 如何用vc和数据库连接
  • 如何用VC连接MYSQL数据库
  • vc++6.0连接SQL Server数据库

关键词

  • .net
  • c#
  • 数据库
  • 字段
  • vc
  • ado
  • precordset
  • frac
  • getitem
  • 注释

得分解答快速导航

  • 帖主:cime63
  • billy145533
  • xuzheng318
  • joinclear
  • syy64
  • syy64
  • junliu_0

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo