📄 dboper.cpp
字号:
#include "stdafx.h"
#include <time.h>
#include "ado.h"
#include "DBOper.h"
#include "GlobalVarFunc.h"
//数据库相关变量
extern char gServerName[128];
extern char gDataBaseName[200];
extern char gUserName[128];
extern char gPassWD[128];
extern CADODatabase *gpDataBase;
extern bool gDBConnected;
extern COleDateTime gDBConnTime;
//数据库连接
int ConnectDatabase()
{
char strConnection[256];
SetCursor(LoadCursor(NULL,IDC_WAIT));
strcpy(strConnection,"DRIVER=SQL Server;SERVER=");
strcat(strConnection,gServerName);
strcat(strConnection,";UID=");
strcat(strConnection,gUserName);
strcat(strConnection,";PWD=");
strcat(strConnection,gPassWD);
strcat(strConnection,";DATABASE=");
strcat(strConnection,gDataBaseName);
strcat(strConnection,";");
if(gpDataBase!=NULL)
{
gpDataBase->Close();
delete gpDataBase;
gpDataBase = NULL;
}
gpDataBase = new CADODatabase;
gpDataBase->PutConnectionTimeout(5);
if(gpDataBase->Open(strConnection)==true)
{ SetCursor(LoadCursor(NULL,IDC_ARROW));
gDBConnected = true;
gDBConnTime = COleDateTime::GetCurrentTime();
return 1; //OK
}
else
{ SetCursor(LoadCursor(NULL,IDC_ARROW));
gDBConnected = false;
return -1; //Failure
}
}
//断开数据库连接
int DisconnectDatabase()
{ if(gDBConnected)
{ gpDataBase->Close();
delete gpDataBase;
gpDataBase = NULL;
}
gDBConnected = false;
return 0;
}
int QueryInfoYonghuTable(CString username,CString password)
{
CADORecordset *pRs=NULL;
CString Ypassword;
char strSql[400];
long total;
CString temp;
pRs = new CADORecordset(gpDataBase);
if(!pRs) return 0;
strcpy(strSql,"select count(*) as total from 登录表 where 用户名='");
strcat(strSql,username);
strcat(strSql,"'");
////记录查询失败
if(pRs->Open(strSql)==false)
{
delete pRs;
return -1;
}
//////用户不存在
pRs->GetFieldValue("total",total);
pRs->Close();
if(total<=0)
{
delete pRs;
return 0;
}
////////查密码
strcpy(strSql,"select 密码 from 登录表 where 用户名='");
strcat(strSql,username);
strcat(strSql,"'");
if(pRs->Open(strSql)==false)
{
delete pRs;
return -1;
}
pRs->GetFieldValue("密码",temp);
temp.TrimRight();
Ypassword=temp;
pRs->Close();
if(password==Ypassword)///////////成功
{
delete pRs;
return 1;
}
else ////////密码错误
{
delete pRs;
return -2;
}
}
bool InsertInfoIntoStudentTable(StInfo st)
{
char strSql[400],temp[20];
memset(strSql,0,400);
strcpy(strSql,"insert into 学生表(学号,姓名,性别,年龄) Values('");
strcat(strSql,st.st_no);
strcat(strSql,"','");
strcat(strSql,st.st_name);
strcat(strSql,"','");
strcat(strSql,st.st_sex);
strcat(strSql,"',");
strcat(strSql,itoa(st.st_age,temp,10));
strcat(strSql,")");
return gpDataBase->Execute(strSql);
}
bool DeleteInfoFromStudentTable(StInfo st)
{
char strSql[400];
long total;
CString temp;
CADORecordset *pRs=NULL;
pRs = new CADORecordset(gpDataBase);
if(!pRs) return false;
strcpy(strSql,"select count(*) as total from 学生表 where 学号='");
strcat(strSql,st.st_no);
strcat(strSql,"'");
////记录查询失败
if(pRs->Open(strSql)==false)
{
delete pRs;
return false;
}
//////用户不存在
pRs->GetFieldValue("total",total);
pRs->Close();
if(total<=0)
{
delete pRs;
return false;
}
memset(strSql,0,400);
strcpy(strSql,"delete from 学生表 where 学号='");
strcat(strSql,st.st_no);
strcat(strSql,"'");
return gpDataBase->Execute(strSql);
}
bool UpdateInfoFromStudentTable(StInfo st)
{
char strSql[400],temp[20];
memset(strSql,0,400);
strcpy(strSql,"Update 学生表 Set 姓名='");
strcat(strSql,st.st_name);
strcat(strSql,"',性别='");
strcat(strSql,st.st_sex);
strcat(strSql,"',年龄=");
strcat(strSql,itoa(st.st_age,temp,10));
strcat(strSql," where 学号='");
strcat(strSql,st.st_no);
strcat(strSql,"'");
return gpDataBase->Execute(strSql);
}
bool InsertInfoIntoKechengTable(KcInfo kc)
{
char strSql[400],temp[20];
memset(strSql,0,400);
strcpy(strSql,"insert into 课程表(课程号,课程名,学分) Values('");
strcat(strSql,kc.kc_no);
strcat(strSql,"','");
strcat(strSql,kc.kc_name);
strcat(strSql,"',");
strcat(strSql,itoa(kc.kc_score,temp,10));
strcat(strSql,")");
return gpDataBase->Execute(strSql);
}
bool DeleteInfoFromKechengTable(KcInfo kc)
{
char strSql[400];
long total;
CString temp;
CADORecordset *pRs=NULL;
pRs = new CADORecordset(gpDataBase);
if(!pRs) return false;
strcpy(strSql,"select count(*) as total from 课程表 where 课程号='");
strcat(strSql,kc.kc_no);
strcat(strSql,"'");
////记录查询失败
if(pRs->Open(strSql)==false)
{
delete pRs;
return false;
}
//////用户不存在
pRs->GetFieldValue("total",total);
pRs->Close();
if(total<=0)
{
delete pRs;
return false;
}
memset(strSql,0,400);
strcpy(strSql,"delete from 课程表 where 课程号='");
strcat(strSql,kc.kc_no);
strcat(strSql,"'");
return gpDataBase->Execute(strSql);
}
bool UpdateInfoFromKechengTable(KcInfo kc)
{
char strSql[400],temp[20];
memset(strSql,0,400);
strcpy(strSql,"Update 课程表 Set 课程名='");
strcat(strSql,kc.kc_name);
strcat(strSql,"',学分=");
strcat(strSql,itoa(kc.kc_score,temp,10));
strcat(strSql," where 课程号='");
strcat(strSql,kc.kc_no);
strcat(strSql,"'");
return gpDataBase->Execute(strSql);
}
bool InsertInfoIntoChengjiTable(CjInfo cj)
{
char strSql[400],temp[20];
memset(strSql,0,400);
strcpy(strSql,"insert into 成绩表(学号,姓名,课程号,课程名,成绩) Values('");
strcat(strSql,cj.cj_stno);
strcat(strSql,"','");
strcat(strSql,cj.cj_stname);
strcat(strSql,"','");
strcat(strSql,cj.cj_kcno);
strcat(strSql,"','");
strcat(strSql,cj.cj_kcname);
strcat(strSql,"',");
strcat(strSql,itoa(cj.cj_cj,temp,10));
strcat(strSql,")");
return gpDataBase->Execute(strSql);
}
bool DeleteInfoFromChengjiTable(CjInfo cj)
{
char strSql[400];
long total;
CString temp;
CADORecordset *pRs=NULL;
pRs = new CADORecordset(gpDataBase);
if(!pRs) return false;
strcpy(strSql,"select count(*) as total from 成绩表 where 学号='");
strcat(strSql,cj.cj_stno);
strcat(strSql,"'");
strcat(strSql,"and 课程号='");
strcat(strSql,cj.cj_kcno);
strcat(strSql,"'");
////记录查询失败
if(pRs->Open(strSql)==false)
{
delete pRs;
return false;
}
//////用户不存在
pRs->GetFieldValue("total",total);
pRs->Close();
if(total<=0)
{
delete pRs;
return false;
}
memset(strSql,0,400);
strcpy(strSql,"delete from 成绩表 where 学号='");
strcat(strSql,cj.cj_stno);
strcat(strSql,"'");
strcat(strSql,"and 课程号='");
strcat(strSql,cj.cj_kcno);
strcat(strSql,"'");
return gpDataBase->Execute(strSql);
}
bool UpdateInfoFromChengjiTable(CjInfo cj)
{
char strSql[400],temp[20];
memset(strSql,0,400);
strcpy(strSql,"Update 成绩表 Set 姓名='");
strcat(strSql,cj.cj_stname);
strcat(strSql,"',课程名=");
strcat(strSql,cj.cj_kcname);
strcat(strSql,"',成绩=");
strcat(strSql,itoa(cj.cj_cj,temp,10));
strcat(strSql," where 学号='");
strcat(strSql,cj.cj_stno);
strcat(strSql,"'");
strcat(strSql,"and 课程号='");
strcat(strSql,cj.cj_kcno);
strcat(strSql,"'");
return gpDataBase->Execute(strSql);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -