私はMDBデータベースに接続するために、Microsoft JetのドライバでCDatabase
を使用しています。
私はこのような正しいドライバを見つけます。あなたが使用したいドライバを知っている場合は、単にそれを使用、
// We now iterate the JET drivers list and locate a valid MDB driver
CString CPTSDatabase::GetJETDriver(bool bAccDbMode)
{
CString strDriver;
CString strName, strNameLower, strValue;
CString strDefaultDriver = _T("Microsoft Access Driver (*.mdb)");
CString strDBType = _T("(*.mdb)");
CStringArray aryStrDrivers;
TCHAR szBuf[2001];
WORD cbBufMax = 2000;
WORD cbBufOut;
TCHAR *pszBuf = szBuf;
if (SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
{
#ifdef _WIN64
strDefaultDriver = _T("Microsoft Access Driver (*.mdb, *.accdb)");
strDBType = _T("(*.mdb, *.accdb)");
#else
if (bAccDbMode)
{
strDefaultDriver = _T("Microsoft Access Driver (*.mdb, *.accdb)");
strDBType = _T("(*.mdb, *.accdb)");
}
#endif
do
{
strName = CString(pszBuf);
strNameLower = strName;
strNameLower.MakeLower();
if (strNameLower.Find(strDBType) != -1)
{
aryStrDrivers.Add(strName);
if (strName.CollateNoCase(strDefaultDriver) == 0)
{
strDriver = strName;
break;
}
}
pszBuf = _tcschr(pszBuf, _T('\0')) + 1;
} while (pszBuf[1] != _T('\0'));
if (strDriver.IsEmpty() && aryStrDrivers.GetSize() > 0)
{
// Try and use the first MDB driver we found
strDriver = aryStrDrivers.GetAt(0);
}
}
// Make a note of the driver
AfxGetApp()->WriteProfileString(_T("Options"), _T("JET Connection Driver"), strDriver);
return strDriver;
}
を。
マイコンピュータは、Windows 10 64ビットです....
// Opens the database (gets closed in destructor)
void CPTSDatabase::OpenDatabase(bool bAccDbMode, CString strPassword)
{
CString strDBConnectString;
CString strDriver;
if (m_dbDatabase.IsOpen())
return;
if (DatabaseExist(m_strDatabasePath))
{
// AJT v10.5.0 Take into account the DB mode
strDriver = GetJETDriver(bAccDbMode);
// Take into account the DB password (decrypted!)
strDBConnectString.Format(_T("Driver={%s};DBQ=%s;Pwd=%s"),
strDriver, m_strDatabasePath,
CPTSTools::DecryptDatabasePassword(strPassword));
m_dbDatabase.OpenEx(strDBConnectString, CDatabase::noOdbcDialog);
}
}
しかし警告の言葉....そして私は例として、自分のコンピュータを使用して...:次に、あなたのデータベースを開きます
それはあります
- ビットACCDBマイクロソフトDATAB ASEドライバ
- ビットMDBマイクロソフトのデータベースドライバ
なし64ビットMDBドライバはありません。したがって、MDBデータベースで作業したい場合は、アプリケーションを32ビットモードで構築するようにしてください。
Visual StudioからこのDBに正常に接続できますか? ( 'Tools - > Connect to Database')もしそうなら、ドライバがこの(古い)形式で利用可能であることを示すよい表示になります。 –
絶対にありません。私のコンピュータにはAccessがインストールされていますが、私のシステムにはこれらの古いMDBファイルを読むことのできるソフトウェアはありません。 –
よろしく!アクセスできない? –