CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  数据库

vc++ 用ado连数据库??

楼主cainiaobus(jacky)2002-01-08 21:01:57 在 VC/MFC / 数据库 提问

在vc++   用ado连数据库?进行新增时有下面一段代码,我看了很久就是不清楚  
  不知道要从哪里下手,请各位朋友帮忙,  
  void   CADOSample3Dlg::OnAddRecord()    
  {  
  long   rgIndices[1];  
  VARIANT   rgf;  
  VARIANT   rgv;  
  COleVariant   fld[3],   val[3];  
  SAFEARRAYBOUND   bound;  
  try  
  {  
  UpdateData(TRUE);  
  fld[0]="EmployeeID";  
  val[0]=m_lDlgID;  
  fld[1]="Name";  
  val[1]=m_strDlgName;  
  fld[2]="Address";  
  val[2]=m_strDlgAddress;  
   
  rgf.vt=VT_ARRAY|VT_VARIANT;  
  rgv.vt=VT_ARRAY|VT_VARIANT;  
   
  bound.cElements=3;  
  bound.lLbound=0;  
   
  rgv.parray=::SafeArrayCreate(VT_VARIANT,1,&bound);  
  if(rgv.parray==NULL)  
  AfxThrowMemoryException();  
  rgf.parray=::SafeArrayCreate(VT_VARIANT,1,&bound);  
  if(rgf.parray==NULL)  
  AfxThrowMemoryException();  
   
  for   (   int   i   =   0;   i   <   3;   i++)  
  {  
  rgIndices[0]=i;  
  ::SafeArrayPutElement(rgf.parray,   rgIndices,   &fld[i]);  
  ::SafeArrayPutElement(rgv.parray,   rgIndices,   &val[i]);  
  }  
   
  m_pRs->AddNew(&rgf,&rgv);  
  }  
  catch   (_com_error   &e)  
  {  
  GenerateError(e.Error(),   e.Description());  
  }  
  } 问题点数:80、回复次数:7Top

1 楼hustwjz(刻苦学习,勤奋找工作)回复于 2002-01-08 21:08:07 得分 10

建议你先去看一本书  
  “teach   youself   database   programming   with   visual   c++   in   21   days"  
  那本书将的很详细Top

2 楼cainiaobus(jacky)回复于 2002-01-08 21:10:23 得分 0

谢谢,我手头上一本MFC   Visual   C++   6   编程技术内幕  
  就象一个查询手册,一点都帮不上忙Top

3 楼masterz(www.fruitfruit.com)回复于 2002-01-08 21:19:33 得分 40

很短的程序,应该好看了吧  
  #include   "stdafx.h"  
  #import   "c:\\Program   Files\\Common   Files\\System\\ado\\msado15.dll"   no_namespace   rename("EOF",   "EndOfFile")  
  int   main(int   argc,   char*   argv[])  
  {  
  printf("Use   ADO   to   open   C:\\tmp\\test.mdb   database   file!\n");  
        CoInitialize(NULL);  
        try  
        {  
              _ConnectionPtr   pConn("ADODB.Connection");  
              _RecordsetPtr     pRst("ADODB.Recordset");  
              pConn->Open("PROVIDER=MSDASQL;DRIVER={Microsoft   Access   Driver   (*.mdb)};DBQ=C:\\tmp\\test.mdb;UID=;PWD=aaa;"  
   
  //pConn->Open("Provider=   Microsoft.Jet.OLEDB.4.0;Data   Source=C:\\tmp\\test.mdb;"//this   is   also   OK  
  ,"","",adConnectUnspecified);  
  //Open   "users"   table  
              pRst->Open("users",   _variant_t((IDispatch   *)   pConn,   true),  
                    adOpenStatic,   adLockReadOnly,   adCmdTable);  
      FieldsPtr   fds=pRst->GetFields();  
      printf("printf   field   name   of   the   table\n");  
      for(int   i=0;i<fds->GetCount();i++)  
      {  
      FieldPtr   fd=fds->GetItem(_variant_t(short(i)));  
      printf("%s       ",(LPCTSTR)fd->GetName());  
      }  
      printf("\n");  
              pRst->Close();  
              pConn->Close();  
        }  
        catch   (_com_error   &e)  
        {  
              printf("Description   =   '%s'\n",   (char*)   e.Description());  
        }  
  ::CoUninitialize();  
  return   0;  
  }Top

4 楼cainiaobus(jacky)回复于 2002-01-08 21:33:58 得分 0

to   masterz()  
  很好,谢谢  
  能否帮我解释一下下面几点  
   
  FieldsPtr   fds=pRst->GetFields();  
   
  FieldPtr   fd=fds->GetItem(_variant_t(short(i)));  
  printf("%s     ",(LPCTSTR)fd->GetName());  
               
   
  Top

5 楼masterz(www.fruitfruit.com)回复于 2002-01-08 21:40:43 得分 0

FieldsPtr   fds=pRst->GetFields();//得到field集合  
  FieldPtr   fd=fds->GetItem(_variant_t(short(i)));//得到第(i)个字段  
  printf("%s     ",(LPCTSTR)fd->GetName());//得到字段的名字Top

6 楼hanawu(hanawu)回复于 2002-01-08 23:36:24 得分 30

去www.vchelp.net查找“数据库“,里面有很详细的ADO中文教程Top

7 楼skt985(傻问天)回复于 2002-01-11 13:07:46 得分 0

45754关注!   :)Top

相关问题

  • VC中用ADO访问Oracle数据库
  • ADO访问数据库(vc)
  • 不用ODBC在VC中用ADO连接Oracle数据库怎样
  • VC中如何用ADO直接连接ACCESS数据库?
  • 在VC中如何用ADO访问数据库?
  • vc++中 利用 ADO 如何打开Access 数据库连接
  • 在VC中如何用ADO连接远程数据库
  • VC的问题:用ADO连接数据库?
  • VC中用ADO操作数据库出现“指针无效“(急)!
  • VC用ADO访问数据库?指点一二!!!!!

关键词

  • vc++
  • visual c++
  • 数据库
  • ado
  • null
  • prst
  • rgv
  • rgf
  • variant
  • pconn

得分解答快速导航

  • 帖主:cainiaobus
  • hustwjz
  • masterz
  • hanawu

相关链接

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

广告也精彩

反馈

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