java recordset转map_使用ADO的具体方法(转)

网上关于ADO的使用方法很多,这边我个人就整理出一个使用ADO的方法的具体步骤:1、用#import引入ADO库文件在stdafx.h文件中添加#import "c:\program files\common files\system\ado\msado15.dll"no_namespaces rename("EOF" adoEOF")

2、 数据库连接,创建CDBConnection,代码如下:

cbef093dcc044b2793832001e2365e43.pngclassCDBConnection  

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngpublic:

df37983f39daa189b8c814e01a6a9011.png//数据库是否已连接df37983f39daa189b8c814e01a6a9011.pngBOOL m_Actived;

df37983f39daa189b8c814e01a6a9011.png//关闭连接df37983f39daa189b8c814e01a6a9011.pngvoidClose();

df37983f39daa189b8c814e01a6a9011.png//打开连接df37983f39daa189b8c814e01a6a9011.pngBOOL Open(CString CnnStr);

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//ADO的连接对象指针df37983f39daa189b8c814e01a6a9011.png_ConnectionPtr m_pConn;

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    CDBConnection();

df37983f39daa189b8c814e01a6a9011.pngvirtual~CDBConnection();

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png};

cbef093dcc044b2793832001e2365e43.pngCDBConnection::CDBConnection()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png//创建连接对象df37983f39daa189b8c814e01a6a9011.pngm_pConn.CreateInstance("ADODB.Connection");

df37983f39daa189b8c814e01a6a9011.png    m_Actived=FALSE;

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCDBConnection::~CDBConnection()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png//释放连接对象df37983f39daa189b8c814e01a6a9011.pngm_pConn.Release();

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngBOOL CDBConnection::Open(CString CnnStr)

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngtryf70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        m_pConn->Open(_bstr_t(CnnStr),"","", adConnectUnspecified);

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png        m_Actived=TRUE;

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.pngreturnTRUE;

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.pngcatch(_com_error&e)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnFALSE;

4a5daaec04350a363f186a4d2c5ed6ce.png    }0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCDBConnection::Close()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngif(m_Actived)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        m_pConn->Close();

df37983f39daa189b8c814e01a6a9011.png        m_Actived=FALSE;

4a5daaec04350a363f186a4d2c5ed6ce.png    }0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

相关函数:

1)HRESULT Connection15::Open ( _bstr_t ConnectionString, _bstr_t UserID, _bstr_t Password, long Options )ConnectionString

例子:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strCommandLine +

"WhMgrDB.mdb;Persist Security Info=False"。其中strCommandLine

为数据库的地址,WhMgrDB.mdb为所要用到的数据库。

UserID和Password分别为建立连接时所使用的用户名和密码

Options:

决定是使用同步方式(adConnectUnspecified默认)还是异步方式(adAsyncConnext)打开数据库。当使用同步方式打开数据

库时,只有打开完成,Open方法才返回;而是用异步方式打开数据库时,Open方法在建立连接完成之前就返回。

3、 通用数据访问模块的实现

cbef093dcc044b2793832001e2365e43.pngclassCDataSet  

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngprotected:

df37983f39daa189b8c814e01a6a9011.png//打开查询df37983f39daa189b8c814e01a6a9011.pngBOOL Open(CString SQL);

df37983f39daa189b8c814e01a6a9011.pngpublic:

df37983f39daa189b8c814e01a6a9011.png//删除当前记录df37983f39daa189b8c814e01a6a9011.pngvoidDelete();

df37983f39daa189b8c814e01a6a9011.png//更新记录df37983f39daa189b8c814e01a6a9011.pngvoidUpdate();

df37983f39daa189b8c814e01a6a9011.png//将Field列的值设置为Valuedf37983f39daa189b8c814e01a6a9011.pngvoidSetAsString(CString Field, CString Value);

df37983f39daa189b8c814e01a6a9011.png//关闭查询df37983f39daa189b8c814e01a6a9011.pngvoidClose();

df37983f39daa189b8c814e01a6a9011.png//加载数据df37983f39daa189b8c814e01a6a9011.pngvirtualBOOL LoadData();

df37983f39daa189b8c814e01a6a9011.png//得到Field列的值df37983f39daa189b8c814e01a6a9011.pngCString GetAsString(CString FieldName);

df37983f39daa189b8c814e01a6a9011.png//是否在第一条记录之前df37983f39daa189b8c814e01a6a9011.pngBOOL IsBOF();

df37983f39daa189b8c814e01a6a9011.png//是否在最后一条记录之后df37983f39daa189b8c814e01a6a9011.pngBOOL IsEOF();

df37983f39daa189b8c814e01a6a9011.png//移动到上一条记录df37983f39daa189b8c814e01a6a9011.pngvoidMovePrevious();

df37983f39daa189b8c814e01a6a9011.png//移动到下一条记录df37983f39daa189b8c814e01a6a9011.pngvoidMoveNext();

df37983f39daa189b8c814e01a6a9011.png//移动到最后一条记录df37983f39daa189b8c814e01a6a9011.pngvoidMoveLast();

df37983f39daa189b8c814e01a6a9011.png//移动到第一条记录df37983f39daa189b8c814e01a6a9011.pngvoidMoveFirst();

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//数据库连接对象df37983f39daa189b8c814e01a6a9011.pngCDBConnection*m_cnn;

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    CDataSet();

df37983f39daa189b8c814e01a6a9011.pngvirtual~CDataSet();

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.pngprivate:

df37983f39daa189b8c814e01a6a9011.png    BOOL m_Actived;

df37983f39daa189b8c814e01a6a9011.png    _RecordsetPtr m_pRs;

0ac3a2d53663ec01c7f7225264eeefae.png};

cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCDataSet::CDataSet()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    m_pRs.CreateInstance("ADODB.RecordSet");

df37983f39daa189b8c814e01a6a9011.png    m_Actived=FALSE;

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCDataSet::~CDataSet()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    m_pRs.Release();

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngBOOL CDataSet::Open(CString SQL)

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    ASSERT(m_cnn);

df37983f39daa189b8c814e01a6a9011.png    ASSERT(m_cnn->m_Actived);

df37983f39daa189b8c814e01a6a9011.pngtryf70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        m_pRs->Open(_variant_t(SQL), _variant_t(m_cnn->m_pConn,true), adOpenStatic, adLockOptimistic, adCmdText);

df37983f39daa189b8c814e01a6a9011.png    

df37983f39daa189b8c814e01a6a9011.png        m_Actived=TRUE;

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.pngreturnTRUE;

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.pngcatch(_com_error&e)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnFALSE;

4a5daaec04350a363f186a4d2c5ed6ce.png    }0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCDataSet::MoveFirst()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    m_pRs->MoveFirst();

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCDataSet::MoveLast()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    m_pRs->MoveLast();

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCDataSet::MoveNext()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    m_pRs->MoveNext();

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCDataSet::MovePrevious()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    m_pRs->MovePrevious();

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngBOOL CDataSet::IsEOF()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnm_pRs->EndOfFile;

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngBOOL CDataSet::IsBOF()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnm_pRs->BOF;

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CDataSet::GetAsString(CString FieldName)

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    ASSERT(!IsBOF()&&!IsEOF());

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    _variant_t vValue=m_pRs->Fields->Item[_variant_t(FieldName)]->Value;

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//如果为空值则返回空df37983f39daa189b8c814e01a6a9011.pngif((V_VT(&vValue)==VT_NULL)||(V_VT(&vValue)==VT_EMPTY))

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturn"";

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.pngreturn_com_util::ConvertBSTRToString(_bstr_t(vValue));

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngBOOL CDataSet::LoadData()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnFALSE;

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCDataSet::Close()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngif(m_Actived)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        m_pRs->Close();

4a5daaec04350a363f186a4d2c5ed6ce.png    }0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCDataSet::SetAsString(CString Field, CString Value)

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    ASSERT(!IsBOF()&&!IsEOF());

df37983f39daa189b8c814e01a6a9011.png    m_pRs->Fields->Item[_variant_t(Field)]->Value=_variant_t(Value);

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCDataSet::Update()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    m_pRs->Update();

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCDataSet::Delete()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    m_pRs->Delete(adAffectCurrent);

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

相关函数:1)HRESULT Recordset15::Open (

const _variant_t & Source, const _variant_t & ActiveConnection,

enum CursorTypeEnum CursorType, enum LockTypeEnum LockType, long Options

)

Source:变体型,计算Command对象的变量名、SQL语句、表名、存储过程调用或持久Recordset文件名。

ActiveConnection:计算有效地Connection对象变量名或字符串,包含ConnectionString参数。

CursorType:确定提供者打开Recordset时应该使用的游标类型。

LockType:adLockReadOnly(默

认值,只读)、adLockPessimistic(保守式锁定)、adLockOptimistic(开放式锁定,只有使用Update时才锁定记

录)、adLockBatchOptimistic(开放式批更新)

Options:有adCmdText、adCmdTable、adCmdTableDirect和adCmdStoredProc等。

2)_variant_t vValue = m_pRs->Fields->Item[_variant_t(FieldName)]->Value;

_com_util::ConvertBSTRToString(_bstr_t(vValue));

m_pRs->Fields->Item[_variant_t(Field)]->Value = _variant_t(Value);

4、通用数据命令模块的实现

cbef093dcc044b2793832001e2365e43.pngclassCDBCommand  

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngpublic:

df37983f39daa189b8c814e01a6a9011.png//数据库连接对象df37983f39daa189b8c814e01a6a9011.pngCDBConnection*m_cnn;

df37983f39daa189b8c814e01a6a9011.png//执行SQLdf37983f39daa189b8c814e01a6a9011.pngBOOL ExecuteSQL(CString SQL);

df37983f39daa189b8c814e01a6a9011.png    CDBCommand();

df37983f39daa189b8c814e01a6a9011.pngvirtual~CDBCommand();

0ac3a2d53663ec01c7f7225264eeefae.png};

cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCDBCommand::CDBCommand()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCDBCommand::~CDBCommand()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngBOOL CDBCommand::ExecuteSQL(CString SQL)

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    ASSERT(m_cnn);

df37983f39daa189b8c814e01a6a9011.png    ASSERT(m_cnn->m_Actived);

df37983f39daa189b8c814e01a6a9011.pngtryf70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        m_cnn->m_pConn->Execute(_bstr_t(SQL), NULL, adCmdText);

df37983f39daa189b8c814e01a6a9011.pngreturnTRUE;

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.pngcatch(_com_error&e)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnFALSE;

4a5daaec04350a363f186a4d2c5ed6ce.png    }0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

1)_RecordsetPtr Connection15::Execute ( _bstr_t CommandText, VARIANT * RecordsAffected, long Options )

CommandText:设置或返回包含提供者的命令。

RecordsAffected:可选,提供者向其返回操作所影响的记录书目。

Options:有adCmdText、adCmdTable、adCmdTableDirect和adCmdStoredProc等。5、借用表命令类——CBorrowCommand(继承了CDBCommand)

cbef093dcc044b2793832001e2365e43.png#include"DBCommand.h"cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngclassCBorrowCommand :publicCDBCommand  

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngpublic:

df37983f39daa189b8c814e01a6a9011.png//进行借用

df37983f39daa189b8c814e01a6a9011.png//返回值为借用号df37983f39daa189b8c814e01a6a9011.pngCString DoBorrow();

df37983f39daa189b8c814e01a6a9011.png    

df37983f39daa189b8c814e01a6a9011.png//各项借用信息df37983f39daa189b8c814e01a6a9011.pngCString m_MaterialNum;

df37983f39daa189b8c814e01a6a9011.png    CString m_Count;

df37983f39daa189b8c814e01a6a9011.png    CString m_Department;

df37983f39daa189b8c814e01a6a9011.png    CString m_Use;

df37983f39daa189b8c814e01a6a9011.png    CString m_State;

df37983f39daa189b8c814e01a6a9011.png    CString m_Jsr;

df37983f39daa189b8c814e01a6a9011.png    CString m_Lqr;

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    CBorrowCommand();

df37983f39daa189b8c814e01a6a9011.pngvirtual~CBorrowCommand();

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.pngprivate:

df37983f39daa189b8c814e01a6a9011.png//得到当前最大借用号df37983f39daa189b8c814e01a6a9011.pngintGetMaxBorrowID();

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png};

cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCBorrowCommand::CBorrowCommand()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCBorrowCommand::~CBorrowCommand()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngintCBorrowCommand::GetMaxBorrowID()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    _RecordsetPtr pRs("ADODB.RecordSet");

df37983f39daa189b8c814e01a6a9011.png    pRs->Open(_variant_t("Select Max(ID) as MAXID From tblBorrow"), _variant_t(m_cnn->m_pConn,true), adOpenStatic, adLockOptimistic, adCmdText);    

df37983f39daa189b8c814e01a6a9011.png    

df37983f39daa189b8c814e01a6a9011.pngintnResult;

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    _variant_t vValue=pRs->Fields->Item[_variant_t("MAXID")]->Value;

df37983f39daa189b8c814e01a6a9011.png    

df37983f39daa189b8c814e01a6a9011.png//如果不为空,返回最大值;否则返回0df37983f39daa189b8c814e01a6a9011.pngif(V_VT(&vValue)!=VT_NULL)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        nResult=atoi(_bstr_t(vValue));    

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.pngelsef70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        nResult=0;

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.png    

df37983f39daa189b8c814e01a6a9011.png    pRs->Close();

df37983f39daa189b8c814e01a6a9011.png    

df37983f39daa189b8c814e01a6a9011.pngreturnnResult;

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CBorrowCommand::DoBorrow()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png//得到当前时间df37983f39daa189b8c814e01a6a9011.pngCString strData;

df37983f39daa189b8c814e01a6a9011.png    CTime time=CTime::GetCurrentTime();

df37983f39daa189b8c814e01a6a9011.png    strData.Format("%d-%d-%d %d:%d:%d", 

df37983f39daa189b8c814e01a6a9011.png        time.GetYear(), 

df37983f39daa189b8c814e01a6a9011.png        time.GetMonth(), 

df37983f39daa189b8c814e01a6a9011.png        time.GetDay(),

df37983f39daa189b8c814e01a6a9011.png        time.GetHour(),

df37983f39daa189b8c814e01a6a9011.png        time.GetMinute(),

df37983f39daa189b8c814e01a6a9011.png        time.GetSecond());

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    CString strSQL;

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//得到新的借用IDdf37983f39daa189b8c814e01a6a9011.pngintnMaxID=GetMaxBorrowID();

df37983f39daa189b8c814e01a6a9011.png    nMaxID++;

df37983f39daa189b8c814e01a6a9011.png    CString strNewID;

df37983f39daa189b8c814e01a6a9011.png    strNewID.Format("%d", nMaxID);

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    strSQL="Insert into tblBorrow([ID], [MaterialNum], [Count], [Department], [Data], [Use], [State], [Jsr], [Lqr]) Values("df37983f39daa189b8c814e01a6a9011.png+strNewID+","df37983f39daa189b8c814e01a6a9011.png+m_MaterialNum+","df37983f39daa189b8c814e01a6a9011.png+m_Count+", \""df37983f39daa189b8c814e01a6a9011.png+m_Department+"\", #"df37983f39daa189b8c814e01a6a9011.png+strData+"#, \""

df37983f39daa189b8c814e01a6a9011.png+m_Use+"\", \""df37983f39daa189b8c814e01a6a9011.png+m_State+"\", \""df37983f39daa189b8c814e01a6a9011.png+m_Jsr+"\", \""df37983f39daa189b8c814e01a6a9011.png+m_Lqr+"\")";df37983f39daa189b8c814e01a6a9011.pngdf37983f39daa189b8c814e01a6a9011.pngif(ExecuteSQL(strSQL))

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnstrNewID;

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.pngelsef70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturn"";

4a5daaec04350a363f186a4d2c5ed6ce.png    }0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png 6、借用表访问类——CBorrowDataSet(继承了CDataSet)

cbef093dcc044b2793832001e2365e43.png#include"DataSet.h"cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngclassCBorrowDataSet :publicCDataSet  

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngpublic:

df37983f39daa189b8c814e01a6a9011.png    CString GetID();

df37983f39daa189b8c814e01a6a9011.png    CString GetMaterialNum();

df37983f39daa189b8c814e01a6a9011.pngvoidSetCount(CString Value);

df37983f39daa189b8c814e01a6a9011.png    CString GetCount();

df37983f39daa189b8c814e01a6a9011.png    CString GetUse();

df37983f39daa189b8c814e01a6a9011.png    CString GetLqr();

df37983f39daa189b8c814e01a6a9011.png    CString GetState();

df37983f39daa189b8c814e01a6a9011.png    CString GetData();

df37983f39daa189b8c814e01a6a9011.png    CString GetDepartment();

df37983f39daa189b8c814e01a6a9011.png    CString GetJsr();

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    BOOL LoadDataByID(CString ID);

df37983f39daa189b8c814e01a6a9011.png    BOOL LoadData();

df37983f39daa189b8c814e01a6a9011.png    CBorrowDataSet();

df37983f39daa189b8c814e01a6a9011.pngvirtual~CBorrowDataSet();

0ac3a2d53663ec01c7f7225264eeefae.png};

cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCBorrowDataSet::CBorrowDataSet()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCBorrowDataSet::~CBorrowDataSet()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngBOOL CBorrowDataSet::LoadData()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnOpen("Select * From tblBorrow");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngBOOL CBorrowDataSet::LoadDataByID(CString ID)

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnOpen("Select * From tblBorrow Where ID ="+ID);

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CBorrowDataSet::GetCount()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnGetAsString("Count");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCBorrowDataSet::SetCount(CString Value)

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    SetAsString("Count", Value);

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CBorrowDataSet::GetMaterialNum()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnGetAsString("MaterialNum");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CBorrowDataSet::GetID()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnGetAsString("ID");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CBorrowDataSet::GetJsr()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnGetAsString("Jsr");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CBorrowDataSet::GetDepartment()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnGetAsString("Department");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CBorrowDataSet::GetData()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnGetAsString("Data");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CBorrowDataSet::GetState()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnGetAsString("State");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CBorrowDataSet::GetLqr()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnGetAsString("Lqr");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CBorrowDataSet::GetUse()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnGetAsString("Use");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

7、用户信息表访问类——CUserInfoDataSet(继承了CDataSet)

cbef093dcc044b2793832001e2365e43.png#include"DataSet.h"cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngclassCUserInfoDataSet :publicCDataSet  

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngpublic:

