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

📄 mdb.cpp

📁 一个企业订单管理流程的例子
💻 CPP
字号:
// Mdb.cpp: implementation of the CMdb class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "io.h"

#include "InvoiceDlg.h"
#include "Invoice.h"
#include "Mdb.h"
#include "MdbDlg.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

////////////////////////////
CDaoDatabase db;				//数据库
CDaoRecordset RecSet(&db);		//记录集

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
char database[256];

CMdb::CMdb()
{
	AFX_MANAGE_STATE(AfxGetModuleState());   
    AfxGetModuleState()->m_dwVersion   =   0x0601;

	char systemdir[256];
	GetSystemDirectory(systemdir,256);
	sprintf(database,"%s\\goods.mdb",systemdir);

}

CMdb::~CMdb()
{

}

int CMdb::CreateMdbDAO()
{
	CString SqlCmd;

	if(access("lkj.dat",0)!=0)
	{
		if(access(database,0)==0)remove(database);

		AfxMessageBox("\t\r平台第一次操作\t\r自动创建数据库lkj.dat\t\r请自己及时做好数据备份,以防数据丢失!\t\r\r设计者:丁良晖\t\r2007年5月");
		db.Create(database);
		//////标准值
		SqlCmd.Format("%s%s%s%s%s",
			"CREATE TABLE Goods_Table(t_num VARCHAR(50),",
			"t_goods_num VARCHAR(50),",
			"t_goods_mode VARCHAR(50),",
			"t_goods_unitprice VARCHAR(50),",
			"t_goods_remark VARCHAR(50) );");
		db.Execute(SqlCmd);

		///////交易单
		SqlCmd.Format("%s%s%s%s%s%s",
			"CREATE TABLE Goods_Table_save1(",
			"t_goods_tradetime    VARCHAR(50),",
			"t_goods_tradeprotcol VARCHAR(50),",
			"t_goods_tradeclient  VARCHAR(50),",
			"t_goods_trade_maxno VARCHAR(50),",
			"t_goods_trade_maxprice  VARCHAR(50) );");
		db.Execute(SqlCmd);

		SqlCmd.Format("%s%s%s%s%s",
			"CREATE TABLE Goods_Table_save2(t_goods_tradeprotcol VARCHAR(50),",
			"t_goods_num VARCHAR(50),",
			"t_goods_mode VARCHAR(50),",
			"t_goods_unitprice VARCHAR(50),",
			"t_goods_maxno VARCHAR(50) );");
		db.Execute(SqlCmd);

		db.Close();	
		
		////////////数据库加密
		FILE *fpw,*fpr;
		int c=0;
		if((fpr=fopen(database,"rb"))==NULL)
			return 0;

		if((fpw=fopen("lkj.dat","wb"))!=NULL)
		{
			while(1)
			{
				if(c==EOF)break;
				c=fgetc(fpr);

				fputc(c^0XFF,fpw);
			}
			fclose(fpw);
		}
		fclose(fpr);
	}
	else
	{//数据库解密
		FILE *fpw,*fpr;
		int c=0;
		if((fpr=fopen("lkj.dat","rb"))==NULL)
			return 0;

		if((fpw=fopen(database,"wb"))!=NULL)
		{
			while(1)
			{
				if(c==EOF)break;
				c=fgetc(fpr);

				fputc(c^0XFF,fpw);
			}
			fclose(fpw);
		}
		fclose(fpr);
	}
		
	return 0;
}


int CMdb::InsertMdbDao(CString goods_num,CString  goods_mode,CString goods_unitprice)
{
	// 打开已创建的数据库及表
	CString num;
	static int no=0;

	num.Format("%d",no++);

	db.Open(database);		
	RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,
			"SELECT * FROM Goods_Table", 0);

// 		//加入记录,用SQL语句
// 		db.Execute("INSERT INTO Goods_Table (Name,Age) VALUES ('徐景周',26)");
	
	//加入第记录,用DAO涵数
// 		RecSet.AddNew();
// 		RecSet.SetFieldValue("Name","郭徽");
// 		RecSet.SetFieldValue("Age","27");
// 		RecSet.Update();

	//加入记录,用DAO涵数
	RecSet.AddNew();
	RecSet.SetFieldValue("t_num",(LPCSTR)num);
	RecSet.SetFieldValue("t_goods_num",(LPCSTR)goods_num);
	RecSet.SetFieldValue("t_goods_mode",(LPCSTR)goods_mode);
	RecSet.SetFieldValue("t_goods_unitprice",(LPCSTR)goods_unitprice);
	RecSet.Update();
				
	//关闭记录集及库
	RecSet.Close();
	db.Close();

	return 1;			
}

int CMdb::QueryMdbDao(CString *goods_num,CString  *goods_mode,CString *goods_unitprice)
{	  	
	int flag=0,no;
	CString buf,Sql;
	COleVariant var;		// 字段类型

	var.ChangeType(VT_BSTR, NULL);

	if(goods_num[0].GetLength()!=0)
	{
			if(flag==0)
				buf="t_goods_num='"+goods_num[0]+"'";
			else 
				buf=buf+" and t_goods_num='"+goods_num[0]+"'";
			flag++;
	}
	if(goods_mode[0].GetLength()!=0)
	{
			if(flag==0)
				buf="t_goods_mode='"+goods_mode[0]+"'";
			else 
				buf=buf+" and t_goods_mode='"+goods_mode[0]+"'";
			flag++;
	}
	if(goods_unitprice[0].GetLength()!=0)
	{
			if(flag==0)
				buf="t_goods_unitprice='"+goods_unitprice[0]+"'";
			else 
				buf=buf+" and t_goods_unitprice='"+goods_unitprice[0]+"'";
			flag++;
	}

	if(goods_num[0].GetLength()==0
			&&goods_mode[0].GetLength()==0
			&&goods_unitprice[0].GetLength()==0)
		{
			Sql="SELECT * FROM Goods_Table ";
		}
	else
			Sql="SELECT * FROM Goods_Table where "+buf;


	// 打开已创建的数据库及表
 	db.Open(database);	
//	RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM Goods_Table where t_goods_num='11'", NULL);
    RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,Sql, NULL);
	
	no=0;
	while(!RecSet.IsEOF())	// 有没有到表结尾
	{
		RecSet.GetFieldValue("t_goods_num",var);
		goods_num[no]= (LPCSTR)var.pbstrVal;

		RecSet.GetFieldValue("t_goods_mode",var);
		goods_mode[no] = (LPCSTR)var.pbstrVal;

		RecSet.GetFieldValue("t_goods_unitprice",var);
		goods_unitprice[no]= (LPCSTR)var.pbstrVal;

		no++;
	
		RecSet.MoveNext();
	}

	//关闭记录集及库
	RecSet.Close();
	db.Close();

	return no;
}


int CMdb::DeleteMdbDao(CString goods_num, CString goods_mode, CString goods_unitprice)
{
	// 	CInvoiceDlg Dlg;
	int flag=0;
	CString buf,Sql;
	COleVariant var;		// 字段类型

	var.ChangeType(VT_BSTR, NULL);

	if(goods_num.GetLength()!=0)
	{
		if(flag==0)
			buf="t_goods_num='"+goods_num+"'";
		else 
			buf=buf+" and t_goods_num='"+goods_num+"'";
		flag++;
	}
	if(goods_mode.GetLength()!=0)
	{
		if(flag==0)
			buf="t_goods_mode='"+goods_mode+"'";
		else 
			buf=buf+" and t_goods_mode='"+goods_mode+"'";
		flag++;
	}
	if(goods_unitprice.GetLength()!=0)
	{
		if(flag==0)
			buf="t_goods_unitprice='"+goods_unitprice+"'";
		else 
			buf=buf+" and t_goods_unitprice='"+goods_unitprice+"'";
		flag++;
	}
	Sql="SELECT * FROM Goods_Table where "+buf;
	// 打开已创建的数据库及表
	db.Open(database);	
//	RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM Goods_Table where t_goods_num='11'", NULL);
    RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,Sql, NULL);
	
	mdb_goods_maxno=0;
	while(!RecSet.IsEOF())	// 有没有到表结尾
	{
		RecSet.GetFieldValue("t_goods_num",var);
		mdb_goods[mdb_goods_maxno].t_goods_num = (LPCSTR)var.pbstrVal;

		RecSet.GetFieldValue("t_goods_mode",var);
		mdb_goods[mdb_goods_maxno].t_goods_mode = (LPCSTR)var.pbstrVal;

		RecSet.GetFieldValue("t_goods_unitprice",var);
		mdb_goods[mdb_goods_maxno].t_goods_unitprice = (LPCSTR)var.pbstrVal;

		mdb_goods_maxno++;
        if(mdb_goods_maxno>MDB_GOODS_MAXNO)
		{
			AfxMessageBox("删除范围过大!");
			break;
		}

		/////////////////////删除
		RecSet.Delete();

		RecSet.MoveNext();
	}
	
	//关闭记录集及库
	RecSet.Close();
	db.Close();

	return mdb_goods_maxno;
}

int CMdb::Change(CString goods_num, CString goods_mode, CString goods_unitprice)
{
	int flag=0;
	CMdbDlg pDlg;
	CString buf,Sql;
	COleVariant var;		// 字段类型

	var.ChangeType(VT_BSTR, NULL);

	if(goods_num.GetLength()!=0)
	{
		if(flag==0)
			buf="t_goods_num='"+m_ChangeMdb[0]+"'";
		else 
			buf=buf+" and t_goods_num='"+m_ChangeMdb[0]+"'";
		flag++;
	}
	if(goods_mode.GetLength()!=0)
	{
		if(flag==0)
			buf="t_goods_mode='"+m_ChangeMdb[1]+"'";
		else 
			buf=buf+" and t_goods_mode='"+m_ChangeMdb[1]+"'";
		flag++;
	}
	if(goods_unitprice.GetLength()!=0)
	{
		if(flag==0)
			buf="t_goods_unitprice='"+m_ChangeMdb[2]+"'";
		else 
			buf=buf+" and t_goods_unitprice='"+m_ChangeMdb[2]+"'";
		flag++;
	}
	Sql="SELECT * FROM Goods_Table where "+buf;
	// 打开已创建的数据库及表
	db.Open(database);	
//	RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM Goods_Table where t_goods_num='11'", NULL);
    RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,Sql, NULL);
	
	mdb_goods_maxno=0;
	while(!RecSet.IsEOF())	// 有没有到表结尾
	{
		RecSet.GetFieldValue("t_goods_num",var);
		mdb_goods[mdb_goods_maxno].t_goods_num = (LPCSTR)var.pbstrVal;

		RecSet.GetFieldValue("t_goods_mode",var);
		mdb_goods[mdb_goods_maxno].t_goods_mode = (LPCSTR)var.pbstrVal;

		RecSet.GetFieldValue("t_goods_unitprice",var);
		mdb_goods[mdb_goods_maxno].t_goods_unitprice = (LPCSTR)var.pbstrVal;

		mdb_goods_maxno++;
        if(mdb_goods_maxno>MDB_GOODS_MAXNO)
		{
			AfxMessageBox("修改范围过大!");
			break;
		}

		///////////////////
		RecSet.Edit();

		if(goods_num.GetLength()!=0)
			RecSet.SetFieldValue("t_goods_num",(LPCSTR)goods_num);
		if(goods_mode.GetLength()!=0)
			RecSet.SetFieldValue("t_goods_mode",(LPCSTR)goods_mode);
		if(goods_unitprice.GetLength()!=0)
			RecSet.SetFieldValue("t_goods_unitprice",(LPCSTR)goods_unitprice);
		RecSet.Update();

		RecSet.MoveNext();
	}
	
	//关闭记录集及库
	RecSet.Close();
	db.Close();

	return mdb_goods_maxno;

}

int CMdb::QueryAllMdbDao(CString *goods_num,CString  *goods_mode,CString *goods_unitprice)
{
	// 	CInvoiceDlg Dlg;
	int no;
	COleVariant var;		// 字段类型

	var.ChangeType(VT_BSTR, NULL);

	// 打开已创建的数据库及表
	db.Open(database);	
	RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM Goods_Table ", NULL);
  	
	no=0;
	while(!RecSet.IsEOF())	// 有没有到表结尾
	{
		RecSet.GetFieldValue("t_goods_num",var);
		goods_num[no]= (LPCSTR)var.pbstrVal;

		RecSet.GetFieldValue("t_goods_mode",var);
		goods_mode[no] = (LPCSTR)var.pbstrVal;

		RecSet.GetFieldValue("t_goods_unitprice",var);
		goods_unitprice[no]= (LPCSTR)var.pbstrVal;

		no++;

		RecSet.MoveNext();
	}

	//关闭记录集及库
	RecSet.Close();
	db.Close();

	return no;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -