标签:|| imp 导入 src 4.0 输入 双击 unknown adl
效果图:
1.创建Access数据库文件
1.1 新建一个空数据库,本示例数据库文件名为“db1.mdb”
1.2 双击“使用设计器创建表”
1.3 输入所需的“字段名称”和“数据类型”,关闭并保存,本示例保存为“userID”
1.4 双击打开刚保存的表,输入账户、密码信息,关闭并保存
2 编写VC程序
2.1 创建一个基于对话框的VC程序
2.2 新建一个CAdo类
2.3 在Ado.h文件中导入windows自带的ado库,如下红色字体
#if !defined(AFX_ADO_H__8F1210D9_7884_49EC_90A6_0D9AD99368E8__INCLUDED_)
#define AFX_ADO_H__8F1210D9_7884_49EC_90A6_0D9AD99368E8__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","ADOEOF") rename("BOF", "ADOBOF")
2.4 为CAdo类增加变量和函数,如下
2.5 在Ado.cpp中实现为CAdo类增加的函数,如下
void CAdo::OnInitADO()
{
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection.CreateInstance(__uuidof(Recordset));
m_pConnection.CreateInstance("ADODB.Connection");
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("The database link down!");
}
}
void CAdo::ExitConnect()
{
if(m_pRecordset != NULL)
{
m_pRecordset->Close();
}
if(m_pConnection != NULL)
{
m_pConnection->Close();
}
}
void CAdo::Execute(_bstr_t strSQL)
{
try
{
if(m_pConnection == NULL)
{
OnInitADO();
}
m_pConnection->Execute(strSQL,NULL,adCmdText);
}
catch(_com_error e)
{
e.Description();
}
}
_RecordsetPtr& CAdo::GetRecordset(_bstr_t strSQL)
{
try
{
if(m_pConnection == NULL)
{
OnInitADO();
}
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(strSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
e.Description();
}
return m_pRecordset;
}
2.6 插入一个新的对话框资源
2.7 为登陆对话框新增一个CLOGIN类,选中ResourceView中的“IDD_LOGIN”->菜单栏“View->ClassWizard...”,在弹出的对话框中选择“Create a new Class”,单击“OK”,在弹出的对话框输入“CLOGIN”类名
2.8 为CLOGIN类增加控件变量
2.9 在CxApp类的InitInstance中函数中初始化COM环境
2.10 在CxDlg类的OnInitDialog函数中return语句前增加如下代码
2.11 为登陆对话框的“OK”按钮增加单击事件响应函数,并添加如下代码
void CLOGIN::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
CAdo m_ado;
m_ado.OnInitADO();
CString strSQL;
strSQL.Format("select * from userID where user=‘%s‘ and password=‘%s‘",m_userID,m_password);
m_ado.m_pRecordset = m_ado.GetRecordset((_bstr_t)strSQL);
if(m_userID.IsEmpty() || m_password.IsEmpty())
{
MessageBox("UserID or Password can‘t empty!");
m_userID = "";
m_password = "";
UpdateData(FALSE);
}
else
{
if(!m_ado.m_pRecordset->ADOEOF)
{
CDialog::OnOK();
}
else
{
MessageBox("The UserID or PassWord is not correct!");
m_userID = "";
m_password = "";
UpdateData(FALSE);
}
}
m_ado.ExitConnect();
}
2.12 将数据库文件放置到VC程序目录下
标签:|| imp 导入 src 4.0 输入 双击 unknown adl
原文地址:https://www.cnblogs.com/QSHL/p/9785636.html