df37983f39daa189b8c814e01a6a9011.png//得到密码df37983f39daa189b8c814e01a6a9011.pngCString GetPassword();

df37983f39daa189b8c814e01a6a9011.png//根据用户名加载数据df37983f39daa189b8c814e01a6a9011.pngBOOL LoadData(CString UserName);

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    CUserInfoDataSet();

df37983f39daa189b8c814e01a6a9011.pngvirtual~CUserInfoDataSet();

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png};

cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCUserInfoDataSet::CUserInfoDataSet()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCUserInfoDataSet::~CUserInfoDataSet()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngBOOL CUserInfoDataSet::LoadData(CString UserName)

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnOpen("Select * From UserInfo Where Username like \""+ UserName +"\"");

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCString CUserInfoDataSet::GetPassword()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnGetAsString("Password");

0ac3a2d53663ec01c7f7225264eeefae.png}

8、主程序的初始化

cbef093dcc044b2793832001e2365e43.pngclassCWhMgrApp :publicCWinApp

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngpublic:

df37983f39daa189b8c814e01a6a9011.png    CDBConnection*m_pConn;

df37983f39daa189b8c814e01a6a9011.png    CWhMgrApp();

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//Overrides

df37983f39daa189b8c814e01a6a9011.png//ClassWizard generated virtual function overrides

df37983f39daa189b8c814e01a6a9011.png//{{AFX_VIRTUAL(CWhMgrApp)df37983f39daa189b8c814e01a6a9011.pngpublic:

df37983f39daa189b8c814e01a6a9011.pngvirtualBOOL InitInstance();

df37983f39daa189b8c814e01a6a9011.pngvirtualintExitInstance();

df37983f39daa189b8c814e01a6a9011.png//}}AFX_VIRTUAL

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//Implementation

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//{{AFX_MSG(CWhMgrApp)

df37983f39daa189b8c814e01a6a9011.png//NOTE - the ClassWizard will add and remove member functions here.

df37983f39daa189b8c814e01a6a9011.png//DO NOT EDIT what you see in these blocks of generated code !

df37983f39daa189b8c814e01a6a9011.png//}}AFX_MSGdf37983f39daa189b8c814e01a6a9011.pngDECLARE_MESSAGE_MAP()

0ac3a2d53663ec01c7f7225264eeefae.png};

cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngCWhMgrApp::CWhMgrApp()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png//TODO: add construction code here,

df37983f39daa189b8c814e01a6a9011.png//Place all significant initialization in InitInstance0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png/**//

cbef093dcc044b2793832001e2365e43.png//The one and only CWhMgrApp objectcbef093dcc044b2793832001e2365e43.pngcbef093dcc044b2793832001e2365e43.pngCWhMgrApp theApp;

cbef093dcc044b2793832001e2365e43.png

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png/**//

cbef093dcc044b2793832001e2365e43.png//CWhMgrApp initializationcbef093dcc044b2793832001e2365e43.pngcbef093dcc044b2793832001e2365e43.pngBOOL CWhMgrApp::InitInstance()

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png//初始化Comdf37983f39daa189b8c814e01a6a9011.png::CoInitialize(NULL);

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//初始化数据库连接df37983f39daa189b8c814e01a6a9011.pngm_pConn=newCDBConnection;

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//得到当前程序所在的文件夹df37983f39daa189b8c814e01a6a9011.pngCString strCommandLine=::GetCommandLine();

df37983f39daa189b8c814e01a6a9011.pnginti;

df37983f39daa189b8c814e01a6a9011.pngintnLen=strCommandLine.GetLength();

df37983f39daa189b8c814e01a6a9011.pngfor(i=nLen-1; i>=0; i--)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        CHAR a=strCommandLine.GetAt(i);

df37983f39daa189b8c814e01a6a9011.pngif(a=='\\')

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngbreak;

4a5daaec04350a363f186a4d2c5ed6ce.png        }4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.png    strCommandLine.ReleaseBuffer(i+1);

df37983f39daa189b8c814e01a6a9011.png    strCommandLine.Delete(0,1);

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//打开数据库连接,数据库地址为:当前程序所在文件夹\WhMgrDB.mdbdf37983f39daa189b8c814e01a6a9011.pngif(!m_pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+strCommandLine+"WhMgrDB.mdb;Persist Security Info=False"))

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        ::AfxMessageBox("打开数据库失败!");

df37983f39daa189b8c814e01a6a9011.pngreturnFALSE;

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//用户登录df37983f39daa189b8c814e01a6a9011.pngBOOL bLogined;

df37983f39daa189b8c814e01a6a9011.png    CLoginDlg loginDlg;

df37983f39daa189b8c814e01a6a9011.png    CUserInfoDataSet dsUserInfo;

