一个创建数据源的方法
- /************************************************************************/
- /*
- 功能 : 写注册表动态创建SQL Server ODBC数据源(系统DSN)
- 参数 :
- (in) DBServer -- 数据库所在主机
- (in) DBName -- 数据库名称
- (in) DSN -- 数据源名称
- (in) UID -- 登陆用户
- 返回 :
- 没有安装SQL Server驱动程序 = -1
- 其他错误 = -2
- 成功 = 0
- */
- /************************************************************************/
- int WINAPI 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;
- }
- char NameC[100] = "" ;
- char DSNC[100] = "" ;
- strcpy(NameC,"Software//ODBC//ODBC.INI//") ;
- strcpy(DSNC,DSN) ;
- strcat(NameC,DSNC) ;
- LPCTSTR strKeyValueName = NameC ;
- 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;
- }