人事管理系统

发表于:2007-07-01来源:作者:点击数: 标签:
使用前,先在查询分析器中执行 SQL 文件。然后在控制面板中建立用户DSN,数据源名为"eee",并更改默认数据为"Renshi". 具体内容请参考源代码(有详细注释) 数据库 连接和执行SQL语句的类: #if !defined AFX_CADO_H__ #define AFX_CADO_H__ #pragma once #impo


 

使用前,先在查询分析器中执行SQL文件。然后在控制面板中建立用户DSN,数据源名为"eee",并更改默认数据为"Renshi". 具体内容请参考源代码(有详细注释)

 

 



数据库连接和执行SQL语句的类:

 #if !defined AFX_CADO_H__
#define AFX_CADO_H__

#pragma once

#import "C:\Program Files\Common Files\System\ado\msado15.dll"
        no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")


/*********************************************************************/
class CADO 
{
private:
_ConnectionPtr m_pConn;
_RecordsetPtr  m_pRS;

public:
CADO();
virtual ~CADO();

public:
_RecordsetPtr& GetRS(CString strSQL); // 执行  返回记录集的SQL语句
BOOL Execute(CString strSQL); // 执行不返回记录集的SQL语句

};
/*********************************************************************/


#endif

 
 /*********************************************************************/ #include "stdafx.h" #include "ADO.h" /*********************************************************************/ #if !defined CATCH_ERROR #define CATCH_ERROR \ { \ CString strComError;\ strComError.Format("错误编号: %08lx\n错误信息: %s\ \n错误源: %s\n错误描述: %s",\ e.Error(),\ e.ErrorMessage(),\ (LPCSTR) e.Source(),\ (LPCSTR) e.Description());\ ::MessageBox(NULL,strComError,"错误",MB_ICONEXCLAMATION);\ } #endif /*********************************************************************/ CADO::CADO() { ::CoInitialize(NULL); try { m_pConn.CreateInstance("ADODB.Connection"); m_pConn->ConnectionTimeout=5; m_pConn->Open("DSN=eee","","",0); } catch(_com_error e) { CATCH_ERROR; } } CADO::~CADO() { if (m_pRS != NULL) m_pRS->Close(); m_pConn->Close(); ::CoUninitialize(); } _RecordsetPtr& CADO::GetRS(CString strSQL) { try { m_pRS.CreateInstance(__uuidof(Recordset)); m_pRS->Open((_bstr_t)strSQL,m_pConn.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText); // 取得表中的记录 } catch(_com_error e) { CATCH_ERROR } return m_pRS; } BOOL CADO::Execute(CString strSQL) { try { m_pConn->Execute((_bstr_t)strSQL,NULL,adCmdText); return true; } catch(_com_error e) { CATCH_ERROR return false; } }

 

 


原文转自:http://www.ltesting.net