设为首页 加入收藏

TOP

用VC++开发数据库应用程序(二)(一)
2012-11-04 15:16:42 来源: 作者: 【 】 浏览:365
Tags:开发 数据库 应用程序


  2.2 应用ODBC API建立应用程序

  虽然直接应用ODBC API编制应用程序相对来说较为繁琐,但是,由于直接使用ODBC API编写的程序相对要简洁、高效。所以,我们有必要学习直接使用ODBC API编程(www.cppentry.com)。

看图之王ACDSee 6.0应用大全数码人像照片矢量化及艺术处理
六天学会Visual Basic数据库编程(www.cppentry.com)解析“震荡波”恶性蠕虫病毒
  一般地,编写ODBC程序主要有以下几个步骤:

  分配ODBC环境

  分配连接句柄

  连接数据源

  构造和执行SQL语句

  取得执行结果

  断开同数据源的连接

  释放ODBC环境

  2.21 分配ODBC环境

  对于任何ODBC应用程序来说,第一步的工作是装载驱动程序管理器,然后初始化ODBC环境,分配环境句柄。

  首先,程序中声明一个SQLHENV类型的变量,然后调用函数SQLAllocHandle,向其中传递分配的上述SQLHENV类型的变量地址和SQL_HANDLE_ENV选项。如下代码所示:

SQLHENV henv;

SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);

  执行该调用语句后,驱动程序分配一个结构,该结构中存放环境信息,然后返回对应于该环境的环境句柄。

  2.22分配连接句柄

  分配环境句柄后,在建立至数据源的连接之前,我们必须分配一个连接句柄,每一个到数据源的连接对应于一个连接句柄。

  首先,程序定义了一个SQLHDBC类型的变量,用于存放连接句柄,然后调用SQLAllocHandle函数分配句柄。如下代码所示:

SQLHDBC hdbc;

SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);

henv为环境句柄。

  2.23 连接数据源

  当连接句柄分配完成后,我们可以设置连接属性,所有的连接属性都有缺省值,但是我们可以通过调用函数SQLSetConnectAttr()来设置连接属性。用函数SQLGetConnectAttr()获取这些连接属性。

  函数格式如下:

SQLRETURN SQLSetConnectAttr(SQLHDBC ConnectionHandle,SQLINTEGER Attribute,SQLPOINTER ValuePtr,SQLINTEGER StringLength);

SQLRETURN SQLGetConnectAttr(SQLHDBC ConnectionHandle,SQLINTEGER Attribute,SQLPOINTER ValuePtr,SQLINTEGER StringLength);

  应用程序可以根据自己的需要设置不同的连接属性。

  完成对连接属性的设置之后,就可以建立到数据源的连接了。对于不同的程序和用户接口,可以用不同的函数建立连接:SQLConnect、SQLDriverConnect、SQLBrowseConnect。

  SQLConnect

  该函数提供了最为直接的程序控制方式,我们只要提供数据源名称、用户ID和口令,就可以进行连接了。

  函数格式:

SQLRETURN SQLConnect(SQLHDBC ConnectionHandle,SQLCHAR ServerName,SQLSMALLINT NameLength1,SQLCHAR UserName,SQLSMALLINT NameLength2,SQLCHAR *Authentication,SQLSMALLINT NameLength3);

  参数:

   ConnectionHandle 连接句柄

   ServerName 数据源名称

   NameLength1 数据源名称长度

   UserName 用户ID

   NameLength2 用户ID长度

   Authentication 用户口令

   NameLength3 用户口令长度

  返回值:

   SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, or SQL_INVALID_HANDLE.

  成功返回SQL_SUCCESS,如果返回值为SQL_ERROR或SQL_SUCCESS_WITH_INFO,可以用函数SQLGetDiagRec获取相应SQLSTATE的值。 

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇VC++中Tab键控制问题的解决办法 下一篇高级WinSock多人游戏编程技术

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: