ODBC的运行机制与编程

来源 :网络与信息 | 被引量 : 0次 | 上传用户:suan11111
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  通过ODBC 管理器可以增添、修改或删除数据源,也可以增添、删除ODBC驱动程序,ODBC管理器把数据源和它们的连接信息保存在ODBC. INI、ODBCINST. INI和ODBCISAM.INI中。当需要共享应用程序时,只需按新的数据文件的类型和位置重新登录即可。
  
  1. ODBC应用程序接口
  
  ODBC API是一组标准的ODBC函数库,除了一般的数据库操作函数外,还包括一组函数(如SQLExec或SQLEx- ecdlrect)能够内嵌标准SQL查询语句。SQL(StructuredQuery Language,结构化查询语言)是一种存取关系型数据库的标准语言,能够定义、查询、修改和控制数据,简单的语句能够作用于整个数据表格,具有很强的功能。API 函数按功能可分为以下几类(顺序也表示了进行数据库操作的顺序):
  (1)数据源连接函数,设置/获取有关信息的函数;
  (2)准备/提交执行SQL查询语句的函数和获得数据的函数;
  (3)终止函数和异常处理函数。
  有两个问题需要特别说明:一是数据类型问题,数据源中的数据所具有的数据类型称为SQL数据类型,不一定和ODBCSQL数据类型存储方式一致,驱动程序把这些数据类型同ODBCSQL数据类型进行相互转换;二是函数的调用级别问题,并不是每一个ODBC驱动程序都支持所有的ODBC API函数调用。
  
  2.ODBC应用编程
  
  在Visual C++中,MFC(Microsoft Foundation Class)为ODBC预定义了几个类,其中主要的是数据库类和记录集合类。CDatabase的每一个对象代表了一个数据源的连接,CRecordset的每一个对象代表了从一个数据表中按预定的查询条件获得的记录的集合,一般说来,前者适宜于对数据源下的某个数据表格进行整体操作,后者用于对所选的记录集合进行处理。
  在应用编程时,一般使用CDatabase和CRecordset的派生类。假设派生类分别为CUserdb和CUserset,而在应用类CUserClass中,使用了一个CUserdb对象(m-db)和一个Cuserset对象。
  2.1m-db连接数据源
  m-db在完成定义构造后,要调用 CDatabase的打开(Open)函数以进行数据源的实际连接:
  m-db.Open(lpszDSN,bExclusive,bReadOnly,lpsz-Connect)
  打开函数需要输入四个参数。lpszDSN:要连接的数据源的名字,如果 IpszDSN = NULL且 lpszConnect 中也没有指明数据源名,则该调用会自动出现一个对话框列出所有可用的数据源(名),让用户选择。bExclusive:只支持“假”(False)值,表示为共享(share)方式连接。ReadOnly:指明数据源操作方式是“只读”还是可以修改。lpszConnect:指明连接字符串,包括数据源名、用户标识码、口令等信息。该字符串必须以“ODBC;”开头,表示该连接是与一个ODBC数据源的连接(考虑以后版本支持非ODBC数据源)。
  2.2m-db操作数据
  数据源打开后,即可对数据库文件中的数据表格进行操作,操作以调用SQL语句方式进行,可直接通过ODBC API函数,或者CDatabase类成员函数ExecuteSQL。数据表名在SQL 语句中指定,如下语句则在所在的数据源中的 clerk 表中插入一个记录,记录的name字段值为“chen”。
   m-db.ExecuteSQL("insert into clerk (name) value('chent')")
  2.3m-recset操作数据
  记录集合生成后,其当前记录的各字段值被保存在前述的各字段变量中,如果调用CRecordset的滚动函数,如MoveFirst,MoveNext,MovePrev,MoveLast等,字段变量的值将自动跟随“当前”记录的位置的变化而变化。IsBOF,IsEOF用于判别是否移动到记录的头或尾。对于AddNew和Edit,修改字段变量后一定要调用函数Update,否则更新将丢失;而Delete操作则不必进行字段值修改和调用Update。在多用户系统使用时,每一个数据源可以被多个用户的多个任务连接,不同的任务可同时修改相同的数据源。ODBC 提供了两种数据表更新的同步机制(在m-recset.Open函数中指定),“静态”的和动态的。前者是一组静态的记录集合,当建立后不会改变,除了反映自己的添加/删除外,不反映别的用户的修改,除非调用了Requery重新建立。后者是一组动态的记录集合,自己或别的用户所作的修改随时反映到集合中来(当然也可用Requery重建),以保持记录与数据源的同步。
  
  3.总结
  
  从以上讨论可以看出,ODBC应用接口十分简便!再加上Visual C++ 中的AppWizard和ClassWizard自动生成框架代码功能,连接一个数据源,生成一个CRecordset对象,就更快捷了。应用程序只需关心数据的处理而不必费心数据的存取,另外,另一个与ODBC有关的类CRecordView,是一个窗口类CWnd的派生类,建立在CRecordset上,可直接构造数据库记录显示窗口,某些情况下也不妨一用。
