#include "unistd.h"
#include "sys/param.h"
#include "sybfront.h"
#include "sybdb.h"
#include "syberror.h"
#include "stdio.h"
#include "iostream.h"
#define UID "group2"
#define PWD "123456"
#define PROGNAME "DemoProg"
#define DBSERVER "198.168.2.100:1433"
#define DBNAME "store_2"
LOGINREC *login;
DBPROCESS *dbconn;
//数据库连接类
class Connection
{
public:
void connectDB();
void disconnectDB();
};//数据库应用类
class App
{
//私有成员列表
private:
int good_id; //商品编号
char goodname[50]; //商品名称
char goodprice[50]; //商品价格
char sellprice[50]; //销售价格
int quantitye; //当前库存量
int minquantitye; //最低库存量
int maxquantitye; //最大库存量
int supplierid; //供应商编号
char SupplierName[50]; //供应商名称
//公有成员列表
public:
void print(); //打印
void input(); //输入数据
void add_app(); //执行数据记录的添加操作
void update_app(); //执行数据记录的更新操作
void Delete_app(); //执行数据记录的删除操作
void insert_app(); //执行数据记录的插入操作
void display(); //显示数据并执行
};
//连接到数据库的方法
void Connection::connectDB()
{
char hostname[MAXHOSTNAMELEN];
int max_len = MAXHOSTNAMELEN;
if(dbinit() == FAIL)
{
cout<<"initialize DB error"<<endl;//初始化出错
}
if((login = dblogin())==FAIL)
{
cout<<"initialize dblogin() structure error";//构造出错
}
DBSETLUSER(login, UID);
DBSETLPWD(login, PWD);
if(gethostname(hostname, max_len)==0)
{
DBSETLHOST(login,hostname);
}
if((dbconn=dbopen(login,DBSERVER))==NULL)
{
cout<<"connect to the DB server error: "<<DBSERVER<<endl;
}
if((dbuse(dbconn, DBNAME)) == FAIL)
{
cout<<"Open database error"<<DBNAME<<" in "<< DBSERVER ;
cout<<endl;
}
dbloginfree(login);
}
//关闭数据库连接
void Connection::disconnectDB()
{
dbfreebuf(dbconn);
dbclose(dbconn);
dbexit();
}
//打印
void App::print()
{
cout<<"\t\t\t\t\t★★★★★★★★★★★★★★★★★★★★★"<<endl;
cout<<"\t\t\t\t\t★★★★★★★★★★★★★★★★★★★★★"<<endl;
cout<<"\t\t\t\t\t☆☆ Ⅰ.添加一条新的商品记录 ☆☆"<<endl;
cout<<"\t\t\t\t\t☆☆ Ⅱ.根据编号更新商品记录 ☆☆"<<endl;
cout<<"\t\t\t\t\t☆☆ Ⅲ.根据编号删除商品记录 ☆☆"<<endl;
cout<<"\t\t\t\t\t☆☆ Ⅳ.显示所有商品记录 ☆☆"<<endl;
cout<<"\t\t\t\t\t☆☆ 除1到4以外的任何字符退出本程序 ☆☆"<<endl;
cout<<"\t\t\t\t\t★★★★★★★★★★★★★★★★★★★★★"<<endl;
cout<<"\t\t\t\t\t★★★★★★★★★★★★★★★★★★★★★"<<endl;
}
//输入
void App::input()
{
cout<<"添加一条新的商品记录"<<endl;
cout<<"商品编号 :"; cin>>good_id;
cout<<"商品名称 :"; cin>>goodname;
cout<<"商品价格 :"; cin>>goodprice;
cout<<"销售价格 :"; cin>>sellprice;
cout<<"当前库存量 :"; cin>>quantitye;
cout<<"最低库存量 :"; cin>>minquantitye;
cout<<"最大库存量 :"; cin>>maxquantitye;
cout<<"供应商编号 :"; cin>>supplierid;
}
//显示
void App::display()
{
dbcmd(dbconn,"select Goods.* ,Supplier.SupplierName from Goods cross join Supplier where Goods.SupplierID=Supplier.SupplierID ");
if (!dbsqlexec(dbconn)==FAIL)
{
cout<<"Query executed successfully"<<endl;//执行成功
}
else
{
cout<<"Error in execution"<<endl; //执行失败
}
dbresults(dbconn);//调用非常重要
dbbind(dbconn,1,INTBIND,0,(BYTE*)&good_id);
dbbind(dbconn,2,NTBSTRINGBIND,0,(BYTE*)&goodname);
dbbind(dbconn,3,NTBSTRINGBIND,0,(BYTE*)&goodprice);
dbbind(dbconn,4,NTBSTRINGBIND,0,(BYTE*)&sellprice);
dbbind(dbconn,5,INTBIND,0,(BYTE*)&quantitye);
dbbind(dbconn,6,INTBIND,0,(BYTE*)&minquantitye);
dbbind(dbconn,7,INTBIND,0,(BYTE*)&maxquantitye);
dbbind(dbconn,8,INTBIND,0,(BYTE*)&supplierid);
dbbind(dbconn,9,NTBSTRINGBIND,0,(BYTE*)&SupplierName);
cout<<"▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲"<<endl;
cout<<"GoodsID\tGoodsName\tInPrice\t\tSellPrice\tQuantity\tMinQuantity\tMaxQuantity\tSupplierID\tSupplierName\n\n";
cout<<"▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲"<<endl;
while (dbnextrow(dbconn)!=NO_MORE_ROWS)
{
cout<<good_id<<"\t"<<goodname<<"\t\t"<<goodprice<<"\t\t"<<sellprice<<"\t\t"<<quantitye<<"\t\t"<<minquantitye<<"\t\t"<<maxquantitye<<"\t\t"<<supplierid<<"\t\t"<<SupplierName<<endl;
}
cout<<"▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲"<<endl;
}
//添加
void App::add_app()
{
App::input();
dbfcmd(dbconn,"insert Goods values(%d,'%s','%s','%s',%d,%d,%d,%d)", good_id,goodname,goodprice,sellprice,quantitye,minquantitye,maxquantitye,supplierid);
App::display();
}
//更新
void App::update_app()
{
int a;
cout<<"输入要更新的编号:"; cin>>good_id;
cout<<"请选择要更新的数据(1-8):①updateAll ②GoodsName ③InPrice ④SellPrice ⑤Quantity ⑥MinQuantity ⑦MaxQuantity ⑧SupplierID"<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"输入要更新的数据为:"; cin>>a;
//判断要更新的内容
if (a==1)
{
cout<<"商品名称 :"; cin>>goodname;
cout<<"商品价格 :"; cin>>goodprice;
cout<<"销售价格 :"; cin>>sellprice;
cout<<"当前库存量 :"; cin>>quantitye;
cout<<"最低库存量 :"; cin>>minquantitye;
cout<<"最大库存量 :"; cin>>maxquantitye;
cout<<"供应商编号 :"; cin>>supplierid;
dbfcmd(dbconn,"update Goods set GoodsName='%s',InPrice='%s',SellPrice='%s',Quantity=%d,MinQuantity=%d,MaxQuantity=%d,SupplierID=%d where GoodsID=%d",goodname,goodprice,sellprice,quantitye,minquantitye,maxquantitye,supplierid,good_id);
App::display();
}
else if (a==2)
{
cout<<"商品名称 :"; cin>>goodname;
dbfcmd(dbconn,"update Goods set GoodsName='%s' where GoodsID=%d",goodname,good_id);
App::display();
}
else if (a==3)
{
cout<<"商品价格 :"; cin>>goodprice;
dbfcmd(dbconn,"update Goods set InPrice='%s' where GoodsID=%d",goodprice,good_id);
App::display();
}
else if (a==4)
{
cout<<"销售价格 :"; cin>>sellprice;
dbfcmd(dbconn,"update Goods set SellPrice='%s' where GoodsID=%d",sellprice,good_id);
App::display();
}
else if (a==5)
{
cout<<"当前库存量 :"; cin>>quantitye;
dbfcmd(dbconn,"update Goods set Quantity=%d where GoodsID=%d",quantitye,good_id);
App::display();
}
else if (a==6)
{
cout<<"最低库存量 :"; cin>>minquantitye;
dbfcmd(dbconn,"update Goods set MinQuantity=%d where GoodsID=%d",minquantitye,good_id);
App::display();
}
else if (a==7)
{
cout<<"最大库存量 :"; cin>>maxquantitye;
dbfcmd(dbconn,"update Goods set MaxQuantity=%d where GoodsID=%d",maxquantitye,good_id);
App::display();
}
else if (a==8)
{
cout<<"供应商编号 :"; cin>>supplierid;
dbfcmd(dbconn,"update Goods set SupplierID=%d where GoodsID=%d",supplierid,good_id);
App::display();
}
else
{
cout<<"**************你所输入的数字不在所要更新字段范围内,看好之后再选择**************"<<endl;
App::display();
}
}
// 删除
void App::Delete_app()
{
cout<<"输入要删除的商品编号:";
cin>>good_id;
dbfcmd(dbconn,"delete Sell where GoodsID=%d",good_id);
dbfcmd(dbconn,"delete Goods where GoodsID=%d",good_id);
App::display();
}
int main()
{
Connection a1;
App b1;
a1.connectDB();
b1.print();
int i;
char a;
while (1)
{
没有合适的资源?快使用搜索试试~ 我知道了~
LUXI访问数据库
共2个文件
cpp:1个
doc:1个
需积分: 0 2 下载量 136 浏览量
2007-12-26
11:36:41
上传
评论
收藏 27KB RAR 举报
温馨提示
提供参考,有什么要改的地方,请跟我留言噢~!~!~
资源详情
资源评论
资源推荐
收起资源包目录
项目.rar (2个子文件)
项目
dblibrary.cpp 8KB
项目文档.doc 88KB
共 2 条
- 1
活力无限
- 粉丝: 1
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0