科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>软件频道>数据库-zhiding>用VC程序对SQL Server ODBC数据源的创建流程

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

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

来源:IT专家网 2010年08月16日

关键字:VC ODBC SQL Server

本文主要向你介绍的是用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: 成功

以下是代码片段:

int MakeSQLServerODBCDSN(LPCTSTR strDBServer,LPCTSTR strDBName,LPCTSTR strDSN,LPCTSTR strUID)

{

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+=strDSN;

  lRet=regKey.Create(HKEY_LOCAL_MACHINE,strKeyValueName);

  if(lRet!=ERROR_SUCCESS)

  {

  return -2;

  }

  regKey.SetValue(strDBName,"Database");

  regKey.SetValue("SQLSrv32.dll","Driver");

  regKey.SetValue(strDBServer,"Server");

  regKey.SetValue(strUID,"LastUser");

  regKey.m_hKey=HKEY_LOCAL_MACHINE;

  regKey.SetKeyValue("Software\\ODBC\\ODBC.INI\\ODBC Data Sources","SQL Server",strDSN);

  regKey.Close();

  return 0;

  }

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

推广二维码
邮件订阅

如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

重磅专题