数据库实验报告6.docx
- 文档编号:4022144
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:10
- 大小:196.18KB
数据库实验报告6.docx
《数据库实验报告6.docx》由会员分享,可在线阅读,更多相关《数据库实验报告6.docx(10页珍藏版)》请在冰豆网上搜索。
数据库实验报告6
《数据库原理》实验报告
题目:
实验六:
ODBC/JDBC数据库编程
学号
姓名
班级
日期
xxxxx
xxx
xxxx
2016.10.29
1.实验内容、步骤以及结果
1.ODBC配置以及程序调试:
(50分)
(1)配置一个ODBC数据源,要求数据源名称:
student,其中包含s(学生信息)表。
1.用系统工具配置ODBC,点击“添加”:
2.出现以下对话框,选中SQLSever,点击完成
3.在出现的对话框中设置属性,如图,点击下一步,点击下一步后出现如下,更改默认数据库,点击下一步。
4.在出现的对话框中点击测试连接后出现测试成功的对话框,点击确定退出ODEC数据源管理器。
(2)阅读并运行实验给出的例子程序,理解ODBC编程,要求简单写出自己对这段程序的理解或者流程图,并且请给出程序运行结果示例图。
定义句柄,变量
初始化环境
建立连接
初始化语句句柄
执行语句
结果集中处理
输出,释放句柄
结果如下
实例运行结果如下:
2.参考给出的ODBC编程示例,使用ODBC技术,编写一个简单的程序,包含对数据库SPJ的连接,查询,插入,修改和删除。
(50分)
插入:
查询:
修改:
删除:
代码:
#include"stdafx.h"
#include
#include
#include
#include
#include
#include
#include
usingnamespacestd;
intmain()
{
SQLHENVhenv;//环境句柄
SQLHDBChdbc;//连接句柄
SQLHSTMThstmt;//语句句柄
charsql_order[100];
SQLRETURNret;
SQLCHARsno[50],sname[50],ssex[50],sbirth[50],sdept[50];
SQLINTEGERcbsno=SQL_NTS,cbsname=SQL_NTS,cbssex=SQL_NTS,cbsbirth=SQL_NTS,cbsdept=SQL_NTS;
ret=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
ret=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
ret=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
ret=SQLConnect(hdbc,(SQLCHAR*)"student",SQL_NTS,(SQLCHAR*)"sa",SQL_NTS,(SQLCHAR*)"123",SQL_NTS);
if(!
SQL_SUCCEEDED(ret))
return-1;
ret=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
intdemo;
while
(1)
{
cout<<"1.insert"<<"2.select"<<"3.delete"<<"4.update"<<"0.exit"< cin>>demo; if(demo==0) { break; } elseif(demo==3) { cout<<"输入删除语句"< getchar(); gets_s(sql_order); ret=SQLExecDirect(hstmt,(SQLCHAR*)sql_order,SQL_NTS); if(ret==SQL_SUCCESS||ret==SQL_SUCCESS_WITH_INFO) { cout<<"删除成功"< } SQLFreeHandle(SQL_HANDLE_STMT,hstmt); } elseif(demo==4) { cout<<"输入更新语句"< getchar(); gets_s(sql_order); ret=SQLExecDirect(hstmt,(SQLCHAR*)sql_order,SQL_NTS); if(ret==SQL_SUCCESS||ret==SQL_SUCCESS_WITH_INFO) { cout<<"删除成功"< } SQLFreeHandle(SQL_HANDLE_STMT,hstmt); } elseif(demo==2) { printf("输入SQL查询语句\n"); getchar(); gets_s(sql_order); ret=SQLExecDirect(hstmt,(SQLCHAR*)sql_order,SQL_NTS); if(ret==SQL_SUCCESS||ret==SQL_SUCCESS_WITH_INFO) { ret=SQLBindCol(hstmt,1,SQL_C_CHAR,sno,50,0); ret=SQLBindCol(hstmt,2,SQL_C_CHAR,sname,50,0); ret=SQLBindCol(hstmt,3,SQL_C_CHAR,ssex,50,0); ret=SQLBindCol(hstmt,4,SQL_C_CHAR,sbirth,50,0); ret=SQLBindCol(hstmt,5,SQL_C_CHAR,sdept,50,0); } while(ret=SQLFetch(hstmt)! =SQL_NO_DATA_FOUND) { printf("%s%s%s%s%s\n",sno,sname,ssex,sbirth,sdept); } SQLFreeHandle(SQL_HANDLE_STMT,hstmt); } else { printf("依次输入插入的学号,姓名,性别,生日,学院\n"); scanf("%s%s%s%s%s",sno,sname,ssex,sbirth,sdept); ret=SQLPrepare(hstmt,(SQLCHAR*)"insertintoSvalues(? ? ? ? ? )",SQL_NTS); if(ret==SQL_SUCCESS||ret==SQL_SUCCESS_WITH_INFO) { ret=SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,50,0,sno,0,&cbsno); ret=SQLBindParameter(hstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,50,0,sname,0,&cbsname); ret=SQLBindParameter(hstmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,50,0,ssex,0,&cbssex); ret=SQLBindParameter(hstmt,4,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,50,0,sbirth,0,&cbsbirth); ret=SQLBindParameter(hstmt,5,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,50,0,sdept,0,&cbsdept); } ret=SQLExecute(hstmt); if(ret==0) { printf("插入成功,请前往SQL数据库查看\n"); } SQLFreeHandle(SQL_HANDLE_STMT,hstmt); } } SQLFreeHandle(SQL_HANDLE_STMT,hstmt); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告