📄 mdb.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 + -