数据库课程设计设计一个订户订阅报刊的应用系统_第1页
数据库课程设计设计一个订户订阅报刊的应用系统_第2页
数据库课程设计设计一个订户订阅报刊的应用系统_第3页
数据库课程设计设计一个订户订阅报刊的应用系统_第4页
数据库课程设计设计一个订户订阅报刊的应用系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库课程设计 班 级 软件1001 学 号 3100608024 姓 名 张建彬 指导老师 辛燕 二零一二年 六 月 一、引言1目的课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。课程设计的目的:1. 加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;2. 在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;3. 学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;4. 为毕业设计和以后工作打下必要基础。2题目设计一个订户订阅报

2、刊的应用系统。1. 处理要求l 接收并且处理订户的订阅要求l 回答订户的查询l 统计报刊的订阅情况2. 信息要求l 订单l 订户l 报刊目录l 投递卡具体数据参见附表数据语义:l 一个客户可以订阅多份报刊,一种报刊可以为多个客户订阅(客户-订阅-报刊,m:n)l 一种报刊可以投递给多个客户,一个客户一次可以接受多种报刊的投递(报刊-投递-客户,m:n)3. 系统功能包括:(在查询和管理中各选一题)l 订户管理:订户的增加、修改、删除;l 报刊目录管理:报刊目录的增加、删除、修改;l 订单管理:订单的增加、删除、修改;l 查询订单:按订户查询订单的详细情况;l 统计查询:统计报刊的订阅数量及金额

3、。3要求运用数据库基本理论与应用知识,在微机RDBMS(SQL Server)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。 1. 用E-R图设计选定题目的信息模型;2. 设计相应的关系模型,确定数据库结构;3. 分析关系模式各属于第几范式,阐明理由;4. 设计应用系统的系统结构图,确定系统功能;5. 通过设计关系的主码约束、外码约束和使用CHECK实现完整性控制;6. 为参照关系设计插入、删除、修改触发器;7. 实现应用程序设计、编程、优化功能

4、;8. 对系统的各个应用程序进行集成和调试,进一步优化系统功能、改善系统用户界面完成实验内容所指定的各项要求;9. 分析遇到的问题,总结并写出课程设计报告;10. 自我评价4开发工具及技术Mmicrosoft visual C+ 6.0Microsoft SQL server 2005系统的功能分析图: 报刊订阅系统订户管理报刊目录管理订单管理查询订单统计查询增加订户删除订户更改订户增加报刊目录删除报刊目录更改报刊目录增加订单删除订单更改订单按订户查询统计订阅数量统计金额程序流程:本次实验的报刊预订系统总体上可以分为5个功能模块:订户管理,报刊目录管理,订单管理,查询预订,统计查询。其中每一个

5、管理模块包括了三个数据库的操作,分别是增加 删除 更改;查询分为单用户查询和统计查询。用户可以根据功能选择来按照自己的需要进行操作。程序开始主菜单输入选择订户管理报刊目录管理订单管理统计查询增加订户删除订户修改订户查询订户退出增加报刊删除报刊修改报刊查询报刊退出增加订单删除订单修改订单查询订单退出按订户统计统计订单概念结构设计(E-R)图l 说明:一个客户可以订阅多份报刊,一种报刊可以为多个客户订阅(客户-订阅-报刊,m:n)l 一种报刊可以投递给多个客户,一个客户一次可以接受多种报刊的投递(报刊-投递-客户,m:n)逻辑设计阶段订户(编号,姓名,住址)报刊目录(代号,名称,刊期,单价)订单(

6、订户号,报刊代号,日期,起定期,终定期,份数)投递卡(订户号,报刊代号,期号,份数)在关系模型中,候选码都用下划线和加粗标出。外码用斜体标出。其中订单和投递卡是订户表和报刊目录的两个联系,都是多对多联系。一个用户可以订阅不同报刊,同一种报刊可以被不同用户订阅。在订户关系中,订户号是主码,非主属性对码完全依赖,不存在传递依赖,决定因素是码,所以订户关系属于BCNF范式。报刊目录表中,报刊代号是主码,非主属性对码完全依赖,不存在传递依赖,决定因素是码,所以报刊目录关系属于BCNF范式。订单表中,订户号,日期,报刊代号共同组成其候选码,一个用户可以在不同时间订阅同一本报刊,而其中,订户号和报刊代号均