df37983f39daa189b8c814e01a6a9011.png    dsUserInfo.m_cnn=m_pConn;

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    bLogined=FALSE;

df37983f39daa189b8c814e01a6a9011.png//给3次登录机会df37983f39daa189b8c814e01a6a9011.pngfor(i=0; i<3; i++)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngif(loginDlg.DoModal()==IDOK)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png            dsUserInfo.LoadData(loginDlg.m_strUserName);

df37983f39daa189b8c814e01a6a9011.pngif(!dsUserInfo.IsEOF())

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngif(dsUserInfo.GetPassword()==loginDlg.m_strPassword)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png                    bLogined=TRUE;

df37983f39daa189b8c814e01a6a9011.pngbreak;

4a5daaec04350a363f186a4d2c5ed6ce.png                }4a5daaec04350a363f186a4d2c5ed6ce.png            }df37983f39daa189b8c814e01a6a9011.pngelsef70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png                ::AfxMessageBox("用户名或者密码不正确,请重试!");

4a5daaec04350a363f186a4d2c5ed6ce.png            }df37983f39daa189b8c814e01a6a9011.png            dsUserInfo.Close();

4a5daaec04350a363f186a4d2c5ed6ce.png        }df37983f39daa189b8c814e01a6a9011.pngelsef70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngbreak;

4a5daaec04350a363f186a4d2c5ed6ce.png        }4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.pngif(!bLogined)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngreturnFALSE;

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    AfxEnableControlContainer();

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//Standard initialization

df37983f39daa189b8c814e01a6a9011.png//If you are not using these features and wish to reduce the size

df37983f39daa189b8c814e01a6a9011.png//of your final executable, you should remove from the following

df37983f39daa189b8c814e01a6a9011.png//the specific initialization routines you do not need.df37983f39daa189b8c814e01a6a9011.pngdf37983f39daa189b8c814e01a6a9011.png#ifdef _AFXDLL

df37983f39daa189b8c814e01a6a9011.png    Enable3dControls();//Call this when using MFC in a shared DLLdf37983f39daa189b8c814e01a6a9011.png#elsedf37983f39daa189b8c814e01a6a9011.png    Enable3dControlsStatic();//Call this when linking to MFC staticallydf37983f39daa189b8c814e01a6a9011.png#endifdf37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png    CWhMgrDlg dlg;

df37983f39daa189b8c814e01a6a9011.png//给dlg的m_pConn成员变量赋值df37983f39daa189b8c814e01a6a9011.pngdlg.m_pConn=m_pConn;

df37983f39daa189b8c814e01a6a9011.png    m_pMainWnd=&dlg;

df37983f39daa189b8c814e01a6a9011.pngintnResponse=dlg.DoModal();

df37983f39daa189b8c814e01a6a9011.pngif(nResponse==IDOK)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png//TODO: Place code here to handle when the dialog is

df37983f39daa189b8c814e01a6a9011.png//dismissed with OK4a5daaec04350a363f186a4d2c5ed6ce.png}df37983f39daa189b8c814e01a6a9011.pngelseif(nResponse==IDCANCEL)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png//TODO: Place code here to handle when the dialog is

df37983f39daa189b8c814e01a6a9011.png//dismissed with Cancel4a5daaec04350a363f186a4d2c5ed6ce.png}df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//Since the dialog has been closed, return FALSE so that we exit the

df37983f39daa189b8c814e01a6a9011.png//application, rather than start the application's message pump.df37983f39daa189b8c814e01a6a9011.pngreturnFALSE;

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngintCWhMgrApp::ExitInstance() 

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    m_pConn->Close();

df37983f39daa189b8c814e01a6a9011.png    delete m_pConn;

df37983f39daa189b8c814e01a6a9011.png    ::CoUninitialize();

df37983f39daa189b8c814e01a6a9011.pngreturnCWinApp::ExitInstance();

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

1 )::CoInitialize(NULL);和::CoUninitialize();:ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。也可用

if(!AfxOleInit())//这就是初始化COM库{AfxMessageBox(“OLE初始化出错!”);return FALSE;}

2)得到当前程序所在的文件夹:

CString strCommandLine = ::GetCommandLine();

int i;

int nLen = strCommandLine.GetLength();

for(i = nLen - 1; i >= 0; i--)

{

CHAR a = strCommandLine.GetAt(i);

if(a == '\\')

{

break;

}

}

strCommandLine.ReleaseBuffer(i + 1);

strCommandLine.Delete(0, 1);

9、归还的实现

cbef093dcc044b2793832001e2365e43.pngclassCOutDialog :publicCDialog

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png//Constructiondf37983f39daa189b8c814e01a6a9011.pngpublic:

