收藏 分销(赏)

实验七 访问数据库接口的使用.doc

上传人:xrp****65 文档编号:8985864 上传时间:2025-03-10 格式:DOC 页数:9 大小:741KB
下载 相关 举报
实验七 访问数据库接口的使用.doc_第1页
第1页 / 共9页
实验七 访问数据库接口的使用.doc_第2页
第2页 / 共9页
实验七 访问数据库接口的使用.doc_第3页
第3页 / 共9页
实验七 访问数据库接口的使用.doc_第4页
第4页 / 共9页
实验七 访问数据库接口的使用.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、实验七 接口的使用一. 实验目的:熟悉并掌握一种访问数据库组件的使用方法,这些组件可以是以下几种:ODBC、ADO、ADO.NET、JDBC等,类型不限二. 实验内容:查找相关资料,熟悉并掌握组件的使用方法、三实验步骤1.ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分,这一技术为访问不同种类的 SQL 数据库提供了通用接口。ODBC是基于结构查询语言(SQL)的,并以此作为访问数据的标准。该接口提供了互操作性,即一个应用程序可以通过一组公用代

2、码访问不同的DBMS。配置数据源共有两种方法:方法一:运行数据源管理工具来进行配置。方法二:使用Driver Manager 提供的ConfigDsn函数来增加、修改或删除数据源。这种方法特别适用于在应用程序中创建的临时使用的数据源。2. 给出配置两个不同的数据源的过程。配置数据源共有两种方法: 方法一:运用数据源管理工具来进行配置。方法二:使用 Driver Manager 提供的 ConfigDsn 函数来增加、修改或删除数据源。这种方法特别适用于在应用程序中创建的临时使用的数据源。 在本实验中, 我们采用第一种方法创建数据源。 实验中需要同时用到 KingbaseES 和 SQL Ser

3、ver,因此需要分别建立两个数据源,我们将其取名为 KingbaseES ODBC 和 SQLServer。下面是建立这两个数据源的具体步骤。 选择开始设置控制面板菜单,在弹出窗口中双击“管理工具”图标进入管理工具界面,双击“数据源(ODBC) ”图标。 1.建立 KingbaseES 数据源。 (1) 选择“系统 DSN”选项,单击【添加(D)】按钮,系统弹出“创建新数据源”对话框,如图 1 所示:图 1 数据源管理器(2) 如图 2 所示,在 ODBC 驱动器程序列表中,选择“Kingbase ODBC Driver” ,单击【完成】按钮,系统弹出“Kingbase ODBC 数据源配置”

4、对话框, 如图 3 所示。 图 2 创建新数据源(3) 输入数据源名称、数据库名称以及数据库 IP 地址。图中数据源的名称为KingbaseES ODBC,连接的数据库为“学生课程数据库” ,服务器为 localhost,用户名和口令分别为 SYSTEM 和 MANAGER。注意:KingbaseES 区别大小写。图 3 Kingbase ODBC 数据源配置(4) 单击 【保存】 按钮, 这样就创建了一个名为 “KingbaseES ODBC” 的 KingbaseES ODBC 数据源。 (5) 如果要测试和数据源的连接是否成功,可以单击“测试连接” ,系统会根据测试的结果反馈相应的消息框

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,输入数据源名称和服务器,单击【下一步】按钮。图中数据

6、源的名称为 SQLServer,服务器为(local)。如图 9,选择身份认证方式,输入用户名和密码,用户名和口令分别为 sa 和 sa(请根据实际情况进行修改,并对源代码进行相应的修改)。图 8 SQLServer 数据源配置(1)图 9 SQLServer 数据源配置(2)(4) 连续单击【下一步】按钮,这样就创建了一个名为“SQLServer”的 SQL Server ODBC 数据源。如图 10 所示,将弹出一个提示框,提示即将创建一个新的 ODBC数据源。图 10 提示框(5) 如果要测试和数据源的连接是否成功,可以单击“Test Data Source” ,如果连接成功,系统将会显

7、示一个连接成功的消息框,如图 11 所示。图 11 连接成功以上五步就建立了一个名为 SQLServer 的数据源。 注: 在创建数据源, 测试连接是否成功时, 如果 KingbaseES 和 SQL Server 未启动服务,则将显示连接失败。启动服务后,再进行测试,连接成功。2. 使用一种语言基于ODBC编程实现对数据库的访问,可以选择创建表、插入、查询、删除和更新操作等实验。#include #include #include #include #include #include #define SNO_LEN 30 #define NAME_LEN 50#define DEPART_L

8、EN 100#define SSEX_LEN 5 int main() /* Step 1 定义句柄和变量 */ /以 king 开头的表示的是连接 KINGBASEES 的变量 /以 server 开头的表示的是连接 SQLSERVER 的变量 SQLHENV kinghenv, serverhenv; /环境句柄 SQLHDBC kinghdbc,serverhdbc; /连接句柄 SQLHSTMT kinghstmt,serverhstmt; /语句句柄 SQLRETURN ret; /结果返回集 SQLCHAR sNameNAME_LEN, sDepartDEPART_LEN,sSex

9、SSEX_LEN, sSnoSNO_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, &kinghenv); ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &serverhenv); /设置管理环

10、境的属性 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 = SQLAllocHandle(SQL_HANDLE_DBC, kinghenv, &kinghdbc);ret = SQLAllocHandle(SQL_HANDLE_DBC, serverhenv, &serverhdbc);

