怎样随机生成名字不重复的ACCSEE数据库?
我现在有个应用需要用ACCESS数据库做中间临时数据库,这就需要在指定的目录生成随机名字不重复
数据库,请问这怎么做。最好给出代码,改一下指定目录就ok的。
问题点数:20、回复次数:3Top
1 楼opentuxedo(借哥哥的号来试试)回复于 2005-06-15 11:38:40 得分 5
用当前的时间做名字。(最好是产生一个GUID)Top
2 楼boomshine(boomshine)回复于 2005-06-15 11:46:57 得分 0
老大,这个我也知道,我主要是不知道要用到哪几个函数,我还有另
一种方法,用随机生成器,但具体用到哪几个函数,不清楚。
我现在能做且清楚的是:
1、获取当前路径。
2、随机生成一个不可能重复的字符串。
3、链接路径名与2中生成的字符串以及ACCESS的后缀名.mdb
4、创建名字为3中字符串的数据库。
谁谁就我这四个步骤,每个步骤给个对应的函数就行Top
3 楼jun_01(无名小卒)回复于 2005-06-15 12:14:37 得分 15
用时间就行了嘛。
1,//获取当前模块文件路径,包含最后一个“\”
void GetPath(LPTSTR lpFile){
GetModuleFileName(g_hInst, lpFile, MAX_PATH);
TCHAR *pChr = _tcsrchr(lpFile, _T('\\'));
if(pChr != NULL)
pChr ++;
*pChr = 0;
}
调用方法:
TCHAR szPath[MAX_PATH];
GetPath(szPath);
2,
COleDateTime dt;
CString strTime = dt.format(_T("%Y%m%d%H%M%S.mdb"));
LPCTSTR s = strTime;
3,
_tcscat(szPath,s)
4,
// 创建一个空数据库文件
CString strConn;
strConn = _T("Provider=Microsoft.JET.OLEDB.4.0;Data source =") + szPath;
try{
ADOX::_CatalogPtr m_pCatalog = NULL;
HRESULT hr = m_pCatalog.CreateInstance(__uuidof (ADOX::Catalog));
if(FAILED(hr)){
AfxMessageBox(_T("建立数据库失败!"));
return false;
}
else{
m_pCatalog->Create(_bstr_t(strConn));
}
}
catch(_com_error &e){
AfxMessageBox((LPCTSTR)e.Description());
return false;
}
catch(...){
AfxMessageBox(_T("创建数据库时发生未知错误."));
return false;
}
return true;
Top




