CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

Recordset的用法。

楼主zaiqian(zaiqian)2000-09-27 15:21:00 在 VC/MFC / 基础类 提问

CDatabase   db;  
  TRY{  
  db.OpenEx("DSN=creaderdb;UID=sa;PWD=iceriver!!@!smiler");  
                                      rs.Open(CRecordset::dynaset,_T("Select   Name,Sex   From   C"));  
                                      CDBVariant   varValue;  
                                      CString   Name;  
                                      rs.GetFieldValue(1,varValue);//我不知道怎样把值去出来赋给Name。请各位高手指教。  
                            }  
  CATCH(CDBException,e)  
  {  
  }  
  END_CATCH  
  问题点数:50、回复次数:2Top

1 楼BenjaminNing(大漠孤烟)回复于 2000-09-27 17:15:00 得分 50

zaiqian:    
          朋友,   你对   MFC的   CRecordset可能没有完全理解,   请仔细阅读如下的代码,   数据和变量是通过   void   CBkClerkSet::DoFieldExchange(CFieldExchange*   pFX)   函数实现的(由Wizard生成),   相信你一定能明白!  
   
   
  class   CBkClerkSet   :   public   CRecordset  
  {  
  public:  
  CBkClerkSet(CDatabase*   pDatabase   =   NULL);  
  DECLARE_DYNAMIC(CBkClerkSet)  
   
  //   Field/Param   Data  
  //{{AFX_FIELD(CBkClerkSet,   CRecordset)  
  CString m_cEmpID;  
  CString m_cName;  
  CString m_cPwd;  
  CString m_cSex;  
  CString m_cTel;  
  CString m_cGrpID;  
  long m_iPriv;  
  CString m_cEnterBy;  
  CTime m_dCreate;  
  //}}AFX_FIELD  
   
   
  //   Overrides  
  //   ClassWizard   generated   virtual   function   overrides  
  //{{AFX_VIRTUAL(CBkClerkSet)  
  public:  
  virtual   CString   GetDefaultConnect();         //   Default   connection   string  
  virtual   CString   GetDefaultSQL();         //   Default   SQL   for   Recordset  
  virtual   void   DoFieldExchange(CFieldExchange*   pFX);     //   RFX   support  
  //}}AFX_VIRTUAL  
   
  //   Implementation  
  #ifdef   _DEBUG  
  virtual   void   AssertValid()   const;  
  virtual   void   Dump(CDumpContext&   dc)   const;  
  #endif  
  };  
  /////////////////////////////////////////////////////////////////////////////  
  //   CBkClerkSet  
   
  IMPLEMENT_DYNAMIC(CBkClerkSet,   CRecordset)  
   
  CBkClerkSet::CBkClerkSet(CDatabase*   pdb)  
  :   CRecordset(pdb)  
  {  
  //{{AFX_FIELD_INIT(CBkClerkSet)  
  m_cEmpID   =   _T("");  
  m_cName   =   _T("");  
  m_cPwd   =   _T("");  
  m_cSex   =   _T("");  
  m_cTel   =   _T("");  
  m_cGrpID   =   _T("");  
  m_iPriv   =   0;  
  m_cEnterBy   =   _T("");  
  m_nFields   =   9;  
  //}}AFX_FIELD_INIT  
  m_nDefaultType   =   snapshot;  
  }  
   
   
  CString   CBkClerkSet::GetDefaultConnect()  
  {  
  return   _T("ODBC;DSN=spm");  
  }  
   
  CString   CBkClerkSet::GetDefaultSQL()  
  {  
  return   _T("[dbo].[tEmployees]");  
  }  
   
  void   CBkClerkSet::DoFieldExchange(CFieldExchange*   pFX)  
  {  
  //{{AFX_FIELD_MAP(CBkClerkSet)  
  pFX->SetFieldType(CFieldExchange::outputColumn);  
  RFX_Text(pFX,   _T("[cEmpID]"),   m_cEmpID);  
  RFX_Text(pFX,   _T("[cName]"),   m_cName);  
  RFX_Text(pFX,   _T("[cPwd]"),   m_cPwd);  
  RFX_Text(pFX,   _T("[cSex]"),   m_cSex);  
  RFX_Text(pFX,   _T("[cTel]"),   m_cTel);  
  RFX_Text(pFX,   _T("[cGrpID]"),   m_cGrpID);  
  RFX_Long(pFX,   _T("[iPriv]"),   m_iPriv);  
  RFX_Text(pFX,   _T("[cEnterBy]"),   m_cEnterBy);  
  RFX_Date(pFX,   _T("[dCreate]"),   m_dCreate);  
  //}}AFX_FIELD_MAP  
  m_cEmpID.TrimRight();  
  m_cPwd.TrimRight();  
   
  }  
   
  /////////////////////////////////////////////////////////////////////////////  
  //   CBkClerkSet   diagnostics  
   
  #ifdef   _DEBUG  
  void   CBkClerkSet::AssertValid()   const  
  {  
  CRecordset::AssertValid();  
  }  
   
  void   CBkClerkSet::Dump(CDumpContext&   dc)   const  
  {  
  CRecordset::Dump(dc);  
  }  
  #endif   //_DEBUG  
   
   
  Top

2 楼crm2000(浏览器)回复于 2000-10-01 10:46:00 得分 0

得到varValue后,根据CDBVariant的成员可以根据数据类型来获得实际的值。Top

相关问题

  • recordset的一用法???
  • 关于recordset对象的sort属性的用法问题
  • &*用法~~
  • recordset的filter用法,我无论如何为也无法过滤这个记录集!
  • 哪位大侠能给我解释一下recordset的实质和含义及基本用法,感激不尽!!!
  • 请教关于recordset的find方法的具体用法...(如何避免运行时错误)
  • setfocus的用法
  • icmp.dll的用法
  • DataGrid的用法?
  • CDONTS.dll的用法???

关键词

  • virtual
  • cstringm
  • cbkclerkset
  • crecordset
  • afx
  • cstring
  • field

得分解答快速导航

  • 帖主:zaiqian
  • BenjaminNing

相关链接

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

广告也精彩

反馈

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