用VC程序对SQL Server ODBC数据源的创建流程

本文主要向你介绍的是用VC程序来对SQL Server ODBC数据源的创建,在发布与数据库相关的软件之时的实际操作中,假如你的程序是用ODBC方式对数据库进行访问,我们就需要在软件安装时创建ODBC数据源。

ODBC数据源的一些信息都存放在注册表中。

HKEY_LOCAL_MECHINE\Software\SQL Server ODBC\ODBCINST.INI

从此键下可得知系统是否已经安装SQL Server驱动程序

HKEY_LOCAL_MECHINE\Software\ODBC\ODBC.INI

从此键下可得知系统已经建立的数据源.

实现函数如下:

Function: Make SQL Server ODBCDSN

Purpose: 配置SQL Server数据源

Parameters:

[in]

strDBServer: 数据库所在主机

strDBName: 数据库名称

strDSN: 数据源名称

strUID: 登陆用户

Return Value:

-1: 没有安装SQL Server驱动程序

-2: 其他错误

0: 成功

 
 
 
  1. int MakeSQLServerODBCDSN(LPCTSTR strDBServer,LPCTSTR strDBName,LPCTSTR strDSN,LPCTSTR strUID)  
  2. {  
  3. BOOL bInstallDriver=TRUE;  
  4. CRegKey regKey;  
  5. LONG lRet=regKey.Open(HKEY_LOCAL_MACHINE,"Software\\ODBC\\ODBCINST.INI\\SQL Server");  
  6. if(lRet!=ERROR_SUCCESS)  
  7. {  
  8. bInstallDriver=FALSE;  
  9. }  
  10. else  
  11. {  
  12. char szDirverPath[MAX_PATH]="";  
  13. DWORD dwCount=100;  
  14. lRet=regKey.QueryValue(szDirverPath,"Driver",&dwCount);  
  15. if((lRet!=ERROR_SUCCESS)||(dwCount<1))  
  16. {  
  17. DWORD dwErr=GetLastError();  
  18. bInstallDriver=FALSE;  
  19. }  
  20. regKey.Close();  
  21. }  
  22. if(!bInstallDriver)  
  23. {  
  24. return -1;  
  25. }  
  26. CString strKeyValueName="Software\\ODBC\\ODBC.INI\\";  
  27. strKeyValueName+=strDSN;  
  28. lRet=regKey.Create(HKEY_LOCAL_MACHINE,strKeyValueName);  
  29. if(lRet!=ERROR_SUCCESS)  
  30. {  
  31. return -2;  
  32. }  
  33. regKey.SetValue(strDBName,"Database");  
  34. regKey.SetValue("SQLSrv32.dll","Driver");  
  35. regKey.SetValue(strDBServer,"Server");  
  36. regKey.SetValue(strUID,"LastUser");  
  37. regKey.m_hKey=HKEY_LOCAL_MACHINE;  
  38. regKey.SetKeyValue("Software\\ODBC\\ODBC.INI\\ODBC Data Sources","SQL Server",strDSN);  
  39. regKey.Close();  
  40. return 0;  
  41. }  

以上的相关内容就是对用VC程序来对SQL Server ODBC数据源的创建的介绍,望你能有所收获。

【编辑推荐】

  1. 对SQL Server字符串数据类型的具体描述
  2. SQL Server存储过程的命名标准如何进行?
  3. 浅谈SQL Server临时表与SQL Server表变量
  4. SQL Server临时表的使用方案大全
  5. 对SQL Server 数据库易混淆的数据类型的描述
THE END