动态创建 odbc

来源:互联网 发布:淘宝双十一销售额排名 编辑:程序博客网 时间:2024/06/07 11:39

int MakeSQLServerODBCDSN(LPCTSTR DBServer,LPCTSTR DBName,LPCTSTR DSN,LPCTSTR UID)
{
 BOOL  bInstallDriver=TRUE;
 CRegKey  regKey;
 
 LONG lRet=regKey.Open(HKEY_LOCAL_MACHINE,"Software//ODBC//ODBCINST.INI//SQL Server");
 if(lRet!=ERROR_SUCCESS)
 {
  bInstallDriver=FALSE;
 }
 else
 {
  char  szDirverPath[MAX_PATH]="";
  DWORD  dwCount=100;
  lRet=regKey.QueryValue(szDirverPath,"Driver",&dwCount);
  if((lRet!=ERROR_SUCCESS)||(dwCount<1))
  {
   DWORD dwErr=GetLastError();
   bInstallDriver=FALSE;
  }
  regKey.Close();
 }
 if(!bInstallDriver)
 {
  return -1;
 }
 CString  strKeyValueName="Software//ODBC//ODBC.INI//";
 strKeyValueName+=DSN;
 lRet=regKey.Create(HKEY_LOCAL_MACHINE,strKeyValueName);
 if(lRet!=ERROR_SUCCESS)
 {
  return -2;
 }
 regKey.SetValue(DBName,"Database");
 regKey.SetValue("SQLSrv32.dll","Driver");
 regKey.SetValue(DBServer,"Server");
 regKey.SetValue(UID,"LastUser");
 regKey.m_hKey=HKEY_LOCAL_MACHINE;
 regKey.SetKeyValue("Software//ODBC//ODBC.INI//ODBC Data Sources","SQL Server",DSN);
 regKey.Close();
 return 0;
}