大学时候在linux下用c++的一个小测…

本文展示了一个使用C++进行数据库操作的示例程序,包括连接数据库、查询、添加、删除及查找记录等功能。该程序通过菜单引导用户完成不同的数据库操作。

#include <unistd.h>
#include <sys/param.h>
#include <sybfront.h>
#include <sybdb.h>
#include <syberror.h>
#include <stdio.h>
#include <iostream>
#include <iomanip>
using namespace std;

#define UID "sa"
#define PWD ""
#define PROGNAME "C1-8"
#define DBSERVER "10.10.36.11:1433"
#define DBNAME "ourwork"  

LOGINREC *login;
DBPROCESS *dbconn;
char hostname[MAXHOSTNAMELEN];

DBCHAR CardID[5];
DBCHAR name[20];
DBCHAR works[8];
DBCHAR daytime[18]; 

char getchose()
{
char a=0;
while(a==0)cin>>a;
return a;
}

int pr(int i=0)
{
switch (i)
{
case 0:
cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"<<endl;
break;

case 1:
cout<<"■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■";
cout<<"■ ■";
cout<<"■ Red System ■";
cout<<"■ ■";
cout<<"■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■";
cout<<"■ ■";
cout<<"■ 1.Workers List ■";
cout<<"■ ■";
cout<<"■ 2.Add Workers ■";
cout<<"■ ■";
cout<<"■ 3.Delete Workers ■";
cout<<"■ ■";
cout<<"■ 4.Find Workers ■";
cout<<"■ ■";
cout<<"■ other will exit ■";
cout<<"■ ■";
cout<<"■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■";
cout<<"■ Made By xcl & zr 2005@Copy Right ■";
cout<<"■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■";
break;

case 2:
cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆";
cout<<"☆ ☆";
cout<<"☆ Worker List Menu ☆";
cout<<"☆ ☆";
cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"; 
break;

case 3:
cout<<"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
cout<<"□ □";
cout<<"□ Add Workers □";
cout<<"□ □";
cout<<"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□\n";

break;


case 4:
cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★";
cout<<"★ ★";
cout<<"★ Delete Workers ★";
cout<<"★ ★";
cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n"; 
break;

case 5:
cout<<"◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆";
cout<<"◆ ◆";
cout<<"◆ Find Workers ◆";
cout<<"◆ ◆";
cout<<"◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n"; 
break;


case 7:
cout<<"ΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘ";
cout<<"Θ Θ";
cout<<"Θ ~^_^~Thank Your Bye Bye~^_^~ Θ";
cout<<"Θ Θ";
cout<<"ΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘΘ\n"; 
break;

}
return 0;
}


void init()


if (dbinit() == FAIL) 
cout<<endl<<stderr<<"Could not init db.\n"<<endl; 


if ((login = dblogin()) == FAIL) 
cout<<endl<<stderr<<"Could not initialize dblogin() structure.\n"<<endl;


DBSETLUSER(login, UID);
DBSETLPWD(login, PWD);
DBSETLAPP(login, PROGNAME);
if (gethostname(hostname, MAXHOSTNAMELEN) == 0)
DBSETLHOST(login, hostname);


if ((dbconn = dbopen(login, DBSERVER)) == NULL) 
cout<<endl<<stderr<<endl<<"Could not connect to DB Server: %s\n"<<endl<<DBSERVER; 


if ((dbuse(dbconn, DBNAME)) == FAIL)
cout<<endl<<stderr<<"Could not switch to database %s on DB Server %s\n"<<DBNAME<<DBSERVER<<endl;



dbloginfree(login); 

//////////////////////////////

}

void setsql()
{

dbcmd(dbconn, "select * from worker "); 


if (dbsqlexec(dbconn) == FAIL) 
{
cout<<endl<<stderr<<"Could not execute the sql statement~~~~"<<endl;

}

dbresults(dbconn);
}

void bindfield()
{

dbbind(dbconn, 2, NTBSTRINGBIND, 0, (BYTE *)&name);
dbbind(dbconn, 3, NTBSTRINGBIND, 0, (BYTE *)&works);
dbbind(dbconn, 4, NTBSTRINGBIND, 0, (BYTE *)&CardID);
//dbbind(dbconn, 5, NTBSTRINGBIND, 0, (BYTE *)&daytime);

}

void showall()
{

while (dbnextrow(dbconn) != NO_MORE_ROWS) 
{

cout<<setw(20)<<name<<setw(10)<<works<<setw(7)<<CardID<<endl;
}
dbresults(dbconn); 
}

void clearsql()
{
dbfreebuf(dbconn);

}
void close()
{
dbclose(dbconn);
dbexit();

}

main()
{
init();
char cho;
pr(0);
pr(1);
cho =getchose();
if (cho=='1')
{
pr(0);
pr(2);
setsql();
bindfield();
showall();
}

if(cho=='2')
{
char tname[20];
char tCardID[5];
char tworks[8];
char tempsql[90];
pr(0);
pr(3);
cout<<"enter name"<<endl;
cin>>tname;
cout<<"enter CardID"<<endl;
cin>>tCardID;
cout<<"enter works"<<endl;
cin>>tworks;
sprintf(tempsql,"insert worker(name,works,cardid) values('%s','%s','%s')",tname,tworks,tCardID);
clearsql();
dbcmd(dbconn, tempsql); 

if (dbsqlexec(dbconn) == FAIL) 
{
cout<<endl<<stderr<<"Could not execute the sql statement"<<endl;

}

dbresults(dbconn);
}

if(cho=='3')
{
pr(4);
char tcardid[30];
char tempsql[80];
cout<<"enter the worker's cardid you want to delete"<<endl;
cin>>tcardid;

sprintf(tempsql,"delete from worker where cardid = '%s'",tcardid);
clearsql();
dbcmd(dbconn, tempsql); 

if (dbsqlexec(dbconn) == FAIL) 
{
cout<<endl<<stderr<<"Could not execute the sql statement"<<endl; 

dbresults(dbconn);
}

if(cho=='4')
{
pr(5);
char tcardid[30];
char tempsql[80];
cout<<"enter the worker's cardid you want to find"<<endl;
cin>>tcardid;

sprintf(tempsql,"select * from worker where cardid like '%%%s%%'",tcardid);
clearsql();
dbcmd(dbconn, tempsql); 

if (dbsqlexec(dbconn) == FAIL) 
{
cout<<endl<<stderr<<"Could not execute the sql statement"<<endl; 

dbresults(dbconn);

bindfield();
showall();

}

pr(7);
clearsql();
close();
cout<<"ok"<<endl;
}

cd ~ vi .bash_profile 环境: 输入 LD_LIBRARY_PATH=/usr/local/lib LD= /usr/local/lib export LD_LIBRARY_PATH 退出vi 执行export LD_LIBRARY_PATH=/usr/local/lib 编译命令使用 g++ -lsybdb sample.cpp 运行 ./a.out
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值