11、 ret = SQLConnect(kinghdbc, /连接 KingbaseES KingbaseES ODBC,SQL_NTS, SYSTEM,SQL_NTS, MANAGER,SQL_NTS); if (!SQL_SUCCEEDED(ret) /连接失败时返回错误值 return -1; ret = SQLConnect(serverhdbc, /连接 SQLServer SQLServer,SQL_NTS, sa,SQL_NTS, sa,SQL_NTS); if (!SQL_SUCCEEDED(ret) /连接失败时返回错误值 return -1; /* Step 4 :初始化语句句

12、柄 */ ret = SQLAllocHandle(SQL_HANDLE_STMT, kinghdbc, &kinghstmt); ret=SQLSetStmtAttr(kinghstmt,SQL_ATTR_ROW_BIND_TYPE,(SQLPOINTER)SQL_BIND_BY_COLUMN,SQL_IS_INTEGER ); /设置语句选项 ret = SQLAllocHandle(SQL_HANDLE_STMT, serverhdbc, &serverhstmt); /* Step 5 :两种方式执行语句 */ /* 预编译带有参数的语句 */ /需要多次执行插入,因此预先声明插入语句

13、 ret = SQLPrepare(serverhstmt, INSERT INTO STUDENT (SNO,SNAME,SSEX,SAGE,SDEPT) VALUES (?, ?, ?, ?, ?), SQL_NTS); if (ret = SQL_SUCCESS | ret = SQL_SUCCESS_WITH_INFO) /绑定参数 ret = SQLBindParameter(serverhstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, SNO_LEN, 0, sSno, 0, &cbSno); ret = SQLBindParamete

14、r(serverhstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, NAME_LEN, 0, sName, 0, &cbName); ret = SQLBindParameter(serverhstmt, 3, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, 2, 0, sSex, 0, &cbSex); ret = SQLBindParameter(serverhstmt, 4, SQL_PARAM_INPUT, SQL_C_LONG,SQL_INTEGER, 0, 0, &sAge, 0, &cbAge); ret =

15、 SQLBindParameter(serverhstmt, 5, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, DEPART_LEN, 0, sDepart, 0, &cbDepart); /*执行 SQL 语句*/ ret = SQLExecDirect(kinghstmt,SELECT * FROM STUDENT,SQL_NTS); if (ret = SQL_SUCCESS | ret = SQL_SUCCESS_WITH_INFO) /将结果集中的属性列一一绑定至变量 ret = SQLBindCol(kinghstmt, 1, SQL_C_CHAR,

16、sSno,SNO_LEN, &cbSno); ret = SQLBindCol(kinghstmt, 2, SQL_C_CHAR, sName, NAME_LEN, &cbName); ret = SQLBindCol(kinghstmt, 3, SQL_C_CHAR, sSex, SSEX_LEN, &cbSex); ret = SQLBindCol(kinghstmt, 4, SQL_C_LONG, &sAge, 0, &cbAge); ret = SQLBindCol(kinghstmt, 5, SQL_C_CHAR, sDepart, DEPART_LEN, &cbDepart); /

17、* Step 6 :处理结果集并执行预编译后的语句*/ while (ret=SQLFetch(kinghstmt) !=SQL_NO_DATA_FOUND) if(ret= SQL_ERROR) /错误处理 printf(Fetch errorn); else ret=SQLExecute(serverhstmt); /执行语句 /* Step 7 中止处理*/ SQLFreeHandle(SQL_HANDLE_STMT,kinghstmt); /释放 Kingbase 语句句柄SQLDisconnect(kinghdbc); /断开与 KingbaseES 的连接 SQLFreeHandl

18、e(SQL_HANDLE_DBC, kinghdbc); /释放 Kingbase 连接句柄SQLFreeHandle(SQL_HANDLE_ENV,kinghenv); /释放 Kingbase 环境句柄 SQLFreeHandle(SQL_HANDLE_STMT, serverhstmt); /释放 SQLServer 语句句柄 SQLDisconnect(serverhdbc); /断开与 SQLServer 的连接 SQLFreeHandle(SQL_HANDLE_DBC, serverhdbc); /释放 SQLServer 连接句柄 SQLFreeHandle(SQL_HANDLE

19、_ENV, serverhenv); /释放 SQLServer 环境句柄return 0;在编写程序的时候,请注意 ODBC 1.0 和 ODBC 2.x、ODBC 3.x 函数使用上的差异,很多函数在 3.x 上已经被替换或丢弃了,因此,必须注意实验使用的版本带来的不同之处。 (3) 实验步骤。 首先,在 VC+6.0 中新建一个 Win32 Console Application 的项目,并将项目命名为ODBCTest。 然后,将已经写好的 ODBCTest.c 文件加入到该项目的 Source Files 中,编译并且执行。 执行完成后, 进入 SQL Server 查询分析器, 对原来为空的 Student 表进行查询 (SELECT * FROM Student) ,可以看见 SQL Server 中 Student 表的数据即为 KingbaseES 中 Student 表的数据备份。四实验总结 通过用ODBC方式访问数据库,使我熟悉了使用ODBC来进行数据库应用程序的设计和通过ODBC接口编程访问数据库并对数据库进行操作,为以后的学习和工作奠定了基础。

展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服