7、是其外码。非主属性对码完全依赖,不存在传递依赖,决定因素都包含码,所以订单冠以关系属于BCNF范式。投递卡表中,订户号,报刊目录,期号共同组成其候选码。一个用户可以订阅同意报刊的不同期报刊。而其中订户号和报刊代号均是其外码。非主属性对码完全依赖,不存在传递依赖,决定因素是码,所以投递卡关系属于BCNF范式。3完整性设计在四个关系中都保持了实体完整性,主码的唯一性。外码没有采用级联删除,保证了其参照完整新CHECK约束,限制了份数QTY必须大于等于0,价钱必须大于等于0; 开发工具简单说明:本次的实验是通过ODBC连接数据库,通过对数据库的应用程序的操作实现对数据源内部的数据的查询和更新,大大提

8、高了应用系统与数据库平台的独立性,使用ODBC使得应用系统的移植变得更加容易,当一个应用系统从一个数据库平台移到另一个数据库平台只要更换ODBC的RDBMS的驱动程序就可以。 配置数据源ODBC工作流程图如下 初始化环境 建立连接 分配语句句柄 执行SQL语句有无结果集有 中止 结果处理无报刊订阅数据库数据关系图如下:系统主要功能实现(控制台程序截图):1. 修改订户2.增加订户3.增加报刊目录5.统计查询6.按用户查询7.修改报刊目录程序代码: #include <stdlib.h>#include <stdio.h>#include <windows.h>

9、;#include <sql.h> / This is the the main include for ODBC Core functions.#include <sqlext.h> / This is the include for applications using the Microsoft SQL Extensions#include <sqltypes.h> / This file defines the types used in ODBC#include <sqlucode.h> / This is the unicode in

10、clude for ODBC Core functions#include <odbcinst.h> / This is the application include file for the SQL Server driver specific defines.#include <iostream>#include <string>#include <tchar.h>using namespace std;#define CNO_LEN 10#define NMNO_LEN 10#define ISSUE_LEN 10#define QTY_

11、LEN 4#define DATE_LEN 10#define START_LEN 10#define TERM_LEN 10#define TITLE_LEN 20#define PERIOD_LEN 10#define PRICE_LEN 8#define NAME_LEN 10#define ADDR_LEN 20void back()int main()/*Step 1 定义句柄括和变量*/以wang开头的表示的是连接wangjian的变量 SQLHENV dinghenv; /环境句柄括 SQLHDBC dinghdbc; /连接句柄括 SQLHSTMT dinghstmt; /语句

12、句柄括 SQLRETURN ret;SQLDOUBLE PRICE;SQLINTEGER QTY;SQLCHAR CNOCNO_LEN,NMNONMNO_LEN,ISSUEISSUE_LEN,DATE1DATE_LEN,STARTSTART_LEN,TERMTERM_LEN, TITLETITLE_LEN,PERIODPERIOD_LEN,NAMENAME_LEN,ADDRADDR_LEN;SQLINTEGER cbCNO=SQL_NTS,cbNMNO=SQL_NTS,cbISSUE=SQL_NTS,cbQTY=0,cbDATE1=SQL_NTS,cbSTART=SQL_NTS,cbTERM=

