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

odbc

楼主syz()2000-03-20 10:25:00 在 C/C++ / C语言 提问

昨天去书店开书,就是没找到关于ODBC的书。我很想知道他是怎麽访问别   的数据库的。  
  听说他就是在数据库和用户之间的一个调和层,就象驱动程序似的。但我不知道他可不可以象操作数据库一样操作?当然用编程的方法VC、VB   。该怎麽做?谢谢!  
  我不是电脑专业,所以学什麽都是那麽初级。 问题点数:50、回复次数:9Top

1 楼Un1()回复于 2000-03-20 11:14:00 得分 0

参见:  
   
  http://www.computerworld.com.cn/99/tips/9901/01227_11.asp  
   
  http://www.midatech.com/csdn/expert/TopicView.asp?id=3511Top

2 楼DataBind(大肩)回复于 2000-03-20 15:54:00 得分 5

如果用vc的sdk风格程序:请如以下步骤操作:  
  1、分配odbc环境句柄  
  2、设置odbc驱动程序的版本  
  3、分配odbc的连接句柄  
  4、建立odbc连接  
  5、分配sql语句的句柄  
  6、执行语句  
  7、取到行数据  
  祥见msdn中关于odbc操作的文档。  
  可察看函数:SQLAllocHandle、SQLSetEnvAttr、SQLConnect、SQLExecDirect、SQLFetch、SQLGetData等。Top

3 楼haihong()回复于 2000-03-20 17:52:00 得分 0

因为odbc内容很少,所以没有对应的书,但是每本书基本都会提到odbc.  
  用的话要先装odbc驱动程序,然后在控制面板-》odbc中设置数据源,  
  再用楼上的说的就行了,可以和别的数据库相同操作Top

4 楼torney()回复于 2000-03-20 18:13:00 得分 0

可以从微软的数据访问站点看一看,或下载MDAC   SDK  
  http://www.microsoft.com/data/  
  Top

5 楼std_ream()回复于 2000-03-21 12:37:00 得分 0

在windows中使用比较简单,在window控制面版中有关于ODBC数据源的设置,ODBC使用步骤如下:  
          1.在控制面版中设定数据源  
          2.使用VC创建一个工程  
          3.利用VC的ODBC类(CDataBase,CRecordSet)编写操作程序  
                CDataBase与数据源建立连接,CRecordSet操作数据  
                可参考VC帮助MSDN  
   
  Top

6 楼syz()回复于 2000-03-21 17:42:00 得分 0

谢谢!我用SDK   不用类库。有比较详细点的吗?Top

7 楼DataBind(大肩)回复于 2000-03-21 18:29:00 得分 45

请参考以下代码(从数据源WriteWchar中的表account中提取UserName和PassWord字段的记录)  
  SQLHENV         henv     =   NULL;  
  SQLHSTMT       hstmt   =   NULL;  
  SQLHDBC         hdbc     =   NULL;  
  SQLRETURN     sqlreturn;  
           
  sqlreturn   =   SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);  
  //     创建odbc环境句柄  
  sqlreturn   =   SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);  
  //     设置odbc版本号  
  sqlreturn   =   SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);  
  //     创建odbc连接句柄  
  sqlreturn   =   SQLConnect(hdbc,   (unsigned   char   *)"WriteWchar",   SQL_NTS,  
                                                    (unsigned   char   *)"sa",   SQL_NTS,   (unsigned   char   *)"",   SQL_NTS);  
  //     建立odbc连接  
  sqlreturn   =   SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);  
  //     创建sql语句的语句句柄  
  sqlreturn   =   SQLPrepare(hstmt,(unsigned   char   *)"select   UserName,PassWord   from     account     ",SQL_NTS);  
  sqlreturn   =   SQLExecute(hstmt);  
  //     直接执行  
  short   ColsCount   =   0;  
  sqlreturn   =   SQLNumResultCols(hstmt,&ColsCount);  
  //得到返回结果集的列数  
  long   RowsCount   =   0;  
  sqlreturn   =   SQLRowCount(hstmt,&RowsCount);  
  //得到返回结果集的行数******不是列数******  
  char   szUserName[16];  
  char   szPassWord[13];  
  memset(szUserName,0,16);  
  memset(szPassWord,0,13);  
  //以上是存放绑定数据的缓冲区  
  SDWORD   cb;  
  memset(&cb,0,sizeof(SDWORD));  
  sqlreturn   =   SQLBindCol(hstmt,1,SQL_C_CHAR,szUserName,16,&cb);  
          sqlreturn   =   SQLBindCol(hstmt,2,SQL_C_CHAR,szPassWord,13,&cb);  
  sqlreturn   =   SQLFetch(hstmt);  
  while   (sqlreturn   ==   SQL_SUCCESS)  
  {  
  char   *   pDisplay   =   new   char[60];  
  memset(pDisplay,0,60);  
  sprintf(pDisplay,"UserName   =   \"%s\"   And   PassWord   =   \"%s\"",szUserName,szPassWord);  
  AfxMessageBox(pDisplay);  
  delete   pDisplay;  
                  sqlreturn   =   SQLFetch(hstmt);  
  }  
           
          SQLFreeHandle(SQL_HANDLE_STMT,   hstmt);  
          SQLDisconnect(hdbc);  
          SQLFreeHandle(SQL_HANDLE_DBC,   hdbc);  
          SQLFreeHandle(SQL_HANDLE_ENV,   henv);  
   
                                              From   DataBind  
  Top

8 楼Hank(星星农场)回复于 2000-03-22 14:04:00 得分 0

    清华大学出版社/希望出版社均有一套关于ODBC的书,都是翻译的微软公司的,都是两本,写的很详细!大32K,只要舍得Money即可!(两本好像要150)Top

9 楼Hank(星星农场)回复于 2000-04-01 11:05:00 得分 0

请查询:  
  http://www.bhp.com.cn/asp/book/p0101cpl.asp?ID00=0204&ID01=juJ-qcn9&ID02=x009~$*odbc*$  
  或:http://www.bhp.com.cn/Top

相关问题

  • ??????????????ODBC???????????
  • ODBC
  • ODBC
  • ODBC
  • odbc driver
  • JDBC_ODBC
  • 用户odbc→系统odbc
  • ODBC 配置
  • 连接ODBC
  • ODBC的API?

关键词

  • 语句
  • 数据
  • 数据库
  • 连接
  • 驱动
  • vc
  • asp
  • sql
  • null
  • sqlreturn

得分解答快速导航

  • 帖主:syz
  • DataBind
  • DataBind

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

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