数据源自动注册
BOOL CAddressDlg::LoadDbSource(CString strSourceName,
CString strSourceDb,
CString strDescription
)
{
HKEY hKey,hxKey;
DWORD lDisp;
//注册数据源名
CString strSubKey="SOFTWARE//ODBC//ODBC.INI//"+strSourceName;
CString strSubKeyEx="SOFTWARE//ODBC//ODBC.INI//ODBC Data Sources//";
RegCreateKeyEx(HKEY_CURRENT_USER,
strSubKey,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hKey,
&lDisp);
//注册ODBC驱动程序
CString value1("C://WINDOWS//System32//odbcjt32.dll");
RegSetValueEx(hKey,"Driver",0,REG_SZ,(const unsigned char*)((LPCTSTR)value1),strlen((LPCTSTR)value1)+1);
//注册数据库文件
CString value2=strSourceDb;
RegSetValueEx(hKey,"DBQ",0,REG_SZ,(const unsigned char*)((LPCTSTR)value2),strlen((LPCTSTR)value2)+1);
DWORD value3=(DWORD)25;
RegSetValueEx(hKey,"DriverID",0,REG_DWORD,(const BYTE*)&value3,sizeof(DWORD));
CString value4=("MS Access;");
RegSetValueEx(hKey,"FIL",0,REG_SZ,(const unsigned char*)((LPCTSTR)value4),strlen((LPCTSTR)value4)+1);
DWORD value5=(DWORD)0;
RegSetValueEx(hKey,"SafeTransactions",0,REG_DWORD,(const BYTE*)&value5,sizeof(DWORD));
CString value6("");
RegSetValueEx(hKey,"UID",0,REG_SZ,(const unsigned char*)((LPCTSTR)value6),strlen((LPCTSTR)value6)+1);
RegCreateKeyEx(HKEY_CURRENT_USER,
strSubKeyEx,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hxKey,
&lDisp);
CString value7=("Microsoft Access Driver (*.mdb)");
RegSetValueEx(hxKey,"dfkb",0,REG_SZ,(const unsigned char*)((LPCTSTR)value7),strlen((LPCTSTR)value7)+1);
return TRUE;
}
//
BOOL CAddressDlg::LoadDbSource(CString strSourceName,
CString strSourceDb,
CString strDescription
)
{
HKEY hKey,hxKey;
DWORD lDisp;
//注册数据源名
CString strSubKey="SOFTWARE//ODBC//ODBC.INI//"+strSourceName;
CString strSubKeyEx="SOFTWARE//ODBC//ODBC.INI//ODBC Data Sources//";
RegCreateKeyEx(HKEY_CURRENT_USER,
strSubKey,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hKey,
&lDisp);
//注册ODBC驱动程序
CString value1("C://WINDOWS//System32//odbcjt32.dll");
RegSetValueEx(hKey,"Driver",0,REG_SZ,(const unsigned char*)((LPCTSTR)value1),strlen((LPCTSTR)value1)+1);
//注册数据库文件
CString value2=strSourceDb;
RegSetValueEx(hKey,"DBQ",0,REG_SZ,(const unsigned char*)((LPCTSTR)value2),strlen((LPCTSTR)value2)+1);
DWORD value3=(DWORD)25;
RegSetValueEx(hKey,"DriverID",0,REG_DWORD,(const BYTE*)&value3,sizeof(DWORD));
CString value4=("MS Access;");
RegSetValueEx(hKey,"FIL",0,REG_SZ,(const unsigned char*)((LPCTSTR)value4),strlen((LPCTSTR)value4)+1);
DWORD value5=(DWORD)0;
RegSetValueEx(hKey,"SafeTransactions",0,REG_DWORD,(const BYTE*)&value5,sizeof(DWORD));
CString value6("");
RegSetValueEx(hKey,"UID",0,REG_SZ,(const unsigned char*)((LPCTSTR)value6),strlen((LPCTSTR)value6)+1);
RegCreateKeyEx(HKEY_CURRENT_USER,
strSubKeyEx,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hxKey,
&lDisp);
CString value7=("Microsoft Access Driver (*.mdb)");
RegSetValueEx(hxKey,"dfkb",0,REG_SZ,(const unsigned char*)((LPCTSTR)value7),strlen((LPCTSTR)value7)+1);
return TRUE;
}
//