《VB中的数据库编程,Vb的ADO和DAO.ppt》由会员分享,可在线阅读,更多相关《VB中的数据库编程,Vb的ADO和DAO.ppt(171页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1ADO对象模型对象模型nADO(ActiveXADO(ActiveX Data Object)Data Object)活动数据访问接口是活动数据访问接口是MicrosoftMicrosoft处理数据库信息的最新技术。采用处理数据库信息的最新技术。采用OLE DBOLE DB的数据访问模式,是数据访问对象的数据访问模式,是数据访问对象DAODAO、远程数据对远程数据对象象RDORDO和开放数据库互连和开放数据库互连ODBCODBC三种方式的扩展。三种方式的扩展。nADOADO对象模型定义了一个可编程的分层对象集合,主对象模型定义了一个可编程的分层对象集合,主要由三个对象成员要由三个对象成员C
2、onnectionConnection、CommandCommand和和RecordsetRecordset对象,以及几个集合对象对象,以及几个集合对象ErrorsErrors、ParametersParameters和和FieldsFields等所组成。等所组成。6 6.5 ADO.5 ADO数据控件数据控件 6 6.5 ADO.5 ADO数据控件数据控件 图图6.13 6.13 ADOADO对象模型对象模型 6 6.5 ADO.5 ADO数据控件数据控件 ConnectionConnectionConnectionConnection对象对象对象对象ErrorsErrorsErrorsEr
3、rors集合集合集合集合ErrorErrorErrorError对象对象对象对象CommandCommandCommandCommand对象对象对象对象ParametersParametersParametersParameters集合集合集合集合ParameterParameterParameterParameter对象对象对象对象RecordsetRecordsetRecordsetRecordset对象对象对象对象FieldsFieldsFieldsFields集合集合集合集合FieldFieldFieldField对象对象对象对象6 6.5 ADO.5 ADO数据控件数据控件 表表6.
4、6 6.6 ADOADO对象描述对象描述 对象名对象名 描描 述述Connection Connection 指定连接数据来源指定连接数据来源Command Command 发出命令信息从数据源获取所需数据发出命令信息从数据源获取所需数据RecordsetRecordset 由一组记录组成的记录集由一组记录组成的记录集Error Error 访问数据源时所返回的错误信息访问数据源时所返回的错误信息Parameter Parameter 与命令对象有关的参数与命令对象有关的参数Field Field 记录集中某个字段的信息记录集中某个字段的信息2 2 使用使用ADOADO数据控件数据控件n使使用
5、用ADOADO数数据据控控件件,必必须须先先通通过过 工工程程|部部件件 菜菜单命令选项。单命令选项。6 6.5 ADO.5 ADO数据控件数据控件 选择选择Microsoft ADO DataMicrosoft ADO Data Control 6.0(OLEDB)Control 6.0(OLEDB)将将ADOADO数据控件数据控件添加到工具箱添加到工具箱在窗体中使用在窗体中使用ADOADO数据控件的方式与数据控件的方式与DataData控件相似,使控件相似,使用用ADOADO数据控件的数据控件的基本属性基本属性,可以快可以快速地创建与数据库速地创建与数据库的连接。的连接。n在在程程序序中中
6、使使用用ADOADO对对象象,必必须须先先为为当当前前工工程程引引用用ADOADO的的对对象象库库。引引用用方方式式是是执执行行 工工程程 菜菜单单的的 引引用用 命命令令,启启动动引引用用对对话话框框,在在清清单单中中选选取取 MicrosoftActiveXMicrosoftActiveX Data Data Objects Objects 2.0 2.0 LibraryLibrary 选项。选项。6 6.5 ADO.5 ADO数据控件数据控件 进入进入1 1)ADOADO数据控件的基本属性数据控件的基本属性nConnectionStringConnectionString属性属性ADOA
7、DO控件没有控件没有DatabaseNameDatabaseName属性,它使用属性,它使用ConnectionStringConnectionString属性与数据库建立连接。该属性属性与数据库建立连接。该属性包含了用于与数据源建立连接的相关信息。包含了用于与数据源建立连接的相关信息。指定打开客户端连接时使用的服务器路径名称,仅限于Remote Data ServiceRemoteServer指定打开客户端连接时使用的提供者名称。(仅限于Remote Data Service)RemoteProvider指定数据源所对应的文件名FileName指定数据源的名称Provide描述参数 Conn
8、ectionString属性参数6 6.5 ADO.5 ADO数据控件数据控件 6 6.5 ADO.5 ADO数据控件数据控件 默认值。CommandText 属性中的命令类型未知adCmdUnknown表示数据库中的一个存储过程AdCmdStoredProc表明数据库中的一个表明AdCmdTable表示产生一个产生记录集的SQL语句AdCmdText说 明Command类型nRecordSourceRecordSource属性属性该属性确定可访问的数据,这些数据构成记录集对象该属性确定可访问的数据,这些数据构成记录集对象RecordsetRecordset。该属性值可以是数据库中单个表名、一
9、个存储查该属性值可以是数据库中单个表名、一个存储查询或者是使用询或者是使用SQLSQL查询语言的查询字符串。查询语言的查询字符串。nConnectionTimeoutConnectionTimeout属性属性用用于于数数据据连连接接的的超超时时设设置置,若若在在指指定定时时间间内内连连接不成功显示超时信息。接不成功显示超时信息。nMaxRecordsMaxRecords属性属性定义从一个查询中最多能返回的记录数。定义从一个查询中最多能返回的记录数。6 6.5 ADO.5 ADO数据控件数据控件 2 2)ADOADO数据控件的方法和事件数据控件的方法和事件nADOADO数数据据控控件件的的方方法
10、法和和事事件件与与DataData控控件件的的方方法法和事件完全一样。和事件完全一样。3 3)设置)设置ADOADO数据控件的属性数据控件的属性n下下面面通通过过使使用用ADOADO数数据据控控件件连连接接Student.mdbStudent.mdb数数据库来说明据库来说明ADOADO数据控件属性的设置。数据控件属性的设置。6 6.5 ADO.5 ADO数据控件数据控件 n步步骤骤1 1:在在窗窗体体上上放放置置ADOADO数数据据控控件件,控控件件名名采采用用默默认名认名 AdodclAdodcl。6 6.5 ADO.5 ADO数据控件数据控件 n步步骤骤2 2:在在ADOADO控控件件按按
11、鼠鼠标标右右键键,选选择择ADOADO属属性性时时,弹出弹出 属性页属性页 对话框。对话框。6 6.5 ADO.5 ADO数据控件数据控件 允许通过三种不同允许通过三种不同的方式连接数据源的方式连接数据源表示通过一个连表示通过一个连接文件来完成接文件来完成使用使用ODBCODBC数据资源名称数据资源名称 可以通过可以通过下拉式列表框,选择某个创建好下拉式列表框,选择某个创建好的数据源名称的数据源名称(DSN)DSN),作为数据来作为数据来源对远程数据库进行控制源对远程数据库进行控制通过选项设置自动产生连接字符串通过选项设置自动产生连接字符串n步骤步骤3 3:采用:采用 使用连接字符串使用连接字
12、符串 方式连接数据源。方式连接数据源。6 6.5 ADO.5 ADO数据控件数据控件 单击单击生成生成按钮,打开按钮,打开数据链接属性数据链接属性对话框对话框n步骤步骤3 3:采用:采用 使用连接字符串使用连接字符串 方式连接数据源。方式连接数据源。6 6.5 ADO.5 ADO数据控件数据控件 在在 提供程序提供程序 选项内选择一个合适的选项内选择一个合适的OLE DBOLE DB数据源,数据源,Student.mdbStudent.mdb是是AccessAccess数据库,选择数据库,选择 Microsoft Jet 3.51 OLE DB ProviderMicrosoft Jet 3.
13、51 OLE DB Provider 选项。选项。单击单击下下步步按钮按钮n步骤步骤3 3:采用:采用 使用连接字符串使用连接字符串 方式连接数据源。方式连接数据源。6 6.5 ADO.5 ADO数据控件数据控件 在在 连接连接 选项内,选项内,指定数据库文件,指定数据库文件,Student.mdbStudent.mdb为保证连接有效,可单为保证连接有效,可单击击 连接连接 选项卡右下方选项卡右下方的的 测试连接测试连接 按钮,如按钮,如果测试成功则关闭数据果测试成功则关闭数据链接属性页链接属性页n步骤步骤4 4:在记录源属性页对话框。:在记录源属性页对话框。6 6.5 ADO.5 ADO数据
14、控件数据控件 在在 命令类型命令类型 下下拉列表框中选择拉列表框中选择22 adCmdTableadCmdTable选项选项在在 表或存储过程名称表或存储过程名称 下拉式列表框中选择下拉式列表框中选择Student.mdbStudent.mdb数据库中数据库中的的 基本情况基本情况 表表n完成完成ADOADO数据控件的连接工作数据控件的连接工作。进入进入3 3 ADOADO数据控件上新增绑定控件数据控件上新增绑定控件DataGridDataGrid,DataComboDataCombo,DatalistDatalist,DataReportDataReport等等6 6.5 ADO.5 ADO
15、数据控件数据控件 例例6.6 6.6 使用使用ADOADO数据控件和数据控件和DataGridDataGrid数据网格控件浏数据网格控件浏览数据库览数据库Student.mdbStudent.mdb,并使之具有编辑功能。并使之具有编辑功能。n下图下图为具有增、删、改功能的数据网格绑定。为具有增、删、改功能的数据网格绑定。6 6.5 ADO.5 ADO数据控件数据控件 标有标有 号的记录号的记录行表示允许增行表示允许增加新记录加新记录进入进入nDataGridDataGrid控件使用方法控件使用方法:需通过需通过 工程工程|部件部件 菜单命令选择菜单命令选择DataGridDataGrid控件,
16、控件,6 6.5 ADO.5 ADO数据控件数据控件 将将DataGridDataGrid控件添加控件添加到工具箱到工具箱nDataGridDataGrid控件使用方法控件使用方法:将将DataGridDataGrid控件放置到窗体上。控件放置到窗体上。设设置置DataGridDataGrid网网格格控控件件的的DataSourceDataSource属属性性为为Adodc1Adodc1,实现实现DataGrid1DataGrid1绑定到数据控件绑定到数据控件Adodc1Adodc1。6 6.5 ADO.5 ADO数据控件数据控件 nDataGridDataGrid控控件件允允许许用用户户同同
17、时时浏浏览览或或修修改改多多个个记记录的数据。录的数据。6 6.5 ADO.5 ADO数据控件数据控件 nAllowAddNewAllowAddNew(增)(增)nAllowDeleteAllowDelete(删)(删)nAllowUpdateAllowUpdate(改)(改)n修改功能通过修改功能通过DataGridDataGrid属属 性设置实现,可以设置的性设置实现,可以设置的 属性为:属性为:进入进入必须使用必须使用ADOADO数据控件进行绑定的控件数据控件进行绑定的控件:6 6.5 ADO.5 ADO数据控件数据控件 DataListDataList控件控件 DataSourceDa
18、taSource,DataFiledDataFiled RowSourceRowSource,ListFieldListField必须使用必须使用ADOADO数据控件进行绑定的控件数据控件进行绑定的控件:6 6.5 ADO.5 ADO数据控件数据控件 DataComboDataCombo控件控件 DataSourceDataSource,DataFiledDataFiledRowSource,ListField4 4 使用数据窗体向导使用数据窗体向导n窗窗体体向向导导是是为为自自动动生生成成VBVB窗窗体体而而设设计计的的,所所生生成成的的窗窗体体包包含含有有各各个个被被绑绑定定的的控控件件和
19、和过过程程,只只能能和和ADOADO控控件件一一起起使使用用.是显示数据库内容的一种方法是显示数据库内容的一种方法.n数数据据窗窗体体向向导导属属于于外外接接程程序序。在在Visual Visual Basic Basic 6.06.0集集成成开开发发环环境境的的横横向向菜菜单单中中点点击击 外外接接程程序序,再再点点击击子子菜菜单单的的 外外接接程程序序管管理理器器,从从打打开开的的 外外接接程程序序管管理理器器 窗窗口口选选择择 VB VB 6 6数数据据窗窗体体向向导导 命命令令,将将数数据据窗窗体体装装入入到到 外接程序外接程序 中。中。n例例6.7 6.7 使使用用数数据据窗窗体体向
20、向导导建建立立Student.mdbStudent.mdb数数据据库库的的数数据访问对话框。据访问对话框。6 6.5 ADO.5 ADO数据控件数据控件 步骤步骤1 1:选择选择 外接程序外接程序 菜单中的菜单中的 数据窗体向导数据窗体向导 命令命令6 6.5 ADO.5 ADO数据控件数据控件 点击点击 确定确定,进入进入 数据窗数据窗体向导体向导介绍介绍 对话框对话框6 6.5 ADO.5 ADO数据控件数据控件 单击单击下下步步按钮,进入按钮,进入数据数据窗体向导窗体向导数据库类型数据库类型对话框对话框可可以以选选择择任任何何版版本本的的AccessAccess数数据据库库或或任任何何O
21、DBCODBC兼兼容容的的用于远程访问的数据库。本例选择用于远程访问的数据库。本例选择AccessAccess数据库。数据库。6 6.5 ADO.5 ADO数据控件数据控件 步步骤骤3 3:在在 数数据据窗窗体体向向导导数数据据库库 对对话话框框内内选选择择具具体的数据库文件。本例为体的数据库文件。本例为Student.mdbStudent.mdb数据库。数据库。6 6.5 ADO.5 ADO数据控件数据控件 步步骤骤4 4:在在 数数据据窗窗体体向向导导FormForm对对话话框框内内设设置置应应用窗体的工作特性。用窗体的工作特性。6 6.5 ADO.5 ADO数据控件数据控件 按单条记录形
22、式显示按单条记录形式显示按数据网格形式同时显按数据网格形式同时显示多条记录示多条记录按数据网格形式同时显按数据网格形式同时显示多表的多条记录示多表的多条记录按多种数据网格形式按多种数据网格形式同时显示多条记录同时显示多条记录本例演示第本例演示第5 5种窗体布局生成方法种窗体布局生成方法单击下一步单击下一步步步骤骤5 5:在在 数数据据窗窗体体向向导导记记录录源源 对对话话框框内内设设置置应应用窗体的工作特性。用窗体的工作特性。6 6.5 ADO.5 ADO数据控件数据控件 记录源选择学生成绩表记录源选择学生成绩表从可用字段栏选择要显示从可用字段栏选择要显示的字段到选定字段栏的字段到选定字段栏列
23、排序按列排序按学号学号步步骤骤6 6:在在 数数据据窗窗体体向向导导选选择择图图表表字字段段 对对话话框框内内选择所需要显示的文字。选择所需要显示的文字。6 6.5 ADO.5 ADO数据控件数据控件 步步骤骤7 7:进进入入 数数据据窗窗体体向向导导选选择择图图表表样样式式 对对话话框框,可以将整个操作过程保存到一个向导配置文件可以将整个操作过程保存到一个向导配置文件.rwprwp中。中。6 6.5 ADO.5 ADO数据控件数据控件 选择选择3D Bar3D Bar步步骤骤8 8:进进入入 数数据据窗窗体体向向导导选选择择外外观观属属性性 对对话话框框,可以将整个操作过程保存到一个向导配置
24、文件可以将整个操作过程保存到一个向导配置文件.rwprwp中。中。6 6.5 ADO.5 ADO数据控件数据控件 选择显示图例选择显示图例步步骤骤7 7:进进入入 数数据据窗窗体体向向导导已已完完成成 对对话话框框,可可以以将整个操作过程保存到一个向导配置文件将整个操作过程保存到一个向导配置文件.rwprwp中。中。单单击击 完完成成 按按钮钮结结束束数数据据窗窗体体向向导导的的交交互互,此此时时向向导导将自动产生数据访问对话框的画面及代码。将自动产生数据访问对话框的画面及代码。6 6.5 ADO.5 ADO数据控件数据控件 进入进入nSQLSQL中使用中使用SELECTSELECT语句实现查
25、询。语句实现查询。nDataData控件的控件的RecordSourceRecordSource属性可以是属性可以是数据表名数据表名;nRecordSourceRecordSource属属性性可可以以是是数数据据表表中中的的某某些些行行或或多多个个数数 据据 表表 中中 的的 数数 据据 组组 合合。直直 接接 在在 DataData控控 件件 的的RecordSourceRecordSource属属性性栏栏中中输输入入SQLSQL,或或在在代代码码中中通通过过SQLSQL语语 句句 将将 选选 择择 的的 记记 录录 集集 赋赋 给给 数数 据据 控控 件件 的的RecordSourceRe
26、cordSource属性。属性。6 6.6.6 VBVB中的中的SQLSQL实现实现 6 6.6 VB.6 VB中中SQLSQL的实现的实现 n例例6.8 6.8 使使用用SQLSQL语语句句实实现现查查找找功功能能,显显示示某某专专业的学生记录。业的学生记录。n使使用用SQLSQL语语句句查查询询,命命令令按按钮钮Command5_ClickCommand5_Click事件代码如下:事件代码如下:6 6.6.6 VBVB中的中的SQLSQL实现实现 进入进入6 6.6.6 VBVB中的中的SQLSQL实现实现 Private Sub Command5_Click()Dim mzy As St
27、ring mzy=InputBox$(请输入专业,查找窗)Data1.RecordSource=Select*From 基本_情况 Where 专业=&mzy&Data1.Refresh If Data1.Recordset.EOF Then MsgBox 无此专业!,提示 Data1.RecordSource=基本情况 Data1.Refresh End IfEnd Sub短语指定数据来源;短语指定数据来源;Where Where 专业专业=&mzymzy&短语构成查询条件,短语构成查询条件,用于过滤表中的记录用于过滤表中的记录对于未查找到记录情况的处理对于未查找到记录情况的处理激活激活Re
28、cordSourceRecordSource的变化的变化6 6.6.6 VBVB中的中的SQLSQL实现实现 Private Sub Command5_Click()Dim mzy As String mzy=InputBox$(请输入专业,查找窗)Data1.RecordSource=Select*From 基本_情况 Where 专业=&mzy&Data1.Refresh If Data1.Recordset.EOF Then MsgBox 无此专业!,提示 Data1.RecordSource=基本情况 Data1.Refresh End IfEnd Sub如果使用模糊查询语句可改写如上
29、如果使用模糊查询语句可改写如上专业专业 like*&like*&mzymzy&*&*进入进入例例6.9 6.9 用用SQLSQL语语句句从从Student.mdbStudent.mdb数数据据库库的的两两个个数数据据表表中中选选择择数数据据构构成成记记录录集集,并并通通过过数数据据控控件件浏浏览览记记录集。录集。6 6.6.6 VBVB中的中的SQLSQL实现实现 进入进入nDataData控件的属性控件的属性设置设置uDatabaseNameDatabaseName属性属性:Student.mdbStudent.mdb,uRecordSourceRecordSource属性属性:空缺空缺n各
30、各文文本本框框的的属属性性DataSourceDataSource=Data1=Data1,DataFieldDataField属属性性分分别别设设置置为为学学号号、姓姓名名、课课程程、成成绩绩,而而照照片片字段绑定图形框。字段绑定图形框。n本例要求从本例要求从两个实表中选择字段构成虚表两个实表中选择字段构成虚表。u从基本情况中选择学生的学号、姓名、照片,从基本情况中选择学生的学号、姓名、照片,u从学生成绩表中选择该学生的课程和成绩来构成从学生成绩表中选择该学生的课程和成绩来构成记录集。记录集。6 6.6.6 VBVB中的中的SQLSQL实现实现 n实现方法:在实现方法:在Form_ Load
31、Form_ Load事件中事件中使用使用SQLSQL语句语句6 6.6.6 VBVB中的中的SQLSQL实现实现 Private SubPrivate Sub Form_LoadForm_Load()()Data1.RecordSourceData1.RecordSource=SelectSelect 基本情况基本情况.学号学号,基基本情况本情况.姓名姓名,基本情况基本情况.照片照片,学生成绩表学生成绩表.课程课程,学生学生成绩表成绩表.成绩成绩 From From 学生成绩表学生成绩表,基本情况基本情况 WhereWhere 学生成绩表学生成绩表.学号学号=基本情况基本情况.学号学号 End
32、 SubEnd Sub进入进入例例6.10 6.10 用用SQLSQL指指令令按按专专业业统统计计Student.mdbStudent.mdb数数据据库库中中各各专专业业的的人人数数,并并统统计计平平均均成成绩绩前前5 5名名的的学学生生,要要求求按按下下图所示形式输出。图所示形式输出。6 6.6.6 VBVB中的中的SQLSQL实现实现 进入进入n窗体中的控件为窗体中的控件为DataData控件控件和和网格控件网格控件MSFlexGrid1MSFlexGrid1。nData1Data1的的DatabaseNameDatabaseName属性属性:Student.mdbStudent.mdb;
33、nRecordSourceRecordSource属性属性:空缺空缺n网格控件的网格控件的DataSourceDataSource:Data1Data1。n分分组组查查询询:为为了了统统计计各各专专业业的的人人数数,对对基基本本情情况况表表内内的的记记录录按按专专业业分分组组。使使用用 Group Group ByBy专专业业 语语句句,将同一专业的所有记录合为一组新记录。将同一专业的所有记录合为一组新记录。n命命名名别别名名:要要记记录录统统计计结结果果,需需要要构构造造一一个个新新的的输输出出字字段段,使使用用SQLSQL的的统统计计函函数数Count()Count()作作为为输输出出字字
34、段段,它它按按专专业业分分组组创创建建统统计计值值。由由于于在在表表中中没没有有表表示示该该内容的字段名内容的字段名,可用可用AsAs短语命名一个别名短语命名一个别名6 6.6.6 VBVB中的中的SQLSQL实现实现 按专业统计人数按专业统计人数 按钮的指令代码为:按钮的指令代码为:6 6.6.6 VBVB中的中的SQLSQL实现实现 Private Sub Command1_Click()Private Sub Command1_Click()Data1.RecordSource=Data1.RecordSource=Select Select 专业专业,Count(*)As Count(
35、*)As 人数人数 From From 基本情况基本情况 Group By Group By 专业专业 Data1.RefreshData1.RefreshEnd SubEnd Subn如需要如需要 按平均成绩统计前按平均成绩统计前5 5名名 按钮指令代码为按钮指令代码为:6 6.6.6 VBVB中的中的SQLSQL实现实现 Private Sub Command2_Click()Private Sub Command2_Click()Data1.RecordSource=Data1.RecordSource=Select Top 5 Select Top 5 学号学号,AvgAvg(成绩成绩
36、)As As 平均成绩平均成绩 From From 学生成绩表学生成绩表 Group By Group By 学号学号 Order By Order By AvgAvg(成绩成绩)DescDesc Data1.Refresh Data1.RefreshEnd SubEnd SubAvgAvg(成绩成绩)计算该学生的平均成绩计算该学生的平均成绩Order By Order By AvgAvg(成绩成绩)DescDesc 按平均成绩的降序排列数据按平均成绩的降序排列数据Group By Group By 学号学号 将同一学生的将同一学生的各门课程的记录合并成一条记录各门课程的记录合并成一条记录To
37、p 5Top 5短语返回最前面的短语返回最前面的5 5条记录条记录n 恢复原表内容恢复原表内容 按钮的指令代码为:按钮的指令代码为:6 6.6.6 VBVB中的中的SQLSQL实现实现 Private Sub Command3_Click()Private Sub Command3_Click()Data1.RecordSource=Data1.RecordSource=基本情况基本情况 Data1.Refresh Data1.RefreshEnd SubEnd Sub进入进入例例6.116.11使使用用ADOADO数数据据控控件件,用用SQLSQL语语句句从从Student.mdbStude
38、nt.mdb数数据库的两个数据表中选择数据构成记录集。据库的两个数据表中选择数据构成记录集。6 6.6.6 VBVB中的中的SQLSQL实现实现 进入进入n使用使用ADOADO数据控件数据控件Adodc1Adodc1;n各各文文本本框框的的DatasourceDatasource=Adodc1=Adodc1,DataFieldDataField属属性性分分别别设设置置为为学学号号、姓姓名名、课课程程、成成绩绩,而而字字段照片绑定图形框。段照片绑定图形框。nADOADO数据控件的数据源采用数据控件的数据源采用连接字符串连接字符串的方式的方式连接;连接;n属性设置为与数据源连接的相关信息,数据链属
39、性设置为与数据源连接的相关信息,数据链接属性设置与接属性设置与Student.mdbStudent.mdb的数据连接。的数据连接。6 6.6.6 VBVB中的中的SQLSQL实现实现 n记录源设置如下记录源设置如下6 6.6.6 VBVB中的中的SQLSQL实现实现 select select 学生成绩表学生成绩表.*,.*,基本情况基本情况.姓名姓名,基本情况基本情况.照片照片 from from 学生成绩表学生成绩表,基本情况基本情况 where where 学生成绩表学生成绩表.学号学号=基本情况基本情况.学号学号进入进入例例6.12 6.12 设设计计一一个个窗窗体体,计计算算Stud
40、ent.mdbStudent.mdb数数据据库库内内学学生生成成绩绩表表中中每每个个学学生生的的平平均均成成绩绩,产产生生姓姓名名、平平均均成成绩绩和和最最低低成成绩绩三三项项数数据据,按按平平均均成成绩绩降降序序排排列列数数据据,并用该数据作图。并用该数据作图。6 6.6.6 VBVB中的中的SQLSQL实现实现 进入进入n绘绘制制图图表表使使用用MsChartMsChart。MsChartMsChart控控件件需需要要通通过过 工工程程|部件部件 命令,将命令,将MSChartMSChart控件添加到工具箱。控件添加到工具箱。nMSChart1MSChart1的的DataSourceDat
41、aSource绑定绑定:Adodc1Adodc1n将将AdodclAdodcl的的RecordSourceRecordSource属性设置为属性设置为SQLSQL语句:语句:6 6.6.6 VBVB中的中的SQLSQL实现实现 Select基本情况基本情况.姓名姓名,Avg(成绩成绩)As平均成绩平均成绩,Min(成绩成绩)As最低成绩最低成绩From学生成绩表学生成绩表,基本基本情况情况Where学生成绩表学生成绩表.学号学号=基本情况基本情况.学号学号GroupBy学生成绩表学生成绩表.学号学号,基本情况基本情况.姓名姓名OrderByAvg(成绩成绩)Desc”n学学生生成成绩绩表表中中
42、没没有有平平均均成成绩绩和和最最低低成成绩绩这这两两项项数数据据,在在SELECTSELECT子子句句中中使使用用统统计计函函数数A Avgvg ()()和和Min()Min()产生;产生;n学学生生成成绩绩表表中中没没有有姓姓名名字字段段,故故需需要要多多表表查查询询,通通过过条条件件 基基本本情情况况.学学号号=学学生生成成绩绩表表.学学号号 从从基基本情况表获取。本情况表获取。n Group Group By By 姓姓名名 可可将将同同一一学学生生的的记记录录合合并并成成一一条新记录。条新记录。6 6.6.6 VBVB中的中的SQLSQL实现实现 进入进入1 1 ODBC ODBC概述
43、概述存在问题存在问题 使用数据库系统所提供的专用开发工具使用数据库系统所提供的专用开发工具(如嵌入式如嵌入式SQLSQL语言语言),开发的应用程序只能运行在特定的数据库,开发的应用程序只能运行在特定的数据库系统环境下,系统环境下,适应性和可移植性比较差适应性和可移植性比较差。使用数据库系统所提供的嵌入式使用数据库系统所提供的嵌入式SQLSQL语言,一个应语言,一个应用程序用程序只能连接同类的只能连接同类的DBMSDBMS,而无法同时访问多个不而无法同时访问多个不同的同的DBMSDBMS;在实际应用中通常是需要同时访问多个不;在实际应用中通常是需要同时访问多个不同的同的DBMSDBMS。这种情况
44、下传统的数据库应用程序开发方这种情况下传统的数据库应用程序开发方法就难以实现。法就难以实现。为了解决这些问题,为了解决这些问题,MicrosoftMicrosoft公司开发了公司开发了ODBCODBC。6 6.5 ODBC.5 ODBCODBC(OpenODBC(Open DataBaseDataBase Connectivity Connectivity,即开放数据库即开放数据库互连互连)是是MicrosoftMicrosoft公司开发的一套开放数据库系统应公司开发的一套开放数据库系统应用程序接口规范,目前它已成为一种工业标准,它用程序接口规范,目前它已成为一种工业标准,它提提供了统一的数据
45、库应用编程接口供了统一的数据库应用编程接口(API)API),为应用程序为应用程序提供了一套高层调用接口规范和基于动态连接库的运提供了一套高层调用接口规范和基于动态连接库的运行支持环境。行支持环境。使用使用ODBCODBC开发数据库应用时,开发数据库应用时,应用程序调用的是标准应用程序调用的是标准的的ODBCODBC函数和函数和SQLSQL语句,数据库底层操作由各个数据语句,数据库底层操作由各个数据库的驱动程序完成。库的驱动程序完成。因此应用程序因此应用程序有很好的适应性和有很好的适应性和可移植性可移植性,并且,并且具备了同时访问多种数据库管理系统具备了同时访问多种数据库管理系统的能力的能力,
46、从而彻底克服了传统数据库应用程序的缺陷。,从而彻底克服了传统数据库应用程序的缺陷。6.4 ODBC图图6.12 6.12 ODBCODBC的体系结构的体系结构 2ODBC体系结构体系结构6.4 ODBCODBCODBC数据库应用程序数据库应用程序驱动程序管理器驱动程序管理器SQLServerSQLServer驱动程序驱动程序OracleOracle驱动程序驱动程序FoxproFoxpro驱动程序驱动程序SybaseSybase驱动程序驱动程序SQLServerSQLServer数据源数据源OracleOracle数据源数据源FoxproFoxpro数据源数据源SybaseSybase数据源数据
47、源DBDBDBDBDBDBDBDB主要任务包括:建立与数据源的连接主要任务包括:建立与数据源的连接、向数据源发送、向数据源发送SQLSQL请求、接收并处理请求、接收并处理请求的结果、断开与数据源的连接等请求的结果、断开与数据源的连接等主要作用是用来装载主要作用是用来装载ODBCODBC驱动驱动程序、管理数据源、检查程序、管理数据源、检查ODBCODBC参数的合法性参数的合法性6.4 ODBCODBCODBC数据库应用程序数据库应用程序驱动程序管理器驱动程序管理器SQLServerSQLServer驱动程序驱动程序OracleOracle驱动程序驱动程序FoxproFoxpro驱动程序驱动程序S
48、ybaseSybase驱动程序驱动程序SQLServerSQLServer数据源数据源OracleOracle数据源数据源FoxproFoxpro数据源数据源SybaseSybase数据源数据源DBDBDBDBDBDBDBDBODBCODBC应用程序不能直接存取数据库,它将所应用程序不能直接存取数据库,它将所要执行的操作提交给数据库驱动程序,要执行的操作提交给数据库驱动程序,通过针对不通过针对不同数据源的同数据源的驱动程序实驱动程序实现对不同数现对不同数据源的各种据源的各种操作操作ODBCODBC驱动程序是一个动态链接库驱动程序是一个动态链接库 (DLL)(DLL),类似于类似于Windows
49、Windows下的打印驱动程序,对用下的打印驱动程序,对用户来说,驱动程序屏蔽了不同对象户来说,驱动程序屏蔽了不同对象(数据数据库系统或打印机库系统或打印机)间的差异。同样地,间的差异。同样地,ODBCODBC屏蔽了屏蔽了DBMSDBMS之间的差异。之间的差异。6.4 ODBCODBCODBC数据库应用程序数据库应用程序驱动程序管理器驱动程序管理器SQLServerSQLServer驱动程序驱动程序OracleOracle驱动程序驱动程序FoxproFoxpro驱动程序驱动程序SybaseSybase驱动程序驱动程序SQLServerSQLServer数据源数据源OracleOracle数据源
50、数据源FoxproFoxpro数据源数据源SybaseSybase数据源数据源DBDBDBDBDBDBDBDB数据库操作数据库操作结果也通过结果也通过驱动程序返驱动程序返回给应用程回给应用程序。序。数据源数据源数数据据源源(Data Data Source Source NameName,简简称称DSN)DSN)是是指指任任一一种种可可以以通通过过ODBCODBC连连接接的的数数据据库库管管理理系系统统,它它包包括括要要访访问问的的数数据库和数据库的运行平台据库和数据库的运行平台。数数据据源源名名表表达达了了一一个个ODBCODBC驱驱动动程程序序和和DBMSDBMS的的特特定定连连接接。例例