df37983f39daa189b8c814e01a6a9011.png    CDBConnection*m_pConn;

df37983f39daa189b8c814e01a6a9011.png    CString m_strMaterialNum;

df37983f39daa189b8c814e01a6a9011.png    COutDialog(CWnd*pParent=NULL);//standard constructor

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//Dialog Data

df37983f39daa189b8c814e01a6a9011.png//{{AFX_DATA(COutDialog)f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.pngenum918e8df969f9f8c8d002f25cda86cade.png{ IDD=IDD_OUT_DIALOG };

df37983f39daa189b8c814e01a6a9011.png    CStatic    m_Unit;

df37983f39daa189b8c814e01a6a9011.png    CComboBox    m_MaterialNum;

df37983f39daa189b8c814e01a6a9011.png    BOOL    m_bNeedReturn;

df37983f39daa189b8c814e01a6a9011.png    CString    m_strCount;

df37983f39daa189b8c814e01a6a9011.png    CString    m_strDepartment;

df37983f39daa189b8c814e01a6a9011.png    CString    m_strJsr;

df37983f39daa189b8c814e01a6a9011.png    CString    m_strLqr;

df37983f39daa189b8c814e01a6a9011.png    CString    m_strState;

df37983f39daa189b8c814e01a6a9011.png    CString    m_strUse;

df37983f39daa189b8c814e01a6a9011.png//}}AFX_DATA

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//Overrides

df37983f39daa189b8c814e01a6a9011.png//ClassWizard generated virtual function overrides

df37983f39daa189b8c814e01a6a9011.png//{{AFX_VIRTUAL(COutDialog)df37983f39daa189b8c814e01a6a9011.pngprotected:

df37983f39daa189b8c814e01a6a9011.pngvirtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDV support

df37983f39daa189b8c814e01a6a9011.png//}}AFX_VIRTUAL

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//Implementationdf37983f39daa189b8c814e01a6a9011.pngprotected:

df37983f39daa189b8c814e01a6a9011.png

df37983f39daa189b8c814e01a6a9011.png//Generated message map functions

df37983f39daa189b8c814e01a6a9011.png//{{AFX_MSG(COutDialog)df37983f39daa189b8c814e01a6a9011.pngvirtualvoidOnOK();

df37983f39daa189b8c814e01a6a9011.png    afx_msgvoidOnSelchangeComboMaterialnum();

df37983f39daa189b8c814e01a6a9011.png//}}AFX_MSGdf37983f39daa189b8c814e01a6a9011.pngDECLARE_MESSAGE_MAP()

0ac3a2d53663ec01c7f7225264eeefae.png};

cbef093dcc044b2793832001e2365e43.png

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.pngCOutDialog::COutDialog(CWnd*pParent/**//*=NULL*/)

cbef093dcc044b2793832001e2365e43.png    : CDialog(COutDialog::IDD, pParent)

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png//{{AFX_DATA_INIT(COutDialog)df37983f39daa189b8c814e01a6a9011.pngm_bNeedReturn=FALSE;

df37983f39daa189b8c814e01a6a9011.png    m_strCount=_T("");

df37983f39daa189b8c814e01a6a9011.png    m_strDepartment=_T("");

df37983f39daa189b8c814e01a6a9011.png    m_strJsr=_T("");

df37983f39daa189b8c814e01a6a9011.png    m_strLqr=_T("");

df37983f39daa189b8c814e01a6a9011.png    m_strState=_T("");

df37983f39daa189b8c814e01a6a9011.png    m_strUse=_T("");

df37983f39daa189b8c814e01a6a9011.png//}}AFX_DATA_INIT0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCOutDialog::DoDataExchange(CDataExchange*pDX)

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png    CDialog::DoDataExchange(pDX);

df37983f39daa189b8c814e01a6a9011.png//{{AFX_DATA_MAP(COutDialog)df37983f39daa189b8c814e01a6a9011.pngDDX_Control(pDX, IDC_STATIC_UNIT, m_Unit);

df37983f39daa189b8c814e01a6a9011.png    DDX_Control(pDX, IDC_COMBO_MATERIALNUM, m_MaterialNum);

df37983f39daa189b8c814e01a6a9011.png    DDX_Check(pDX, IDC_CHECK_NEEDRETURN, m_bNeedReturn);

df37983f39daa189b8c814e01a6a9011.png    DDX_Text(pDX, IDC_EDIT_COUNT, m_strCount);

df37983f39daa189b8c814e01a6a9011.png    DDX_Text(pDX, IDC_EDIT_DEPARTMENT, m_strDepartment);

df37983f39daa189b8c814e01a6a9011.png    DDX_Text(pDX, IDC_EDIT_JSR, m_strJsr);

df37983f39daa189b8c814e01a6a9011.png    DDX_Text(pDX, IDC_EDIT_LQR, m_strLqr);

