VB.net 2010 视频教程 VB.net 2010 视频教程 VB.net 2010 视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > VBnet >
  • vb.net教程之ODBC的结构

  • 2015-11-06 23:59 来源:未知

如果应用程序调用一个ODBC API函数,ODBC Administrator或Driver Manager会把命令传递给适当的驱动程序。经过翻译之后,驱动程序会将命令传递给特定的后端数据库服务器,采用它能理解的语言或代码。而通过ODBC返回的任何结果或结果集都将会沿着相反的方向传递。ODBC的结构如图所示:


图:ODBC的结构

对Visual Basic应用程序来说,在处理函数调用时,驱动程序和驱动程序管理器(Driver Manage)是一个整体。应用程序用ODBC API来完成以下任务:
(1)请求与数据源建立连接,创建一次会话;
(2)向数据源发出SQL请求;
(3)定义一个缓冲区和数据格式,用来存储SQL请求结果;
(4)提取SQL请求的结果;
(5)处理各种错误;
(6)给用户报告结果;
(7)事务提交或事务撤销;
(8)中断与数据源的连接。
上述结构中,驱动程序管理器(Driver Manager)是一个DLL,它由Microsoft提供,是一个带有入口函数库的动态连接,驱动程序管理器的基本任务是加载驱动程序。此外,还具有以下功能:
(1)根据ODBC.INI文件,把数据源名映射到相应的驱动程序;
(2)处理几个ODBC初始化函数;
(3)进行参数合法化检验。
结构图中SQL Server ODBC驱动程序是一个DLL,用来完成ODBC函数调用并与数据源进行对话。当应用程序调用SQLDriverConnection时,驱动程序管理器加载驱动程序。根据相应程序的要求,驱动程序可以完成以下任务:
(1)建立与数据源的连接;
(2)向数据源提交请求;
(3)根据应用程序的需要,完成数据格式的转换;
(4)把结果返回给应用程序;
(5)申请并控制游标(Cursor);
(6)根据数据源的需要,完成事务初始化。
上述这些功能对应用程序来说都是透明的。
结构图中的物理数据源是DBMS、操作系统和网络平台的一个综合体。
和Windows其他地方一样,为了处理对象,ODBC需使用相应的句柄。在能真正做些什么事情以前,必须先从ODBC或Windows获得这种句柄。ODBC提供了四个句柄:环境、连接、语句和描述符句柄,并且必须在连接数据源之前申请环境句柄。连接句柄的作用是将资源分配给实际的数据源连接。应用程序在与数据源连接以前必须先申请连接句柄,每个连接句柄只与一个环境句柄相连,一个环境句柄可与多个连接句柄相连;语句句柄用于管理对系统发出的实际请求,它必须与一个连接关联在一起,而这个连接也必须与环境关联到一起,应用程序在提交SQL请求以前必须先请求一个语句句柄,每一个语句句柄只与一个连接句柄相连,一个连接句柄可与多个语句句柄相连;描述符句柄则提供一些特殊的描述信息,例如结果集的数据列信息,或SQL语句的动态参数等等。下图显示了环境句柄、连接句柄和语句句柄之间的关系。

每一种SQL数据类型对应一种Visual Basic数据类型。在默认的情况下,驱动程序假设SQL语句中的列或参数的数据类型与连接在其上的Visual Basic数据类型是相对应的。如果Visual Basic数据类型不使用默认的数据类型,应用程序可以用函数SQLBindCol、SQLGetData、SQLBindParameter中的参数fcType来指定另外一个数据类型。在从数据源返回数据之前,驱动程序将数据转换为指定的数据类型。同样,在把数据传给数据源之前,驱动程序将指定的Visual Basic数据类型转换成SQL数据类型。

相关教程