CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何在VC++中执行SQL语句?

楼主lastday(黑风小妖)2001-07-11 15:11:14 在 VC/MFC / 基础类 提问

      最好能给出一段代码,谢谢。 问题点数:20、回复次数:6Top

1 楼xwchena(天雨)回复于 2001-07-11 15:21:13 得分 10

CString   sql="select   *   from   userfiles";  
  try  
  {  
  m_pRecordset->Open(_variant_t(sql),(IDispatch*)m_pConnection,  
  adOpenDynamic,  
  adLockOptimistic,  
  adCmdText);  
  while(!m_pRecordset->EndOfFile)  
  {  
  TheValue=m_pRecordset->GetCollect("FStatus");  
  if(TheValue.vt!=VT_NULL)  
  .....  
  m_pRecordset->MoveNext();  
  }  
  }  
  catch(...)  
  {  
  }Top

2 楼lastday(黑风小妖)回复于 2001-07-11 15:24:26 得分 0

我想我表达的不准确,我的意思是我可以在VC中直接使用SQL的语句吗?如:select   *   from   *  
  谢谢Top

3 楼Ashura(阿修罗)回复于 2001-07-11 15:37:54 得分 10

我昨天刚写的,看看吧,或许有用:  
  QueryPrimaryKey()  
  {  
  SQLHENV           henv;  
  SQLRETURN       retcode;  
  SQLHDBC hdbc;  
  SQLHSTMT         hstmt;  
  SQLCHAR szPkCol[COL_LEN];  
  SQLINTEGER     cbPkCol;  
  CString strSQLQueryPK;  
  LPSTR pSQLQueryPK;  
   
  strSQLQueryPK   =   "sp_pkeys   @table_name   =   'test'";  
  pSQLQueryPK   =   strSQLQueryPK.GetBufferSetLength(strSQLQueryPK.GetLength());  
  //分配环境句柄  
  retcode   =   SQLAllocHandle(SQL_HANDLE_ENV,   SQL_NULL_HANDLE,   &henv);  
  //设置环境属性  
  if   (retcode   ==   SQL_SUCCESS   ||   retcode   ==   SQL_SUCCESS_WITH_INFO)    
  retcode   =   SQLSetEnvAttr(henv,   SQL_ATTR_ODBC_VERSION,   (void*)SQL_OV_ODBC3,   0);  
  //分配连接句柄  
  if   (retcode   ==   SQL_SUCCESS   ||   retcode   ==   SQL_SUCCESS_WITH_INFO)  
  retcode   =   SQLAllocHandle(SQL_HANDLE_DBC,   henv,   &hdbc);  
   
  if   (retcode   ==   SQL_SUCCESS   ||   retcode   ==   SQL_SUCCESS_WITH_INFO)  
  {  
  retcode   =   SQLConnect(hdbc,(SQLCHAR*)   "JHMY",   SQL_NTS,  
                                      (SQLCHAR*)   "SA",   SQL_NTS,  
                                      (SQLCHAR*)   "",   SQL_NTS);  
  //分配语句句柄  
  if   (retcode   ==   SQL_SUCCESS   ||   retcode   ==   SQL_SUCCESS_WITH_INFO)  
  {  
                          retcode   =   SQLAllocHandle(SQL_HANDLE_STMT,   hdbc,   &hstmt);  
  //执行SQL语句  
  if   (retcode   ==   SQL_SUCCESS   ||   retcode   ==   SQL_SUCCESS_WITH_INFO)  
  {  
  retcode   =   SQLExecDirect(hstmt,(unsigned   char*)"sp_pkeys   @table_name   =   'test'",   SQL_NTS);  
  if   (retcode   ==   SQL_SUCCESS   ||   retcode   ==   SQL_SUCCESS_WITH_INFO)  
  {  
  retcode   =   SQLBindCol(hstmt,   4,   SQL_C_CHAR,   szPkCol,   COL_LEN,   &cbPkCol);  
  retcode   =   SQLFetch(hstmt);  
  AfxMessageBox((LPCTSTR)szPkCol);  
  }  
  SQLFreeHandle(SQL_HANDLE_STMT,   hstmt);  
  }  
  SQLDisconnect(hdbc);  
  }  
  SQLFreeHandle(SQL_HANDLE_DBC,   hdbc);  
               
  }  
  SQLFreeHandle(SQL_HANDLE_ENV,   henv);  
   
  }  
  Top

4 楼wjyasd(金子鱼)回复于 2001-07-11 15:38:10 得分 0

关注!Top

5 楼flagfly(我也不知道要去哪里)回复于 2001-07-11 15:48:57 得分 0

怎么不行?用api  
  char   sql[100];  
  strcpy(sql,"select   *   from   userfiles");  
  SQLExecDirect(hStmt,   (SQLCHAR   *)sql,   SQL_NTS);  
  Top

6 楼Ashura(阿修罗)回复于 2001-07-11 15:55:22 得分 0

哦,忘了,头两行不用的Top

相关问题

  • 如何在VC里直接执行SQL语句?
  • vc中SQL语句
  • 怎样执行sql语句?
  • sql语句执行问题
  • 如何执行SQL语句
  • 如何执行sql语句?
  • 如何执行SQL语句
  • 定时执行SQL语句
  • 定时执行SQL语句
  • PB中执行SQL语句

关键词

  • 语句
  • sql
  • retcode
  • strsqlquerypk
  • 句柄
  • sqlchar
  • henv
  • precordset
  • success
  • nts

得分解答快速导航

  • 帖主:lastday
  • xwchena
  • Ashura

相关链接

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

广告也精彩

反馈

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