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

vc中对access编程,如何在插入一条数据后,得到他的ID?

楼主sql_fly(微软)2005-06-02 08:26:29 在 VC/MFC / 数据库 提问

vc中对access编程,  
  现在用insert插入一条数据,并想同时返回他的id,  
  如果单纯执行语句用ExecuteSQL,  
  如果返回记录集用OpenRecord,  
  现在又要执行语句,又要返回一个ID,  
  应该怎么在vc中写代码? 问题点数:90、回复次数:12Top

1 楼laiyiling(陌生人[MVP])回复于 2005-06-02 08:30:00 得分 10

如何在表中新插入新记录后,获取该记录自动编号字段的值?  
  http://www.access911.net/fixhtm/71FAB21E16DC.htmTop

2 楼sql_fly(微软)回复于 2005-06-02 08:35:10 得分 0

楼上的连接不是我想要的,  
  我想知道的是如何在vc中得到那个id  
  也就是说vc的代码应该怎么写?Top

3 楼laiyiling(陌生人[MVP])回复于 2005-06-02 08:45:20 得分 0

 
   
  Top

4 楼sql_fly(微软)回复于 2005-06-02 08:52:51 得分 0

?空白?Top

5 楼bohut(●伯虎● )回复于 2005-06-02 08:58:37 得分 30

写一个“存储过程”,在“存储过程”中insert新记录,并且返回id  
   
  vc调用该存储过程。Top

6 楼sql_fly(微软)回复于 2005-06-02 09:03:28 得分 0

access里面没有存储过程Top

7 楼bohut(●伯虎● )回复于 2005-06-02 09:15:09 得分 0

http://efly.nenu.edu.cn/study/ReadNews.asp?NewsID=4111  
  在access中使用“存储过程”Top

8 楼mahatma_cn(研究硕士生)回复于 2005-06-02 09:41:37 得分 0

DAO?不知道dao执行sql命令时会不会返回受影响的记录集,好像ado可以!Top

9 楼sql_fly(微软)回复于 2005-06-02 09:51:47 得分 0

DAO?不知道dao执行sql命令时会不会返回受影响的记录集,好像ado可以!  
  ---什么意思,对我的题目有什么启示?  
  ---我用的是adoTop

10 楼cuiyu616ok(大宇)回复于 2005-06-02 11:48:08 得分 50

我也遇到了同样的问题帮助你顶Top

11 楼cuiyu616ok(大宇)回复于 2005-06-02 11:49:26 得分 0

CString   cstrDT   =   dtCurrDT.Format(VAR_DATEVALUEONLY)   +"   "+   dtCurrDT.Format(VAR_TIMEVALUEONLY);  
  //Add   new   exam   to   DB  
  _RecordsetPtr   m_pNewExamRecordset;  
  m_pNewExamRecordset.CreateInstance(__uuidof(Recordset));  
   
  m_pNewExamRecordset->CursorLocation   =   adUseClient;  
  m_pNewExamRecordset->CursorType   =   adOpenStatic;  
  m_pNewExamRecordset->LockType   =   adLockOptimistic;  
   
  _CommandPtr   pCommand;  
   
  pCommand.CreateInstance(__uuidof(Command));  
  try  
  {  
  char   cPID[10];  
  itoa(iPatientID,cPID,10);  
  CString   cstrSql   =   "Insert   into   tblExamination(PatientID,   ";  
  cstrSql   +=   "ExamDate,Description,SequenceName)   values   ('"   ;  
  cstrSql   +=   (CString)cPID   +   "','";  
  cstrSql   +=   cstrDT   +"','";  
  cstrSql   +=   cstrExamDescription   +"','";  
  cstrSql   +=   cstrTNTDescription   +"')";  
   
  pCommand->ActiveConnection   =   theApp.m_pConnection   ;  
  pCommand->CommandText   =   cstrSql.AllocSysString();  
  pCommand->Execute(NULL,NULL,adCmdText);  
  _variant_t   var;  
   
  CString   sql   =   "select   @@IDENTITY   AS   'newID'";  
  m_pNewExamRecordset->Open((_variant_t)sql,  
  theApp.m_pConnection.GetInterfacePtr(),  
  adOpenDynamic,  
  adLockOptimistic,  
  adCmdText);  
  m_pNewExamRecordset->MoveFirst();  
  if   (!m_pNewExamRecordset->adoEOF)  
  {  
  var   =   m_pNewExamRecordset->GetCollect("newID");  
  if(var.vt   !=   VT_NULL)  
  int   uiExamID   =   var.iVal;  
  }  
  }  
  catch(_com_error   *e)  
  {  
  AfxMessageBox(e->ErrorMessage());  
  pCommand.Release();  
  }  
  ================  
  以上是我的语句但是执行到var   =   m_pNewExamRecordset->GetCollect("newID");  
  这句就出错.Top

12 楼cuiyu616ok(大宇)回复于 2005-06-02 13:21:45 得分 0

CString   sql   =   "select   @@IDENTITY   AS   'newID'";  
  把这句改为CString   sql   =   "select   @@IDENTITY   AS   newID";  
  这样就可以了,我也刚刚解决.  
  Top

相关问题

  • vc编程总是
  • VC网络编程
  • VC和QT编程
  • VC网络编程
  • 关于插入数据的编程!!!急
  • vc++数据库编程
  • 请教VC编程问题
  • vc++USB编程请教
  • 怎样学vc编程
  • IIS编程难题(VC++6)!!!!!!!!!!!!

关键词

  • 存储过程
  • vc
  • 执行
  • access
  • sql
  • cstrsql
  • pnewexamrecordset
  • 插入
  • pcommand
  • cpid

得分解答快速导航

  • 帖主:sql_fly
  • laiyiling
  • bohut
  • cuiyu616ok

相关链接

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

广告也精彩

反馈

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