13、SQL_NTS, cbTITLE=SQL_NTS,cbPERIOD=SQL_NTS,cbNAME=SQL_NTS,cbADDR=SQL_NTS;SQLINTEGER cbPRICE=0;int w,x,y,m,n;/*Step 2 初始化环境3*/loop:ret=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&dinghenv);ret=SQLSetEnvAttr(dinghenv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);/*Step 3 建立连接*/ret=SQLAllocHandle(

14、SQL_HANDLE_DBC,dinghenv,&dinghdbc);ret=SQLConnect(dinghdbc,(SQLWCHAR*)(_T("SQLServe"),SQL_NTS,(SQLWCHAR*)(_T("sa"),SQL_NTS,(SQLWCHAR*)(_T("123"),SQL_NTS);if(!SQL_SUCCEEDED(ret) return -1;/*Step 4 初始化语句句柄括*/ret=SQLAllocHandle(SQL_HANDLE_STMT,dinghdbc,&dinghstmt);

15、ret=SQLSetStmtAttr(dinghstmt,SQL_ATTR_ROW_BIND_TYPE,(SQLPOINTER)SQL_BIND_BY_COLUMN,SQL_IS_INTEGER);/*Step 5 执行语句*/cout<<"+订户订阅报刊的应用系统+"<<endl;cout<<"输入需要操作的序号?"<<endl;cout<<"1、订户管理<<endl;cout<<"2、报刊目录管理<<endl;cout<<&

16、quot;3、订单管理<<endl;cout<<"4、查询订单<<endl;cout<<"5、统计查询"<<endl;cout<<"6、退出"<<endl;cin>>w;switch(w)case 1:w=1; /*订?户§管ü理?/ loop1:cout<<"+订户管理+"<<endl;cout<<"1、增加订户"<<endl;cout<

17、;<"2、修改订户"<<endl;cout<<"3、删除订户"<<endl;cout<<"4、返回上级"<<endl;cin>>x;switch(x)case 1:x=1; /*增?加ó订?户§*/ SQLWCHAR CNO1CNO_LEN,NAME1NAME_LEN,ADDR1ADDR_LEN;ret=SQLPrepare(dinghstmt,(SQLWCHAR*)(_T("INSERT INTO CUSTOMER(CNO,N

18、AME,ADDR) VALUES(?,?,?)"), SQL_NTS); /*输?入?数簓据Y*/cout<<"输入插入数据(NO,NAME,ADDR)?"<<endl;scanf("%s",CNO1);/cin>>CNO1;scanf("%s",NAME1); /cin>>NAME1;scanf("%s",ADDR1); /cin>>ADDR1; if(ret=SQL_SUCCESS|ret=SQL_SUCCESS_WITH_INFO)cbCN

19、O=SQL_NTS;cbNAME=SQL_NTS;cbADDR=SQL_NTS;ret=SQLBindParameter(dinghstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,CNO_LEN,0,CNO1,0,&cbCNO);ret=SQLBindParameter(dinghstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NAME_LEN,0,NAME1,0,&cbNAME);ret=SQLBindParameter(dinghstmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,S

20、QL_CHAR,ADDR_LEN,0,ADDR1,0,&cbADDR);/*Step 6 处理结果集并执行预编译后的语句*/ret=SQLExecute(dinghstmt); goto loop1;case 2:x=2;/*修改订户*/ SQLWCHAR CNO2CNO_LEN,NAME2NAME_LEN,ADDR2ADDR_LEN;ret=SQLPrepare(dinghstmt,(SQLWCHAR*)(_T("UPDATE CUSTOMER SET NAME=?, ADDR=? WHERE CNO=?"), SQL_NTS); /*输入数据*/cout<

21、<"输入修改数据(NO,NAME,ADDR)?"<<endl;scanf("%s",CNO2); /cin>>CNO2;scanf("%s",NAME2); /cin>>NAME2;scanf("%s",ADDR2); /cin>>ADDR2; if(ret=SQL_SUCCESS|ret=SQL_SUCCESS_WITH_INFO)cbCNO=SQL_NTS;cbNAME=SQL_NTS;cbADDR=SQL_NTS;ret=SQLBindParameter(

22、dinghstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NAME_LEN,0,NAME2,0,&cbNAME);ret=SQLBindParameter(dinghstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,ADDR_LEN,0,ADDR2,0,&cbADDR);ret=SQLBindParameter(dinghstmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,CNO_LEN,0,CNO2,0,&cbCNO);/*Step 6 处理结果集并执行预编译后

23、的语句*/ret=SQLExecute(dinghstmt); goto loop1;case 3:x=3;/*删除订户*/ SQLCHAR CNO3CNO_LEN; ret=SQLPrepare(dinghstmt,(SQLWCHAR*)(_T("DELETE FROM CUSTOMER WHERE CNO=?"), SQL_NTS); /*输入数据*/ cout<<"输入要删除的订户号"<<endl; cin>>CNO3; if(ret=SQL_SUCCESS|ret=SQL_SUCCESS_WITH_INFO)

24、cbCNO=SQL_NTS; ret=SQLBindParameter(dinghstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,CNO_LEN,0,CNO3,0,&cbCNO); ret=SQLExecute(dinghstmt); goto loop1;case 4:x=4;goto loop; case 2:w=2;/*报刊目录管理*/ loop2 :cout<<"+报刊目录管理+"<<endl; cout<<"1、增加报刊目录"<<endl; cout&

25、lt;<"2、修改报刊目录?"<<endl; cout<<"3、删除报刊目录"<<endl; cout<<"4、返回上级"<<endl; cin>>y; switch(y)case 1:y=1; /*增加报刊目录*/ SQLWCHAR NMNO1NMNO_LEN,TITLE1TITLE_LEN,PERIOD1PERIOD_LEN;SQLDOUBLE PRICE1;ret=SQLPrepare(dinghstmt,(SQLWCHAR*)(_T("IN

26、SERT INTO NMTABLE(NMNO,TITLE,PERIOD,PRICE) VALUES(?,?,?,?)"), SQL_NTS); /*输入数据*/cout<<"输入插入数据(MNO,TITLE,PERIOD,PRICE)?"<<endl;scanf("%s",NMNO1); /cin>>NMNO1;scanf("%s",TITLE1); /cin>>TITLE1;scanf("%s",PERIOD1); /cin>>PERIOD1;

27、cin>>PRICE1; if(ret=SQL_SUCCESS|ret=SQL_SUCCESS_WITH_INFO)cbNMNO=SQL_NTS;cbTITLE=SQL_NTS;cbPERIOD=SQL_NTS;cbPRICE=0;ret=SQLBindParameter(dinghstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NMNO_LEN,0,NMNO1,0,&cbNMNO);ret=SQLBindParameter(dinghstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,TITLE_LE

28、N,0,TITLE1,0,&cbTITLE);ret=SQLBindParameter(dinghstmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,PERIOD_LEN,0,PERIOD1,0,&cbPERIOD);ret=SQLBindParameter(dinghstmt,4,SQL_PARAM_INPUT,SQL_C_DOUBLE,SQL_DOUBLE,0,0,&PRICE1,0,&cbPRICE);/*Step 6 处理结果集并执行预编译后的语句*/ret=SQLExecute(dinghstmt); goto loo

29、p2;case 2:y=2;/*修改报刊目录*/ SQLCHAR NMNO2NMNO_LEN,TITLE2TITLE_LEN,PERIOD2PERIOD_LEN; SQLDOUBLE PRICE2;ret=SQLPrepare(dinghstmt,(SQLWCHAR*)(_T("UPDATE NMTABLE SET TITLE=?,PERIOD=?,PRICE=? WHERE NMNO=?"), SQL_NTS); /*输入数据*/cout<<"输入修改数据(MNO,TITLE,PERIOD,PRICE)?"<<endl;cin&

30、gt;>NMNO2;cin>>TITLE2;cin>>PERIOD2;cin>>PRICE2; if(ret=SQL_SUCCESS|ret=SQL_SUCCESS_WITH_INFO)cbNMNO=SQL_NTS;cbTITLE=SQL_NTS;cbPERIOD=SQL_NTS;cbPRICE=SQL_NTS;ret=SQLBindParameter(dinghstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,TITLE_LEN,0,TITLE2,0,&cbTITLE);ret=SQLBindParamet

31、er(dinghstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,PERIOD_LEN,0,PERIOD2,0,&cbPERIOD);ret=SQLBindParameter(dinghstmt,3,SQL_PARAM_INPUT,SQL_C_DOUBLE,SQL_DOUBLE,0,0,&PRICE2,0,&cbPRICE);ret=SQLBindParameter(dinghstmt,4,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NMNO_LEN,0,NMNO2,0,&cbNMNO);/*Ste

32、p 6 处理结果集并执行预编译后的语句*/ret=SQLExecute(dinghstmt); goto loop2;case 3:y=3;/*删除报馈刊目录*/ SQLCHAR NMNO3NMNO_LEN; ret=SQLPrepare(dinghstmt,(SQLWCHAR*)(_T("DELETE FROM NMTABLE WHERE NMNO=?"), SQL_NTS); /*输?入?数簓据Y*/ cout<<"输入要删除的报刊号?"<<endl; cin>>NMNO3; if(ret=SQL_SUCCESS|

33、ret=SQL_SUCCESS_WITH_INFO) cbCNO=SQL_NTS; ret=SQLBindParameter(dinghstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NMNO_LEN,0,NMNO3,0,&cbNMNO); ret=SQLExecute(dinghstmt); goto loop2;case 4:y=4;goto loop; case 3:w=3;/*订单管理*/ loop3:cout<<"+订单管理+"<<endl; cout<<"1、增加订单&l

34、t;<endl; cout<<"2、修改订单<<endl; cout<<"3、删除订单<<endl; cout<<"4、返回上级"<<endl; cin>>m; switch(m)case 1:m=1; /*增加订单*/ SQLCHAR CNO4CNO_LEN,DATE4DATE_LEN,NMNO4NMNO_LEN,START4START_LEN,TERM4TERM_LEN;SQLINTEGER QTY4;ret=SQLPrepare(dinghstmt,(SQLW

35、CHAR*)(_T("INSERT INTO dbo.ORDER(CNO,DATE1,NMNO,START,TERM,QTY) VALUES(?,?,?,?,?,?)"), SQL_NTS); cout<<"输入插入数据(CNO,DATE1,NMNO,START,TERM,QTY)?"<<endl;cin>>CNO4;cin>>DATE4;cin>>NMNO4;cin>>START4;cin>>TERM4;cin>>QTY4; if(ret=SQL_SUCCE

36、SS|ret=SQL_SUCCESS_WITH_INFO)cbCNO=SQL_NTS;cbDATE1=SQL_NTS;cbNMNO=SQL_NTS;cbSTART=SQL_NTS;cbTERM=SQL_NTS;cbQTY=0;ret=SQLBindParameter(dinghstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,CNO_LEN,0,CNO4,0,&cbCNO);ret=SQLBindParameter(dinghstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,DATE_LEN,0,DATE4,0,&

37、amp;cbDATE1);ret=SQLBindParameter(dinghstmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NMNO_LEN,0,NMNO4,0,&cbNMNO);ret=SQLBindParameter(dinghstmt,4,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,START_LEN,0,START4,0,&cbSTART);ret=SQLBindParameter(dinghstmt,5,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,TERM_LEN,0,TE

38、RM4,0,&cbTERM);ret=SQLBindParameter(dinghstmt,6,SQL_PARAM_INPUT,SQL_C_LONG,SQL_INTEGER,0,0,&QTY4,0,&cbQTY);/*Step 6 处理结果集并执行预编译后的语句*/ret=SQLExecute(dinghstmt); goto loop3;case 2:m=2;/*修改订单*/ SQLCHAR CNO5CNO_LEN,DATE5DATE_LEN,NMNO5NMNO_LEN,START5START_LEN,TERM5TERM_LEN;SQLINTEGER QTY5;ret

39、=SQLPrepare(dinghstmt,(SQLWCHAR*)(_T("UPDATE dbo.ORDER SET DATE1=?,START=?,TERM=?,QTY=? WHERE CNO=? AND NMNO=?"), SQL_NTS); /*输入数据*/cout<<"输入修改数据,CNO,DATE1,NMNO,START,TERM,QTY)?"<<endl;cin>>CNO5;cin>>DATE5;cin>>NMNO5;cin>>START5;cin>>TERM

40、5;cin>>QTY5; if(ret=SQL_SUCCESS|ret=SQL_SUCCESS_WITH_INFO)cbCNO=SQL_NTS;cbDATE1=SQL_NTS;cbNMNO=SQL_NTS;cbSTART=SQL_NTS;cbTERM=SQL_NTS;cbQTY=0;ret=SQLBindParameter(dinghstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,DATE_LEN,0,DATE5,0,&cbDATE1);ret=SQLBindParameter(dinghstmt,2,SQL_PARAM_INPUT,S

41、QL_C_CHAR,SQL_CHAR,START_LEN,0,START5,0,&cbSTART);ret=SQLBindParameter(dinghstmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,TERM_LEN,0,TERM5,0,&cbTERM);ret=SQLBindParameter(dinghstmt,4,SQL_PARAM_INPUT,SQL_C_LONG,SQL_INTEGER,0,0,&QTY5,0,&cbQTY);ret=SQLBindParameter(dinghstmt,5,SQL_PARAM_IN

42、PUT,SQL_C_CHAR,SQL_CHAR,CNO_LEN,0,CNO5,0,&cbCNO);ret=SQLBindParameter(dinghstmt,6,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NMNO_LEN,0,NMNO5,0,&cbNMNO);/*Step 6 处理结果集并执行预编译后的语句*/ret=SQLExecute(dinghstmt); goto loop3;case 3:m=3;/*删除订单*/ SQLCHAR CNO6CNO_LEN,NMNO6NMNO_LEN; ret=SQLPrepare(dinghstmt,(S

43、QLWCHAR*)(_T("DELETE FROM dbo.ORDER WHERE CNO=? AND NMNO=?"), SQL_NTS); /*输入数据*/ cout<<"输入要删除的用户号与报刊号"<<endl; cin>>CNO6; cin>>NMNO6; if(ret=SQL_SUCCESS|ret=SQL_SUCCESS_WITH_INFO) cbCNO=SQL_NTS;cbNMNO=SQL_NTS; ret=SQLBindParameter(dinghstmt,1,SQL_PARAM_INPU

44、T,SQL_C_CHAR,SQL_CHAR,CNO_LEN,0,CNO6,0,&cbCNO); ret=SQLBindParameter(dinghstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NMNO_LEN,0,NMNO6,0,&cbNMNO); ret=SQLExecute(dinghstmt); goto loop3;case 4:m=4;goto loop; case 4:w=4;/*查询订单*/ SQLCHAR CNO7CNO_LEN,DATE7DATE_LEN,NMNO7NMNO_LEN,START7START_LEN,TE

45、RM7TERM_LEN; SQLINTEGER QTY7; ret=SQLPrepare(dinghstmt,(SQLWCHAR*)(_T("SELECT * FROM dbo.ORDER WHERE CNO=?"),SQL_NTS);/*if(ret=SQL_SUCCESS|ret=SQL_SUCCESS_WITH_INFO)ret=SQLBindParameter(bingmouhstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,CNO_LEN,0,CNO7,0,&cbCNO);*/ cout<<"查询的

46、用户号"<<endl; scanf("%s",CNO7); if(ret=SQL_SUCCESS|ret=SQL_SUCCESS_WITH_INFO) cbCNO=SQL_NTS;cbDATE1=SQL_NTS;cbNMNO=SQL_NTS;cbSTART=SQL_NTS;cbTERM=SQL_NTS;cbQTY=0; ret=SQLBindParameter(dinghstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,CNO_LEN,0,CNO7,0,&cbCNO);ret=SQLBindCol(dingh

47、stmt,1,SQL_C_CHAR,CNO7,CNO_LEN,&cbCNO); ret=SQLBindCol(dinghstmt,2,SQL_C_CHAR,DATE7,DATE_LEN,&cbDATE1); ret=SQLBindCol(dinghstmt,3,SQL_C_CHAR,NMNO7,NMNO_LEN,&cbNMNO);ret=SQLBindCol(dinghstmt,4,SQL_C_CHAR,START7,START_LEN,&cbSTART);ret=SQLBindCol(dinghstmt,5,SQL_C_CHAR,TERM7,TERM_LEN,&cbTERM);ret=SQLBindCol(dinghstmt,6,SQL_C_LONG,&QTY7,0,&cbQTY); ret=SQLExecute(dinghstmt); while(SQLFe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论