第六章 数据库编程
学习要求—通过本章的学习,要求掌握数据库的链接设置,其中包括和桌面数据库Access以及网络数据库SQL-Server的两种链接,能够熟练使用SQL命令以及本章所提供的公用函数实现对数据库的访问。 学习提示—由于篇幅的限制,SQL命令的三个大类数据定义语言(DDL)、数据操纵语(DML)和数据控制语言(DCL)需要参考数据库的相关书籍,在本章未作详细介绍。 主要内容—本章主要介绍了数据库的访问技术,针对不同的数据库平台,介绍了Visual Basic和数据库的链接技术,结合Recordset记录集合的概念,介绍了ADO控件在数据库访问中的使用方法,使读者能够利用本章所提供的模块公用函数实现数据库的访问。
第一节 数据库基础 快速开发MIS系统程序是Visual Basic的一个显著优势,如果要熟练地使用Visual Basic进行数据库的开发,必须具备下面几方面的知识:SQL(结构查询语言)的常用命令、Visual Basic与各种数据库平台的链接技术、Recordset(记录集)的使用。另外,如果要成为数据库系统开发的高层次人才,还必须掌握软件工程的相关知识。
一.SQL命令的实现 从二十世纪八十年代开始,SQL语言已经成为现代数据库的标准语言,它克服了面向单条记录操作的传统方式中较难掌握的循环和分支等语法,采用了面向记录集合的操作方式,提高了数据库访问的速度和准确性。 高版本的数据库都支持SQL语言,为了方便读者很快掌握SQL的命令基础,本节利用Access2000/XP这种本地数据库为例,简单介绍SQL的实现方法。
例题6-1 在“学生.MDB”Access数据库文档中有如图6-1所示的“成绩”表,要求利用SQL语句计算出每个学生的总分和平均分。
操作步骤如下: (一)执行Access中的“查询”对象如图6-2所示,选择Access数据库“对象”栏中的“查询”选项,单击“设计”按钮,从弹出的“显示表”对话框中选择“成绩”表后,单击该对话框中的“添加”按钮,然后“关闭”该对话框。
图6-2 Access中的“查询”对象
图6-3 SQL命令的执行
(二)在“查询”对象中执行SQL命令 如图6-3所示,从“视图”菜单项中选择“SQL视图”选项,将SQL命令 “Update 成绩 Set 总分=高数+英语+计算机,平均=(高数+英语+计算机)/3” 填入“查询1”的文本框内,按“!”按钮执行,即可更新“成绩”表,计算出每个学生的总分和平均分。 提醒:“成绩”表中的高数、英语、计算机、总分和平均字段类型都是数字型。“SQL视图”必须在“查询”对象设计时才能使用。SQL命令的格式可以参考数据库理论的相关书籍。 重点: 熟练掌握Access中利用“查询”对象实现SQL命令的方法。
二、ODBC数据库链接 ODBC开放数据库链接是操作系统Windows98以 上版本所具备的一组数据库驱动程序集合,ODBC 提供了一个开放的、标准的能访问从PC机、小型 机到大型机数据库数据的接口。使用ODBC标准接 口的应用程序,开发者可以不必深入了解要访问 的数据库系统所支持的操作和数据类型等信息, 而只需掌握通用的ODBC API编程方法即可。
例题6-2 将Access数据库“学生.MDB”文件设置成一个名为“Student”的ODBC系统数据源。 操作步骤如下: 1.选择ODBC执行 根据操作系统来查找ODBC驱动程序,若操作系统是Windows98,则从“控制面板中”可以直接发现“数据源 (ODBC)”图标,用鼠标双击即可执行;若操作系统是Windows2000/XP,则要从“控制面板|管理工具”中选择“数据源 (ODBC)”图标用鼠标双击,弹出如图6-6所示的ODBC数据源管理器界面。
图6-6 ODBC数据源管理器
2.选择数据源驱动程序 数据源分为以下三类: (1)用户数据源:用户创建的数据源,称为“用户数据源”。此时只有创建者才能使用,并且只能在所定义的机器上运行。任何用户都不能使用其他用户创建的用户数据源。 (2)系统数据源:所有用户和在Windows NT下以服务方式运行的应用程序均可使用系统数据源。 (3)文件数据源:文件数据源是ODBC 3.0以上版本增加的一种数据源,可用于企业用户,ODBC驱动程序也安装在用户的计算机上。 选择“系统DSN”标签页,单击“添加”按钮,弹出如图6-7所示的“创建新数据源”对话框,从数据源驱动程序组中选择“Microsoft Access Driver(*.mdb)”,单击“完成”按钮。
图6-7 创建新数据源对话框
3.安装ODBC数据源 从弹出的图6-8所示的ODBC安装界面中“选择”磁盘上相应的“学生.MDB”进行安装,单击“确定”按钮后,即在“ODBC数据源管理器”中增加一个DSN数据源。
图6-8 ODBC安装界面
第二节 数据库相关控件 由于数据库平台具有不同的版本,合适的数据库控件是Visual Basic访问数据库的有力工具。例如,基本控件中的Data数据控件仅能识别Access97以下的版本,不可识别Access2000/XP的数据库格式。本节主要介绍ADO(ActiveX Data Object)数据库控件和DataGrid数据网格控件。
一、ADO控件 ADO(ActiveX Data Object)数据访问控件是Microsoft处理数据库信息的最新技术,最早出现在VisualBasic6.0版本中,它是一种ActiveX对象,该控件对象支持三种数据库链接方式—Microsoft数据链接文件(UDL)方式、ODBC数据源链接方式和OLE DB的数据链接方式。ADO对象模型定义了—个可编程的分层对象集合,主要由Connection、Command和Recordset三个对象成员组成。 (一)添加ADO控件 在Visual Basic的工具箱中添加ADO控件的方法有两种:一种方法是第一章所介绍的从 “新建工程”对话框中选择“数据工程”(Data Project),这种方法所产生的工程中自动包含数据库编程所需要的常用控件,ADO控件被自动添加到工具箱中;另一种方法是建立“标准 EXE”工程后,利用增添“部件”的方法将ADO控件添加到工具箱中,具体操作方法是从如图6-4所示的“工程”子菜单中选择“部件(O)…”选项,弹出如图6-5所示的“部件”对话框,在“控件”标签页选中“Microsoft ADO Data Control 6.0(OLEDB)”选项,单击“应用”按钮后,ADO控件被添加到工具箱中。
图6-4 “工程”子菜单
图6-5 “部件”对话框
(二)使用ADO控件 ADO控件是一种绑定型控件,不能单独使用,随着ADO控件对象的引入,Visual Basic提供了一些新的控件成员来链接不同数据类型的数据。这些新成员主要有DataGrid、DataCombo、DataList、DataReport、MSHFlexGrid、MSChart控件和MonthView等控件,这些新增绑定控件必须使用ADO数据控件进行绑定。 1.ADO控件链接数据库 读者可以利用ADO控件的“属性页”快速地设置对数据库的链接,利用工具箱中的ADO控件在Visual Basic的窗体上产生一个ADO控件对象,选中该控件对象后单击鼠标右键,从浮动菜单中选择“ADODC Properties”菜单项单击,即可弹出如图6-9所示的“属性页”对话框。
图6-9 ADO属性页对话框
ADO的数据库链接方式有三种:“使用Data Link文件”、“使用ODBC数据资源名称”和“使用连接字符串”。本书主要介绍ODBC数据源和连接字符串两种方式。 利用前面所介绍的ODBC方式生成的DSN数据源可以从“使用ODBC数据源名称”的下拉列表中发现。此处重点介绍利用“使用连接字符串”的方法实现数据库的链接。 例题6-3 “学生.MDB”数据库文件存放于“D:\学生管理”文件夹中,利用“使用连接字符串”实现ADO对“学生.MDB”数据库文件的链接。 步骤: (1)利用工具箱中的ADO控件在Visual Basic的窗体上产生一个ADO控件对象“Adodc1”,选中该控件对象后单击鼠标右键,在图6-9 所示的ADO“属性页”对话框中单击“生成”按钮,弹出如图6-10所示的“数据链接属性”对话框,从中选择“Microsoft Jet 4.0 OLE DB Provider”驱动程序。
图6-10数据链接属性对话框
提醒:“Microsoft Jet 4. 0 OLE DB Provider”和“Microsoft Jet 3 提醒:“Microsoft Jet 4.0 OLE DB Provider”和“Microsoft Jet 3.1 OLE DB Provider”两个驱动程序的区别是:4.0的数据引擎可以链接Access 2000/XP及以上的数据库版本,而3.51的数据引擎只能识别Access97以下的数据库格式。
图6-10 “数据链接属性”对话框
(2)单击“数据链接属性”对话框中的“下一步”按钮或者“连接”标签选项,选取指定位置的数据库文件,单击“测试连接”按钮,得到“测试连接成功”信息框,如图6-11 所示。此时表示数据库已经连接成功,连续单击“确定”按钮返回图6-9 所示的“ADO属性页”对话框,即可得到可用的连接字符串“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\学生管理\学生.mdb;Persist Security Info=False”。 提醒:连接字符串由三部分构成:数据库驱动程序、数据源和安全设定(包括用户名和密码)。 提醒:数据源“Data Source=D:\学生管理\学生.mdb”中的路径是绝对路径,不便于程序的安装和执行,所以建议将盘符和路径部分删除,将数据库文件的路径改为相对路径,即数据源改为“Data Source=学生.mdb”,这样只要Visual Basic所编译生成的.EXE程序文件和“学生.MDB”数据库文件存放在同一个文件夹内,就可保证程序正常运行。 重点:由驱动程序决定所连接数据源的类型,例如当驱动程序是“Microsoft Jet”类型时,数据源是Access数据库文件(*.MDB);当驱动程序是“Microsoft OLE DB Provider for SQL Server”时,数据源是SQL Server的数据库名称。
图6-11 数据链接成功示意图
例题6-4 利用“连接字符串”的方式设置ADO与SQL Server2000的数据库链接。 步骤: (1)选中窗体中的ADO控件对象“Adodc1”,选中该控件对象后单击鼠标右键,在图6-9 所示的ADO“属性页”对话框中单击“生成”按钮,弹出如图6-10所示的“数据链接属性”对话框,从中选择“Microsoft OLE DB Provider for SQL Server”驱动程序。 (2)单击“下一步”按钮,弹出如图6-12所示的SQL Server2000的数据链接属性对话框,首先填写或选择已经启动的SQL Server服务器,然后填入正确的用户名和密码(建议使用“允许保存密码”选项),最后从服务器上选择所需要的数据库,测试连接成功即可。 (3)连续单击“确认”按钮返回到图6-9 所示的“ADO属性页”对话框,即可得到可用的连接字符串“Provider=SQLOLEDB.1;Password=888888;Persist Security Info=True;User ID=guest;Initial Catalog=学生管理;Data Source=YCRYPTO”,该字符串中按照从左向右顺序依次排列的是:驱动程序名;密码;允许安全设置;用户名ID;数据库和数据源。
图6-12 SQL Server2000的数据链接属性
提醒:“允许保存密码”项可以将密码信息保存到最终生成的连接字符串中,这样该连接字符串就可成为使用SQL Server的关键。 提醒:“输入登录服务器的信息”中可以有两种方式:已知Windows用户名和密码的方式或者在SQL Server中设置一个登录帐号。
2.ADO控件对象属性 ADO控件具有三个常用属性:ConnectionString(连接字符串),CommandType(命令类型)和RecordSource(记录源)。 (1)其中的ConnectionString的设置在前面已经作过介绍,此处省略。 (2)如图6-13所示,CommandType的选择项有四种: adCmdUnknown 未知命令,数据源默认为SQL命令; adCmdText 命令文本方式,数据源是SQL命令; adCmdTable 基本表方式,数据源是基本表的名字; adCmdStoredProc存储过程方式,数据源是数据库(例如SQL Server)所包含的存储过程名称。
图6-13 ADO控件对象的记录源设置
3.ADO控件的程序设计 读者通过修改这些常用属性的值来进行数据库的访问,以达到数据库程序设计的目的。 例题6-5 利用ADO控件对象浏览“学生.MDB”数据库中的成绩表数据。 步骤: (1)建立一个“数据工程”,在窗体上增加一个ADO控件对象Adodc1和五个Label控件对象和五个Text控件对象。 (2)设置Adodc1控件对象的属性,按照图6-9、图6-10以及图6-11所示的过程设置数据库链接,在图6-13所示的记录源设置中设置命令类型为adCmdtext,命令文本为 “Select * from 成绩”。
图6-14 设置Text1对象的数据库链接属性
(3)如图6-14所示设置Text1控件对象的属性,主要设置DataSource和DataField两个属性,Label控件对象和Text控件对象的属性设置完成后结果如表6-1所示。 表6-1 相关控件对象的属性设置 控件对象名称 属性设置 Label1 Caption="学号" Text1 DataSource =Adodc1 DataField="学号" Label2 Caption="姓名" Text2 DataField="姓名" Label3 Caption="高数" Text3 DataField="高数" Label4 Caption="英语" Text4 DataField="英语" Label5 Caption="计算机" Text5 DataField="计算机"
(4)运行结果如图6-15所示,利用Adodc1控件对象的导航器可以浏览满足SQL命令的所有记录。 图6-15 程序的运行结果
提醒:Adodc1控件对象不能单独使用,必须和支持数据库链接的控件进行绑定,否则无法使用。 重点:Adodc1控件对象的记录源属性若选择adCmdText或者adCmdUnknown,读者必须掌握SQL命令的基本语法。 ●技巧:可以先设置Text1控件对象的属性,设置完成后进行复制和粘贴,然后只要修改其他Text控件对象的Field属性即可。
二、DataGrid控件 简单的Text控件对象不便于显示数据记录,因此应该使用功能较强的数据网格控件DataGrid。DataGrid控件允许用户同时浏览或修改多个记录的数据。在使用DataGrid控件之前和ADO控件的增添类似,也必须先通过“工程|部件”菜单命令,从前面所示的图6-5中选择“Microsoft DataGrid Control 6.0(OLEDB)”选项,将DataGrid控件添加到工具箱,再将DataGrid控件对象放置到窗体上。设置DataGrid网格控件的DataSource属性为ADO控件对象名称,即可将DataGrid控件绑定到ADO控件上。 例题6-6 利用ADO控件和DataGrid控件进行记录查询,显示所有英语不及格的学生信息。
图6-16程序的对象窗口
步骤: (1)新建一个“数据工程”,在窗体上增添一个ADO控件对象Adodc1和 DataGrid控件对象DataGrid1,如图6-16所示,增加一个按键控件对象Command1,各个控件对象的属性设置如表6-2所示。 表6-2 ADO和DataGrid控件对象的属性设置 控件对象名称属性设置Command1Caption="查询"Adodc1ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=学生.mdb;Persist Security Info=False"CommandType=adCmdTextRecordSource="select * from 成绩 where 英语<60"DataGrid1DataSource=Adodc1 (2)双击“Command1”控件对象,切换到程序代码窗口,代码设计部分如下: Private Sub Command1_Click() Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; " + _ "Data Source=学生.mdb;Persist Security Info=False" Adodc1.CommandType = adCmdText Adodc1.RecordSource = "select * from 成绩 where 英语<60" Adodc1.Refresh ’刷新Adodc1控件对象,使各属性值有效 Set DataGrid1.DataSource=Adodc1 ’将DataGrid1和Adodc1两个控件对象进行绑定 End Sub
(3)运行结果如图6-17所示 图6-17 查询英语成绩不及格的学生记录
提醒:在使用相对路径(数据库文件名前无盘符和路径)前,应该先将工程和窗体保存到和“学生 提醒:在使用相对路径(数据库文件名前无盘符和路径)前,应该先将工程和窗体保存到和“学生.MDB”数据库文件相同的文件夹,然后在添加Adodc1控件对象。
第三节 Recordset记录集 SQL命令的特点是面向记录集合的操作,命令的结果保存为一个Recordset记录集。Recordset对象只代表一个记录集,这个记录集是一个连接的数据库中的表,或者是Command对象的执行结果返回的记录集。Recordset是在ADO对象模型中是在行中检查和修改数据的最主要的方法,所有对数据库记录的操作几乎都可在Recordset对象中完成,例如游标的定位,添加、更改和删除记录等。
一. Recordset的属性与函数 经过执行SQL命令之后,ADO控件对象中的Recordset会保存结果记录集,此处介绍常用的Recordset属性和方法(函数)。 (一)Recordset的属性 1.字段列表属性Fields 利用Fields属性可以得到当前记录的某个字段的值,使用格式有两种,其一利用字段名称,格式为Recordset.Fields(“字段名”);其二是利用字段在表结构中的索引序号,格式为Recordset.Fields(Index) 例如要得到例题6-6中的姓名,可以用以下的语句 MsgBox(Adodc1.Recordset.Fields(“姓名”)) 由于“姓名”字段的索引序号为1,也可以用下列语句 MsgBox(Adodc1.Recordset.Fields(1)) 技巧:由于用Recordset得到字段值的代码较长,不利于程序编写,可以用 “Adodc1!姓名”完全代替“Adodc1.Recordset.Fields(“姓名”)”,使程序简化。
2.游标定位方式CursorLocation 游标区实现了在Visual Basic执行SQL命令和数据库之间的接口,当其值为adUseClient时,表示用户程序为客户端,可以访问游标区的所有行。 3.记录首尾判断BOF和EOF 利用BOF可以判断记录的游标指针是否指向数据库的首部,当游标指向头部时,BOF的值为真值,否则为假值;同样,EOF可以判断游标指针是否指向数据库的尾部。 4.记录个数RecordCount RecordCount用于得到SQL命令执行后的记录集的记录个数,反映了游标区的所有行数。
(二)Recordset的方法 1.游标定位方法Move 使用Move方法可代替对数据控件对象的4个箭头按钮的操作遍历整个记录集。5种Move方法是: (1)MoveFirst方法:移至第1条记录。 (2)MoveLast方法:移至最后一条记录。 (3)MoveNext方法:移至下一条记录。 (4)MovePrevious方法:移至上一条记录。 (5)Move [n] 方法:向前或向后移n条记录,n为指定的数值。 2. 记录更新方法Update 保存对 Recordset 对象的当前记录所做的所有更新。 Recordset.Update [Fields][, Values] Fields为可选项,代表需要修改的字段(一个或多个)名称及索引序号位置。 Values 为可选项,代表新记录中字段(单个或多个)值。 如果希望取消对当前记录所做的任何更改或者放弃新添加的记录,则必须调用 CancelUpdate 方法。
4、取消更新方法CancelUpdate 使用 CancelUpdate 方法可取消对当前记录所作的任何更改或放弃新添加的记录。在调用 Update 方法后将无法撤消对当前记录或新记录所做的更改,如果在调用 CancelUpdate 方法时添加新记录,则调用 AddNew 之前的当前记录将再次成为当前记录。如果尚未更改当前记录或添加新记录,调用 CancelUpdate 方法将产生错误。 2.新增记录方法AddNew AddNew方法在记录集中增加新记录。增加记录的步骤为: (1)调用AddNew方法。 (2)给各字段赋值。给字段赋值格式为:Recordset.Fields(”字段名”)=值。 (3)调用Update方法,确定所做的添加,将缓冲区内的数据写入数据库。
二、记录集的使用 (一)设置公用记录集函数 1.设计公用记录集函数 利用记录集的特性在模块中构造一个全局函数,该函数有两个形参,一个是连接字符串CnStr,另一个是SQL命令,返回一个Recordset记录集。函数的定义如下所示: Public Function SQLExec(cnStr As String, SQLStr As String) As Recordset Dim cn As New Connection Dim rs As New Recordset cn.Open cnStr '设置VisualBasic与数据库的链接 rs.CursorLocation = adUseClient '设置游标定位,可以得到游标区的所有行 rs.Open SQLStr, cn, adOpenDynamic, adLockOptimistic '执行SQL命令,得到记录集 Set SQLExec = rs '函数的结果返回一个Recordset记录集 End Function
程序说明: adOpenForwardOnly缺省值,启动一个只能向前移动的游标。 adOpenKeyset启动一个Keyset类型的游标。 adOpenDynamic启动一个动态(Dynamic)类型的游标。 adOpenStatic 启动一个静态(Static)类型的游标。 adLockReadOnly缺省值,Recordset对象以只读方式启动,无法运行增加、删除和修改的操作。 adLockPrssimistic当数据源正在更新时,系统暂时锁住其他用户的操作,以保证数据一致性。 adLockOptimistic当数据源正在更新时,系统并不会对其他用户的动作加锁,其他用户可以对数据进行增加、删除和修改的操作。 adLockBatchOptimistic当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增加、删除和修改的操作。 这样读者只需要得到数据库的连接字符串并且掌握合法的SQL命令,就可以很方便地访问各类数据库。
2.实现步骤 (1)添加新建模块 在一个数据工程中,在如图6-4所示的“工程”子菜单选择“添加模块”单击,弹出模块代码窗口。 (2)在模块中添加函数 改变模块的名字为“SqlConnect”,并且将“SQLExec”函数的代码填入该模块中,如图6-18所示。
图6-18 公用Recordset函数的设计
(二)使用公用记录集函数 读者可以利用上面所提供的公用记录集函数进行数据库程序的开发,可以利用ADO控件对象获取连接字符串,利用Access进行SQL命令的调试,得到正确的SQL语句。 例题6-7 利用公用记录集函数进行学生成绩管理,计算每名学生的总分及平均分,按照学号查询“软件技术”专业学生的分数及相关信息。 步骤: 1.设置工程属性 新建“数据工程”,改变工程名为“成绩管理”,并将窗体名“frmDataEnv”改为“frmCJGL”,将工程和窗体保存到和“学生.MDB”数据库文件相同的文件夹。
图 6-19 “成绩管理”的工程资源管理器
2. 增添包含公用记录集的模块 在图6-4所示的“工程”子菜单选择“添加模块”单击,增加“现存”的模块“SqlConnect.bas”,得到如图6-19所示的资源管理器界面。 3.界面设计 增添DatdGrid1(不必修改属性)、Label1、Text1、Command1和Command2五个控件对象,进行窗体的对象界面设计,得到如图6-20所示的界面,控件对象的属性设置如表6-3所列。
图6-20 “成绩管理”的设计界面
表6-3 界面控件对象属性设置 控件对象名称属性设置Label1Caption="学号",Font 为"宋体,粗体,小三"Text1Text="",Font 为"宋体,粗体,小三"Command1Caption="求总分及平均",Font 为"宋体,粗体,小三"Command2Caption="查询",Font 为"宋体,粗体,小三"
4.切换到代码窗口,在“通用”中定义一个名为CJRs的记录集对象,一个字符串变量CJCnStr用于保存由ADO控件对象生成的连接字符串,一个字符串变量CJSQLStr用于存放SQL命令字符串。 在Form_Load()过程中初始化CJCnStr变量,变量的值来源于前面所述的ADO控件的连接,建议数据库文件的路径采用相对路径。 5.获取带参数的SQL命令 在VisualBasic中给变量CJSQLStr赋值查询学号为“1001”的学生成绩的SQL命令字符串是: CJSQLStr="select * from 成绩 where 学号='1001'" 将常量’1001’改为变量Text1.Text的步骤为: (1)从字符串中分离’1001’常量,可以将原字符串分解成三个子串 CJSQLStr="select * from 成绩 where 学号='"+"1001"+"'" (2)将”1001”替换成Text1.Text,实现在SQL字符串中添加VisualBasic的参数 CJSQLStr="select * from 成绩 where 学号='”+Text1.Text+”'"
6.代码实现 ’在窗体的“通用”部分定义三个变量 Dim CJRs As Recordset ’存储SQL命令运行后所得到的记录集 Dim CJCnStr As String ’存储连接字符串 Dim CJSQLStr As String ’存储每项正确的SQL命令字符串 Private Sub Command1_Click() CJSQLStr = "Update 成绩 Set 总分=高数+英语+计算机,平均=(高数+英语+计算机)/3" Set CJRs = SQLExec(CJCnStr, CJSQLStr) ’调用公用函数,利用CJRs得到结果记录集 MsgBox (" 计算完成") End Sub Private Sub Command2_Click() CJSQLStr = "select * from 成绩 where 学号='" + Text1.Text + "'" Set CJRs = SQLExec(CJCnStr, CJSQLStr) Set DataGrid1.DataSource = CJRs ’绑定DataGrid1控件对象和CJRs记录集对象 Private Sub Form_Load() CJCnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=学生.mdb;" + _ "Persist Security Info=False"
小结 本章主要从两个方面介绍数据库的程序设计,一方面是对ADO控件对象的设置;另一方面是利用ADO所提供的Recordset记录集公用函数。本章的目的是让读者能够从较繁琐的面向单条记录循环、分支等复杂设计中脱离出来,转而集中于SQL命令的获取以及连接字符串的设置,为公用函数提供两个字符串参数,最终简化数据库的程序设计。