⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dboper.cpp

📁 具有添加,删除,修改,更新的功能,用ado读ini文件访问数据库
💻 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 + -