试验七访问数据库接口的使用
实验七实验七 接口的使用接口的使用 一.实验目的实验目的:熟悉并掌握一种访问数据库组件的使用方法,这些组件可以是以 下几种:ODBC 、ADO 、ADO.NET、JDBC 等,类型不限 二.实验内容实验内容:查找相关资料,熟悉并掌握组件的使用方法、 三实验步骤实验步骤 1.ODBC(OpenDatabaseConnectivity, 开放数据库互连)是微软公司开放服务结构 (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 = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, //设 置管理环境的属性 ret=SQLSetEnvAttr(kinghenv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3, 0);ret=SQLSetEnvAttr(serverhenv,SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); /* Step 3 :建立连接 */ //分配连接句柄 ret = SQLAllocHan