其他文献
我们知道,笔记本的散热问题一直是困扰广大Vista本本用户的难题,网上有一种用手感觉笔记本温度的方法(直接摸笔记本电脑的键盘和底部),大家不妨一试,这种方法简单有效。  一般来说,手感觉不到的温度在25℃左右;有温度的感觉了在35℃度左右;温温的,也就是挺暖和的感觉应该在45℃左右;热但还可以连续接触应该在55℃左右;感到烫不过还能忍受三五秒的温度因该在70℃左右;感觉很烫,接触一下就后悔碰它了,
期刊
1 Linux的背景和特色    (1) 完全遵循POSLX标准,并扩展支持所有AT&T和BSD Unix特性的网络操作系统。    (2) 真正的多任务、多用户系统,内置网络支持,能与NetWare、Windows NT、OS/2、Unix 等无缝连接。    (3) 可运行于多种硬件平台,包括Alpha、SunSparc、PowerPC、MIPS等处理器,对各种新型外围硬件,也可以从分布于全球
期刊
很多人认为,只要重新安装了操作系统,就可以彻底清除病毒。但却不知道在操作系统进行重新安装后,由于安全设置以及补丁未及时安装等问题,最容易导致病毒的大肆入侵,因此一些必备的补充措施是非常关键的。    一、不要急着接入网络    在安装完成Windows后,不要立即把服务器接入网络,因为这时的服务器还没有打上各种补丁,存在各种漏洞,非常容易感染病毒和被入侵。此时要加上补丁后并重新启动再联入互联网。 
期刊
AutoCAD是国内广泛使用的计算机辅助绘图软件,已成为机械专业学生的主要绘图工具,操作此软件最直接的要求是在最短的时间内准确地完成绘图任务。但很多学生在实际工作中绘图速度慢,工作效率低,本人以AutoCAD2006中文版为参照,总结多年绘图的经验,整理出点滴学习思路,以供广大从事AutoCAD教学的教师、希望提高绘图速度的学生及其他相关人员参考。    1 合理配置AutoCAD共性参数,创建机
期刊
1 引言    信息集成通常是针对某个既定目标,或面向某特定任务,对信息进行组织和管理,它包含一种使相关的多元信息有机融合并优化使用的理念。网络环境下,数据极大丰富的同时也带来了数据泛滥的问题,Web信息集成技术是从巨量的信息中获取有效信息的方法。利用此项技术,用户只需关心自己的真正需求而无须登录多家网站;它提供的集成技术,能去除来自不同网站的数据的不一致性及冗余性;同时在搜集不到数据时,它提供的
期刊
1 引言    新型网络应用的不断涌现和用户数量的迅速增长给路由节点造成很大负担,越来越严重的网络拥塞问题暴露出来。拥塞控制算法在网络稳定运行方面具有十分重要的作用。研究表明由IP层参与的控制工作能更有效地对拥塞进行监测和预防,因此关于IP层拥塞控制的研究形成了一个新的热点,目前主要集中在AQM (Active Queue Management)算法方面。    2 RED的缺陷和改进分析    
期刊
电脑教室的管理,是一项繁琐和复杂的工作。由于不断安装新软件、软件版本不断升级更新以及计算机出现系统故障或病毒入侵等原因,常常要对计算机软件系统进行重建或恢复。PXE采用基于TCP /IP的多点传送的通信协议,可实现无盘网络启动,再将TFTP文件传送与GHOST网络多播克隆技术相结合,就可实现机房的高效、快速维护。  1 基本原理及工作环境  基于PXE的Ghost网络多播克隆原理如下:学生端通过P
期刊
自从6月2日,官方首次公布QQ 2008正式版的新功能之后,俺就一直盼望着这款新软件的到来。然而,在苦等了几天之后,这款迷雾般的新版本,却仍然没有一点消息。谁知,就在昨天晚上,笔者忽然获悉,最新的QQ 2008正式版已经正式上线了。按捺不住心头的喜悦,笔者马上在第一时间对新版本进行了一番体验。    一、 软件的安装    和前一版本相比,正式版QQ 2008并没有对安装过程进行太多改动。只是将所
期刊
对于企业的办公自动化系统来说,其业务内容往往涉及到多个部门、多个层面和多个领域,所有这些业务工作往往都需要多人和多个部门,每个部门或个人在完成他们各自工作的同时,也需要与其他部门或个人进行通力协作,这样才可以将所有的相关业务圆满完成。本文以Agent技术为核心,针对基于多Agent的办公自动化系统进行了研究和设计。    1 办公自动化系统的特点     企业的业务过程分成两种,一种是部门内部的私
期刊
当前流行的两种web应用开发环境Active Sever Pages(ASP)和Java Sever Pages(JSP)在技术方面有许多相似之处,都是可以嵌入HTML中的程序,都使用标签与脚本技术来制作动态WEB网页,为实现动态交互网页提供技术环境支持,而且都能够替代CGI,使网站建设与发展变得更为简单、快捷。  尽管两者有许多相似的地方,但仍然存在很多不同之处,其中最本质上的区别在于:两者来源
期刊