📄 record.h
字号:
// Record.H : Declaration of the CRecord class
#ifndef __RECORD_H_
#define __RECORD_H_
class CRecordAccessor
{
public:
TCHAR m_column0[1024]; // 有关雇员背景的一般信息。 TCHAR m_column1[16]; // 有关雇员背景的一般信息。 DATE m_column2; // 有关雇员背景的一般信息。 TCHAR m_column3[16]; // 州或省。 TCHAR m_column4[61]; // 街道或邮政信箱。 TCHAR m_column5[5]; // 内部电话分机号码。 DATE m_column6; // 内部电话分机号码。 LONG m_ID; // 自动赋予新雇员的编号。 TCHAR m_column7[16]; // 自动赋予新雇员的编号。 TCHAR m_column8[25]; // 电话号码包括国家代号或区号。 TCHAR m_column9[11]; // 电话号码包括国家代号或区号。 LONG m_column10; // 雇员的上级。 TCHAR m_column11[31]; // 雇员的头衔。 TCHAR m_column12[21]; // 雇员的头衔。 TCHAR m_column13[11]; // 雇员的头衔。 ISequentialStream* m_column14; // 雇员照片。 TCHAR m_column15[26]; // 礼貌的称呼。
BEGIN_COLUMN_MAP(CRecordAccessor)
COLUMN_ENTRY(1, m_ID) COLUMN_ENTRY(2, m_column0) COLUMN_ENTRY(3, m_column1) COLUMN_ENTRY(4, m_column2) COLUMN_ENTRY(5, m_column3) COLUMN_ENTRY_TYPE(6, DBTYPE_DATE, m_column4) COLUMN_ENTRY_TYPE(7, DBTYPE_DATE, m_column5) COLUMN_ENTRY(8, m_column6) COLUMN_ENTRY(9, m_column7) COLUMN_ENTRY(10, m_column8) COLUMN_ENTRY(11, m_column9) COLUMN_ENTRY(12, m_column10) COLUMN_ENTRY(13, m_column11) COLUMN_ENTRY(14, m_column12) BLOB_ENTRY(15, IID_ISequentialStream, STGM_READ, m_column13) COLUMN_ENTRY(16, m_column14) COLUMN_ENTRY(17, m_column15)END_COLUMN_MAP()
DEFINE_COMMAND(CRecordAccessor, _T(" \ SELECT \ 雇员ID, \ 姓氏, \ 名字, \ 头衔, \ 尊称, \ 出生日期, \ 雇用日期, \ 地址, \ 城市, \ 地区, \ 邮政编码, \ 国家, \ 家庭电话, \ 分机, \ 照片, \ 备注, \ 上级 \ FROM 雇员"))
// You may wish to call this function if you are inserting a record and wish to
// initialize all the fields, if you are not going to explicitly set all of them.
void ClearRecord()
{
memset(this, 0, sizeof(*this));
}
};
class CRecord : public CCommand<CAccessor<CRecordAccessor> >
{
public:
HRESULT Open()
{
HRESULT hr;
hr = OpenDataSource();
if (FAILED(hr))
return hr;
return OpenRowset();
}
HRESULT OpenDataSource()
{
HRESULT hr;
CDataSource db;
CDBPropSet dbinit(DBPROPSET_DBINIT);
dbinit.AddProperty(DBPROP_AUTH_CACHE_AUTHINFO, true); dbinit.AddProperty(DBPROP_AUTH_ENCRYPT_PASSWORD, false); dbinit.AddProperty(DBPROP_AUTH_MASK_PASSWORD, false); dbinit.AddProperty(DBPROP_AUTH_PASSWORD, OLESTR("")); dbinit.AddProperty(DBPROP_AUTH_USERID, OLESTR("Admin")); dbinit.AddProperty(DBPROP_INIT_DATASOURCE, OLESTR("F:\\DB_Project\\Databases\\Employees.mdb")); dbinit.AddProperty(DBPROP_INIT_MODE, (long)16); dbinit.AddProperty(DBPROP_INIT_PROMPT, (short)4); dbinit.AddProperty(DBPROP_INIT_PROVIDERSTRING, OLESTR("")); dbinit.AddProperty(DBPROP_INIT_LCID, (long)1033); dbinit.AddProperty(DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, false); hr = db.Open(_T("Microsoft.Jet.OLEDB.4.0"), &dbinit);
if (FAILED(hr))
return hr;
return m_session.Open(db);
}
HRESULT OpenRowset()
{
return CCommand<CAccessor<CRecordAccessor> >::Open(m_session);
}
CSession m_session;
};
#endif // __RECORD_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -