试验七访问数据库接口的使用
实验七实验七 接口的使用接口的使用 一.实验目的实验目的熟悉并掌握一种访问数据库组件的使用方法,这些组件可以是以 下几种ODBC 、ADO 、ADO.NET、JDBC 等,类型不限 二.实验内容实验内容查找相关资料,熟悉并掌握组件的使用方法、 三实验步骤实验步骤 1.ODBCOpenDatabaseConnectivity, 开放数据库互连是微软公司开放服务结构 WOSA,WindowsOpenServicesArchitecture中有关数据库的一个组成部分,这 一技术为访问不同种类的 SQL 数据库提供了通用接口。 ODBC 是基于结构查询语言SQL的,并以此作为访问数据的标准。该接口提 供了互操作性,即一个应用程序可以通过一组公用代码访问不同的 DBMS。 配置数据源共有两种方法 方法一运行数据源管理工具来进行配置。 方法二使用 Driver Manager 提供的 ConfigDsn 函数来增加、修改或删除 数据源。这种方法特别适用于在应用程序中创建的临时使用的数据源。 2. 给出配置两个不同的数据源的过程。 配置数据源共有两种方法 方法一运用数据源管理工具来进行配置。 方法二使用 Driver Manager 提供的 ConfigDsn 函数来增加、修改或删除数 据源。这种方法特别适用于在应用程序中创建的临时使用的数据源。 在本实验 中, 我们采用第一种方法创建数据源。实验中需要同时用到 KingbaseES 和 SQL Server,因此需要分别建立两个数据源,我们将其取名为 KingbaseES ODBC 和 SQLServer。下面是建立这两个数据源的具体步骤。 选择『开始』│『设置』 │『控制面板』菜单,在弹出窗口中双击“管理工具”图标进入管理工具界面, 双击“数据源(ODBC) ”图标。 1.建立 KingbaseES 数据源。 (1) 选择“系统 DSN”选项,单击【添加D】按钮,系统弹出“创建 新数据源”对话框,如图 1 所示 图 1 数据源管理器 (2) 如图 2 所示,在 ODBC 驱动器程序列表中,选择“ Kingbase ODBC Driver” ,单击【完成】按钮,系统弹出“Kingbase ODBC 数据源配置”对话 框, 如图 3 所示。 图 2创建新数据源 (3) 输入数据源名称、数据库名称以及数据库 IP 地址。图中数据源的名称为 KingbaseES ODBC,连接的数据库为“学生课程数据库” ,服务器为 localhost, 用户名和口令分别为 SYSTEM 和 MANAGER。注意KingbaseES 区别大小写。 图 3 Kingbase ODBC 数据源配置 (4) 单击 【保存】 按钮, 这样就创建了一个名为 “KingbaseES ODBC” 的 KingbaseES ODBC 数据源。 (5) 如果要测试和数据源的连接是否成功,可以单击“测试连接” ,系统会 根据测试的结果反馈相应的消息框,如图 4 和图 5 所示。 图 4 连接成功 图 5 连接失败 以上五步就建立了一个名为 KingbaseES ODBC 的数据源。 2.建立 SQLServer 数据源。 (1) 选择“系统 DSN”选项,单击【添加D】按钮,系统弹出“创建新数 据源”对话框,如图 6 所示 图 6 数据源管理器 (2) 如图 7 所示,在 ODBC 驱动器程序列表中,选择“SQL Server” ,单击 【完成】按钮,系统弹出“Create New Data Source to SQL Server”对话框, 如图 8 所示。 图 7创建数据源配置 (3) 如图 8,输入数据源名称和服务器,单击【下一步】按钮。图中数据源的 名称为 SQLServer,服务器为local。如图 9,选择身份认证方式,输入用户 名和密码,用户名和口令分别为 sa 和 sa(请根据实际情况进行修改,并对源 代码进行相应的修改) 。 图 8 SQLServer 数据源配置(1) 图 9 SQLServer 数据源配置(2) (4) 连续单击【下一步】按钮,这样就创建了一个名为“SQLServer”的 SQL Server ODBC 数据源。如图 10 所示,将弹出一个提示框,提示即将创建一个新 的 ODBC 数据源。 图 10 提示框 (5) 如果要测试和数据源的连接是否成功,可以单击“Test Data Source” , 如果连接成功,系统将会显示一个连接成功的消息框,如图 11 所示。 图 11 连接成功 以上五步就建立了一个名为 SQLServer 的数据源。 注 在创建数据源, 测试连接是否成功时, 如果 KingbaseES 和 SQL Server 未启动服务,则将显示连接失败。启动服务后,再进行测试,连接成功。 2. 使用一种语言基于 ODBC 编程实现对数据库的访问,可以选择创建表、插入、 查询、删除和更新操作等实验。 include include include include include include define SNO_LEN 30 define NAME_LEN 50 define DEPART_LEN 100 define SSEX_LEN 5 int main { /* Step 1 定义句柄和变量 */ //以 king 开头的表示的是连接 KINGBASEES 的变量 //以 server 开头的表示的是连接 SQLSERVER 的变量 SQLHENV kinghenv, serverhenv; //环境句柄 SQLHDBC kinghdbc,serverhdbc; //连接句柄 SQLHSTMT kinghstmt,serverhstmt; //语句句柄 SQLRETURN ret; //结果返回集 SQLCHARsName[NAME_LEN],sDepart[DEPART_LEN],sSex[SSEX_LEN], sSno[SNO_LEN]; SQLINTEGER sAge; SQLINTEGER cbAge 0, cbSno SQL_NTS, cbSex SQL_NTS, cbName SQL_NTS,cbDepart SQL_NTS; /* Step 2 初始化环境 */ //分配环境句柄 ret SQLAllocHandleSQL_HANDLE_ENV, SQL_NULL_HANDLE, ret SQLAllocHandleSQL_HANDLE_ENV, SQL_NULL_HANDLE, //设 置管理环境的属性 retSQLSetEnvAttrkinghenv,SQL_ATTR_ODBC_VERSION,void*SQL_OV_ODBC3, 0;retSQLSetEnvAttrserverhenv,SQL_ATTR_ODBC_VERSION, void*SQL_OV_ODBC3, 0; /* Step 3 建立连接 */ //分配连接句柄 ret SQLAllocHan