此网站选择Access进入查看ADO
使用连接数据库的字符串,如使用到带用户名和密码连接Access数据库要用到以下条目:
红线标注的为使用连接数据库时设置的字符串,如果使用到用户Admin,密码Admin@123
1.首先设置特权用户
为保证本地存储的access2007数据库访问权限控制,通过access2007的用户安全级别设置向导来设置权限,分别建立对应的用户,在向导中会首先建立用户组信息文件,这里选择
1.1新建用户组配置文件 1.2选择要用到的表,选择全部 1.3选择要用到的权限用户组,
如:备份权限用户组,完全权限用户组,项目设计组等,根据需要选择,接下来进入用户设置,默认有个Administrator,设置其权限为只读用户组和管理员组,这样通过Adminisrator登录的用户就不能访问Access2007设置的数据库了。在建立Admin用户,用来在程序中操作数据库,选择全部权限。密码设置为Admin@123。生成完毕后会生成一个Security.mdw文件,用来存储用户组权限设置,用户名,密码信息,加载用户权限安全策略。
2.在C++程序中使用用户名和密码连接Access2007数据库。
CString strPath = AfxGetApp()->GetCurrentDirectory();
CString
strDbpath;
strDbPath.format("%s\\mydatabase.mdb",
strPath);
CString
strSecfilepath;
strSecfilepath.format("%s\\Security.mdw",
strPath);
以上代码获取程序执行路径,并将执行路径下的数据库文件和security,mdw组合成绝对路径。然后在连接数据库的字符串时用到。
CString strConn;
strConn.format("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=%s;
Jet OLEDB:System
Database=%s;
User
ID=Admin;Password=Admin@123",
strDbpath, strSecfilepath );
_Connectionptr
m_Conn;
HRESULT hRes =
m_Conn.CreateInstance("ADODB.CONNECTION");
m_Conn->ConnectionTimeOut = 3;//超时时间3秒,默认30秒
if(SUCCEEDED(hRes))
{
m_Conn->Open(strConn, "", "", adModeUnkown);
//adModeUnkown表示不知道访问权限,选择默认的访问权限。
}