df37983f39daa189b8c814e01a6a9011.png    DDX_Text(pDX, IDC_EDIT_STATE, m_strState);

df37983f39daa189b8c814e01a6a9011.png    DDX_Text(pDX, IDC_EDIT_USE, m_strUse);

df37983f39daa189b8c814e01a6a9011.png//}}AFX_DATA_MAPdf37983f39daa189b8c814e01a6a9011.pngCMaterialInfoDataSet dsMaterialInfo;

df37983f39daa189b8c814e01a6a9011.png    dsMaterialInfo.m_cnn=m_pConn;

df37983f39daa189b8c814e01a6a9011.pngif(!dsMaterialInfo.LoadData())

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        ::AfxMessageBox("加载物资信息失败!");

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.pngelsef70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngwhile(!dsMaterialInfo.IsEOF())

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png            m_MaterialNum.AddString(dsMaterialInfo.GetMaterialNum());

df37983f39daa189b8c814e01a6a9011.png            dsMaterialInfo.MoveNext();

4a5daaec04350a363f186a4d2c5ed6ce.png        }df37983f39daa189b8c814e01a6a9011.png        dsMaterialInfo.Close();

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.pngif(m_MaterialNum.GetCount()>0)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        m_MaterialNum.SetCurSel(0);

df37983f39daa189b8c814e01a6a9011.png        OnSelchangeComboMaterialnum();

4a5daaec04350a363f186a4d2c5ed6ce.png    }0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngBEGIN_MESSAGE_MAP(COutDialog, CDialog)

cbef093dcc044b2793832001e2365e43.png//{{AFX_MSG_MAP(COutDialog)cbef093dcc044b2793832001e2365e43.pngON_CBN_SELCHANGE(IDC_COMBO_MATERIALNUM, OnSelchangeComboMaterialnum)

cbef093dcc044b2793832001e2365e43.png//}}AFX_MSG_MAPcbef093dcc044b2793832001e2365e43.pngEND_MESSAGE_MAP()

cbef093dcc044b2793832001e2365e43.png

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png/**//

cbef093dcc044b2793832001e2365e43.png//COutDialog message handlerscbef093dcc044b2793832001e2365e43.pngcbef093dcc044b2793832001e2365e43.pngvoidCOutDialog::OnOK() 

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngintnIndex=m_MaterialNum.GetCurSel();

df37983f39daa189b8c814e01a6a9011.pngif(nIndex>=0)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        m_MaterialNum.GetLBText(nIndex, m_strMaterialNum);

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.pngelsef70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        m_strMaterialNum="0";

4a5daaec04350a363f186a4d2c5ed6ce.png    }df37983f39daa189b8c814e01a6a9011.png    CDialog::OnOK();

0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

cbef093dcc044b2793832001e2365e43.pngvoidCOutDialog::OnSelchangeComboMaterialnum() 

2f88ce130b654eb5dc6788e02dbcfc90.png

dbf989d57862681739b642d8621fe1f0.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.pngintnIndex=m_MaterialNum.GetCurSel();

df37983f39daa189b8c814e01a6a9011.pngif(nIndex>=0)

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png        CMaterialInfoDataSet dsMaterialInfo;

df37983f39daa189b8c814e01a6a9011.png        dsMaterialInfo.m_cnn=m_pConn;

df37983f39daa189b8c814e01a6a9011.png        CString strNum;

df37983f39daa189b8c814e01a6a9011.png        m_MaterialNum.GetLBText(nIndex, strNum);

df37983f39daa189b8c814e01a6a9011.png        dsMaterialInfo.LoadDataByNum(strNum);

df37983f39daa189b8c814e01a6a9011.pngif(!dsMaterialInfo.IsEOF())

f70a0fde2b51b7dd92a70e712e540cf6.png

edb48e6f68462ea23d9a824f01de40c5.png918e8df969f9f8c8d002f25cda86cade.png{

df37983f39daa189b8c814e01a6a9011.png            m_Unit.SetWindowText(dsMaterialInfo.GetUnit());

4a5daaec04350a363f186a4d2c5ed6ce.png        }df37983f39daa189b8c814e01a6a9011.png        dsMaterialInfo.Close();

4a5daaec04350a363f186a4d2c5ed6ce.png    }0ac3a2d53663ec01c7f7225264eeefae.png}cbef093dcc044b2793832001e2365e43.png

1)给部分程序不仅给出了关于借出表的实现,还参有出库的实现(关于出库的出库表命令类和出库表访问类这边没介绍,与借出表的差不多)。如有疑问可以联系我。

这次利用一个工程中的一部分代码对VC中ADO做了比较详细的介绍,如有错误希望给与指正!!!!!!!!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值