北邮大三下数据库实验报告4Word下载.docx
- 文档编号:18442208
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:13
- 大小:539.97KB
北邮大三下数据库实验报告4Word下载.docx
《北邮大三下数据库实验报告4Word下载.docx》由会员分享,可在线阅读,更多相关《北邮大三下数据库实验报告4Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
A)打开odbc数据源管理器,点击“添加”。
B)选择SQLServer,“完成”。
C)为你的数据源命名,要记住这个名字,在编写程序中要进行链接。
然后“下一步”。
D)如图所选,点击下一步
E)选择自己已经建立好的数据库。
点击“下一步”。
F)到这个界面,直接点击“下一步”。
G)点击“测试数据源”进行测试,看时候能够连接成功。
H)如图所示,连接成功。
2.编译程序并调试通过。
源代码见附录。
实验运行效果图:
A)
B)进行“删除”操作
删掉了第二条记录。
C)进行“insert”操作
第二条记录又添加回来了。
D)进行“update”操作
将book_id为dep04_b001_aa的元组的book_id改为dep04_b001_02。
实验总结:
配置接口时花了一些功夫,测试数据源的时候总是连接不上,后来在“连接哪个SQL”这个选项选了local才成功。
代码的编写理论上不困难,但是实际操作起来刚开始还是摸不着头脑,借鉴了别人的才知道连接句柄、环境句柄等的作用。
代码运行过后,数据库中相应数据被程序改写,因为数据库没有设置主键,所以“插入”操作可以插入几个重复的元组。
源代码:
#include<
windows.h>
stdio.h>
sql.h>
sqlext.h>
sqltypes.h>
HENVhenv;
HDBChdbc;
HSTMThsmt;
SQLRETURNsret;
charszMscID[15];
longcbMscID;
charszMscName[15];
longcbMscName;
charszMscCompany[15];
longcbMscCompany;
charszMscLongitude[15];
longcbMscLongitude;
charszMscLatitude[15];
longcbMscLatitude;
SQLREALszMscAltitude;
longcbMscAltitude;
voidprintDB();
voiddeleteDB();
voidupdateDB();
voidinsertDB();
voidrenewHSMT();
intmain()
{
sret=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&
henv);
if(sret!
=SQL_SUCCESS&
&
sret!
=SQL_SUCCESS_WITH_INFO)
printf("
wrong!
1"
);
else
{
sret=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);
if(sret!
2"
else
{
sret=SQLAllocHandle(SQL_HANDLE_DBC,henv,&
hdbc);
if(sret!
printf("
3"
else
{
sret=SQLConnect(hdbc,(SQLCHAR*)"
sqlserver"
SQL_NTS,NULL,0,NULL,0);
if(sret!
printf("
4"
sret=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&
hsmt);
5"
else
{
printDB();
intselectNum=0;
charab;
Pleaseselectafunction:
1.delete2.update3.insert-1.esc\n"
scanf("
%d"
&
selectNum);
while(selectNum!
=-1)
{
if(selectNum!
=1&
selectNum!
=2&
=3)
printf("
inputthewrongnumber!
Pleasetryagain."
scanf("
}
else
if(selectNum==1)
{
renewHSMT();
deleteDB();
printDB();
}
elseif(selectNum==2)
updateDB();
else
insertDB();
SQLFreeHandle(SQL_HANDLE_STMT,hsmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
SQLFreeHandle(SQL_HANDLE_ENV,henv);
}
}
}
}
system("
pause"
voidprintDB()
sret=SQLExecDirect(hsmt,(SQLCHAR*)"
SELECTbook_id,book_name,publish_company,author,priceFROMbook$"
SQL_NTS);
if(sret==SQL_SUCCESS||sret==SQL_SUCCESS_WITH_INFO)
SQLBindCol(hsmt,1,SQL_C_CHAR,&
szMscID,sizeof(szMscID),&
cbMscID);
SQLBindCol(hsmt,2,SQL_C_CHAR,szMscName,sizeof(szMscName),&
cbMscName);
SQLBindCol(hsmt,3,SQL_C_CHAR,szMscCompany,sizeof(szMscCompany),&
cbMscCompany);
SQLBindCol(hsmt,4,SQL_C_CHAR,&
szMscLongitude,sizeof(szMscLongitude),&
cbMscLongitude);
SQLBindCol(hsmt,5,SQL_C_CHAR,&
szMscLatitude,sizeof(szMscLatitude),&
cbMscLatitude);
//SQLBindCol(hsmt,6,SQL_C_FLOAT,&
szMscAltitude,sizeof(szMscAltitude),&
cbMscAltitude);
%-15s%-15s%-15s%-15s%-15s\n"
"
book_id"
book_name"
publish_company"
author"
price"
while(SQLFetchScroll(hsmt,SQL_FETCH_NEXT,0)!
=SQL_NO_DATA_FOUND)
printf("
szMscID,szMscName,szMscCompany,szMscLongitude,szMscLatitude);
6\n"
}
voiddeleteDB()
DELETEFROMbook$WHEREbook_id='
dep04_b001_01'
"
deletesuccessful!
\n"
7\n"
voidupdateDB()
updatebook$setbook_id='
dep04_b001_aa'
WHEREbook_id='
dep04_b001_02'
updatesuccessful!
8\n"
}
voidinsertDB()
INSERTINTObook$VALUES('
'
计算机基础'
清华大学出版社'
洪涛'
16)"
insertsuccessful!
9\n"
voidrenewHSMT()
SQLFreeHandle(SQL_HANDLE_STMT,hsmt);
sret=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大三 数据库 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)