论文部分内容阅读
摘要:数据库是当今计算机软件应用和开发最热门的分支之一,数据库应用程序是指能够从数据库管理系统DBMS获取数据并进行操作的程序。本文就是研究数据库中特殊数据的存取,以Visual C 6.0和access 2003环境下的数据库为例,介绍利用ADO实现对图像和超长数据库字段的访问,并在研究生信息管理系统中实现图像和超长数据字段的存取。
关键词:BLOB;VC ;ADO;ACCESS
中图分类号:G633.67文献标识码:A 文章编号:1992-7711(2017)19-092-1
一、Visual C 6.0开发数据库技术的特点
Visual C 6.0提供了多种多样的数据库访问技术——ODBC API、MFC ODBC、DAO、OLEDB、ADO等。这些技术各有自己的特点,但都提供了简单、灵活、访问速度快、可扩展性好的开发技术。
1.简单性。Visual C 6.0提供了MFC类库、ATL模板类以及AppWizard、ClassWizard等一系列的Wizard工具,用于帮助程序员快速的建立应用程序,大大简化了应用程序的设计过程。使用这些技术,只需编写很少的代码或不需要编写代码就可以开发一个数据库应用程序。
2.灵活性。Visual C 6.0提供的开发环境可以使程序员根据自己的需要设计应用程序的界面和功能,Visual C 6.0还提供了丰富的类库和方法,程序员可以根据应用程序的特点进行选择。
3.访问速度快。为了解决ODBC开发的数据库应用程序访问数据库速度慢的问题,Visual C 6.0提供了新的访问技术——OLEDB和ADO,OLEDB和ADO都是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,这大大提高了对数据库的访问速度。
4.可扩展性。Visual C 6.0提供了OLE技术和ActiveX技术,这种技术可以增强应用程序的能力。使用OLE技术和ActiveX技术可以使程序员利用Visual C 中提供的各种组件、控件以及第三方程序员提供的组件来创建自己的程序,从而实现应用程序的组件化。使用这种技术可以使应用程序具有良好的可扩展性。
5.访问不同种类数据源。传统的ODBC技术只能访问关系型数据库,在Visual C 中,提供了OLEDB访问技术,不仅可以访问关系型数据库,还可以访问非关系型数据库。
二、Visual C 6.0 开发数据库的相关技术
Visual C 提供了多种访问数据库的技术,ODBC(Open DataBase Connectivity)、MFC ODBC(Microsoft Foundation Classes ODBC)、DAO(Data Access Object)、OLEDB(Object Link and Embedding DataBase)、ADO(ActiveX Data Object). 这些技术各有自己的特点。
ADO技术是基于OLE DB的访问接口,它继承了OLE DB技术的优点。ADO对OLE DB的接口作了封装,定义了ADO对象,使程序开发得到了简化。ADO技术属于数据库访问的高层接口。
ADO访问数据源的特点可概括如下:
第一:易于使用,可以说这是ADO最重要的特点之一;第二:可以访问多种数据源;第三:访问数据源效率高;第四:方便地Web应用;第五:技术编程接口丰富。
三、图片的存取
1.图片间接存取。间接存取方法并不直接将图像存入数据库,而是在数据表中用专门字段存储图像文件的路迳和文件名,图像则以文件形式存放在指定的目录下,使用时根据数据库字段提供的信息找到所需图像文件并进行加载。
2.图片直接存取。直接存取方法是将图像数据存储在数据库关系表中,这样不仅可以保证图像数据的一致性和安全性,还可以提高图像数据的可用性和可伸缩性。
当前由于大多数据库系统并不提供对图像数据存取的支持,直接存取法的实现,须借助第三方开发工具来完成将图像从数据库中读取出来并显示,或者将图片保存在数据库中。下面就以Visual C 6.0和access 2003环境下的数据库为例,介绍利用ADO实现对图像的直接访问。
3.从数据库中读出图像。从数据库读取图片时,由于图片数据还不是很大,可以直接使用Field对象的函数GetChunk()将数据库中的位图数据读出来,以二进制形式保存在内存中,然后将内存中的位图内容转换到HBITMAP,这样就可以直接显示了。
四、超长数据库字段的操作方法
在实际的開发过程中常常需要存储较大的二进制数据对象,如图像、音频文件、视频文件或其他二进制数据,这些数据称之为二进制大对象BLOB(Binary Large Object),与存取图片类似,超常数据库字段的访问也有间接存取和直接存取两种方法。
1.SafeArray。在对BLOB进行操作时,文件可能很大,需要一次传递很多的数据时,使用SAFEARRAY就会很方便。SAFEARRAY是一种结构化的数据类型,包含了一个由其它数据类型的数据元素组成的数组。之所以称之为安全的数组是因为它包含了每一维的边界信息,并限制在边界内进行数组元素的访问。
2.将二进制文件写入到数据库。由于这个二进制文件可能很大,所以无法将所有内容一次性读入到内存。我们需要多次读入,每次可以使用函数CFile::Read()从文件中读出一个数据包(大小为ChunkSize),然后调用Field对象的AppendChrnk()函数将该包读入数据库。所有过程在一个while循环中实现,直到读完所有的数据。
3.从数据库读出二进制对象到文件。同样,由于这个二进制对象可能很大,无法将所有内容一次性读入内存中需要多次。每次使用Field对象的GetChunk()函数读出一个数据包(大小为ChunkSize),然后使用函数Cfile::Write()将该包写入文件中,所有过程在一个while循环中实现,直到读完所有的数据。
关键词:BLOB;VC ;ADO;ACCESS
中图分类号:G633.67文献标识码:A 文章编号:1992-7711(2017)19-092-1
一、Visual C 6.0开发数据库技术的特点
Visual C 6.0提供了多种多样的数据库访问技术——ODBC API、MFC ODBC、DAO、OLEDB、ADO等。这些技术各有自己的特点,但都提供了简单、灵活、访问速度快、可扩展性好的开发技术。
1.简单性。Visual C 6.0提供了MFC类库、ATL模板类以及AppWizard、ClassWizard等一系列的Wizard工具,用于帮助程序员快速的建立应用程序,大大简化了应用程序的设计过程。使用这些技术,只需编写很少的代码或不需要编写代码就可以开发一个数据库应用程序。
2.灵活性。Visual C 6.0提供的开发环境可以使程序员根据自己的需要设计应用程序的界面和功能,Visual C 6.0还提供了丰富的类库和方法,程序员可以根据应用程序的特点进行选择。
3.访问速度快。为了解决ODBC开发的数据库应用程序访问数据库速度慢的问题,Visual C 6.0提供了新的访问技术——OLEDB和ADO,OLEDB和ADO都是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,这大大提高了对数据库的访问速度。
4.可扩展性。Visual C 6.0提供了OLE技术和ActiveX技术,这种技术可以增强应用程序的能力。使用OLE技术和ActiveX技术可以使程序员利用Visual C 中提供的各种组件、控件以及第三方程序员提供的组件来创建自己的程序,从而实现应用程序的组件化。使用这种技术可以使应用程序具有良好的可扩展性。
5.访问不同种类数据源。传统的ODBC技术只能访问关系型数据库,在Visual C 中,提供了OLEDB访问技术,不仅可以访问关系型数据库,还可以访问非关系型数据库。
二、Visual C 6.0 开发数据库的相关技术
Visual C 提供了多种访问数据库的技术,ODBC(Open DataBase Connectivity)、MFC ODBC(Microsoft Foundation Classes ODBC)、DAO(Data Access Object)、OLEDB(Object Link and Embedding DataBase)、ADO(ActiveX Data Object). 这些技术各有自己的特点。
ADO技术是基于OLE DB的访问接口,它继承了OLE DB技术的优点。ADO对OLE DB的接口作了封装,定义了ADO对象,使程序开发得到了简化。ADO技术属于数据库访问的高层接口。
ADO访问数据源的特点可概括如下:
第一:易于使用,可以说这是ADO最重要的特点之一;第二:可以访问多种数据源;第三:访问数据源效率高;第四:方便地Web应用;第五:技术编程接口丰富。
三、图片的存取
1.图片间接存取。间接存取方法并不直接将图像存入数据库,而是在数据表中用专门字段存储图像文件的路迳和文件名,图像则以文件形式存放在指定的目录下,使用时根据数据库字段提供的信息找到所需图像文件并进行加载。
2.图片直接存取。直接存取方法是将图像数据存储在数据库关系表中,这样不仅可以保证图像数据的一致性和安全性,还可以提高图像数据的可用性和可伸缩性。
当前由于大多数据库系统并不提供对图像数据存取的支持,直接存取法的实现,须借助第三方开发工具来完成将图像从数据库中读取出来并显示,或者将图片保存在数据库中。下面就以Visual C 6.0和access 2003环境下的数据库为例,介绍利用ADO实现对图像的直接访问。
3.从数据库中读出图像。从数据库读取图片时,由于图片数据还不是很大,可以直接使用Field对象的函数GetChunk()将数据库中的位图数据读出来,以二进制形式保存在内存中,然后将内存中的位图内容转换到HBITMAP,这样就可以直接显示了。
四、超长数据库字段的操作方法
在实际的開发过程中常常需要存储较大的二进制数据对象,如图像、音频文件、视频文件或其他二进制数据,这些数据称之为二进制大对象BLOB(Binary Large Object),与存取图片类似,超常数据库字段的访问也有间接存取和直接存取两种方法。
1.SafeArray。在对BLOB进行操作时,文件可能很大,需要一次传递很多的数据时,使用SAFEARRAY就会很方便。SAFEARRAY是一种结构化的数据类型,包含了一个由其它数据类型的数据元素组成的数组。之所以称之为安全的数组是因为它包含了每一维的边界信息,并限制在边界内进行数组元素的访问。
2.将二进制文件写入到数据库。由于这个二进制文件可能很大,所以无法将所有内容一次性读入到内存。我们需要多次读入,每次可以使用函数CFile::Read()从文件中读出一个数据包(大小为ChunkSize),然后调用Field对象的AppendChrnk()函数将该包读入数据库。所有过程在一个while循环中实现,直到读完所有的数据。
3.从数据库读出二进制对象到文件。同样,由于这个二进制对象可能很大,无法将所有内容一次性读入内存中需要多次。每次使用Field对象的GetChunk()函数读出一个数据包(大小为ChunkSize),然后使用函数Cfile::Write()将该包写入文件中,所有过程在一个while循环中实现,直到读完所有的数据。