通过写入注册表添加ODBC数据源

原创 2004年05月22日 12:40:00

 

主要代码如下:

void RegisterDBSource(CString strDSName, CString strDBPath)
{
 HKEY hKey;
    DWORD nLabel; 

 CString strBaseKey = _T("SOFTWARE//ODBC//ODBC.INI");
 CString strMid = strBaseKey + _T("//ODBC Data Sources") ;

 if(strDSName.IsEmpty()) return;
 if(strDBPath.IsEmpty()) return;

 CString strDataSource = strBaseKey + _T("//") + strDSName;

 CString strMdb = _T("Microsoft Access Driver (*.mdb)");
 CString strDBDriver = _T("C://WINNT//System32//odbcjt32.dll");
 CString strFIL = _T("Ms Access;");
 CString strUID = _T("");

 

 RegCreateKeyEx(HKEY_CURRENT_USER,
              strMid,
        0,
     NULL,
     REG_OPTION_NON_VOLATILE,
     KEY_ALL_ACCESS,
     NULL,
     &hKey,
     &nLabel );//获取数据源键值句柄

 RegSetValueEx(hKey,
      strDSName,
      0,
      REG_SZ,
      (const unsigned char *)((LPCTSTR)strMdb),
      strlen((LPCTSTR)strMdb)+1);///设置数据源类型

 RegCreateKeyEx(HKEY_CURRENT_USER,
          strDataSource,
    0,
    NULL,
    REG_OPTION_NON_VOLATILE,
    KEY_ALL_ACCESS,
    NULL,
    &hKey,
    &nLabel );//创建数据源子键

 RegSetValueEx(hKey,
      _T("DBQ"),
      0,
      REG_SZ,
      (const unsigned char *)((LPCTSTR)strDBPath),
      strlen((LPCTSTR)strDBPath)+1);//数据库表的全路径

  RegSetValueEx(hKey,
            _T("Driver"),
      0,
      REG_SZ,
      (const unsigned char *)((LPCTSTR)strDBDriver),
      strlen((LPCTSTR)strDBDriver)+1);//ODBC驱动的全路径

 RegSetValueEx(hKey,
      _T("FIL"),
      0,
      REG_SZ,
      (const unsigned char *)((LPCTSTR)strFIL),
      strlen((LPCTSTR)strFIL)+1);//表的类型

 RegSetValueEx(hKey,
      _T("UID"),
      0,
      REG_SZ,
      (const unsigned char *)((LPCTSTR)strUID),
      strlen((LPCTSTR)strUID)+1);//必须项


 DWORD DriverId = (DWORD)25;
 RegSetValueEx(hKey,
     _T("DriverId"),
     0,
     REG_DWORD,
     (const BYTE *)(&DriverId),
     sizeof(DWORD));//必须项
 

 DWORD SafeTrans = (DWORD)0;
 RegSetValueEx(hKey,
      _T("SafeTransactions"),
      0,
      REG_DWORD,
      (const BYTE *)(&SafeTrans),
      sizeof(DWORD));//可选项
}

 

调试环境:WINDOWS2000 + VC6.0 + VSP5.0

注册表写入ODBC

DataBaseName:用户数据库名Path_DataBaseName:用户数据库路径--------------------------------------------------------...
  • A_snail
  • A_snail
  • 2006年12月10日 17:40
  • 1309

ODBC注册表脚本添加办法

以前一直觉得用鼠标点击添加ODBC数据源好麻烦呀,现在好了,有了这个脚本,方便多了。 特别鸣谢我的学生何东。Windows Registry Editor Version 5.00[HKEY_LOCA...
  • mouyong
  • mouyong
  • 2006年11月13日 11:52
  • 1996

添加和使用ODBC数据源

1.添加用户DSN         我使用的是VC++6.0连接SQL Server2000数据库。首先将SQL Server2000正确进行安装,并且安装它的SP3和SP4补丁。在安装SP3补丁的...
  • chenbinqq
  • chenbinqq
  • 2013年12月07日 16:14
  • 1786

WINDOWS 64位机ODBC的数据源DSN添加和移除问题

WINDOWS 64位机ODBC的数据源DSN添加和移除问题 WINDOWS 64位机器上ODBC的操作方法与32位机器是不一样的,如果直接从控制面板上-管理员工具-ODBC进去,就...
  • chinawangfei
  • chinawangfei
  • 2016年04月29日 10:24
  • 4236

添加odbc数据源时的一些问题和解决办法

pl/sql
  • Mr_Syh
  • Mr_Syh
  • 2017年07月26日 09:41
  • 474

WIN7下创建ODBC数据源到SQL Server的新数据源

北邮计算机数据库实验四需求 此方法是用JDBC-ODBC访问数据库(1)单击【开始】——》【控制面板】——》【ODBC】然后打开【ODBC数据源管理器】对话框(2)在【ODBC数据源管理器】对话框中...
  • u013007900
  • u013007900
  • 2016年04月16日 17:25
  • 7189

如何建立ODBC数据源

  建立ODBC数据源对于在使用ASP对数据库进行操作时是必要的,虽然他很简单,却是必须的一步。现在我把他记录下来,防止以后我把这部分东西忘掉,也和广大初学者一起分享。首先进入控制面版的性能和维护部分...
  • sghgcn
  • sghgcn
  • 2008年02月09日 18:01
  • 10227

如何使用 SqlConfigDataSource 创建 ODBC 数据源

创建ODBC数据源可以调用Windows系统子目录下的动态链接库Odbcint.dll中的函数SQLConfigDataSource()该函数可以动态地增加、修改和删除数据源。SQLConfigDat...
  • stonesl
  • stonesl
  • 2007年07月03日 17:35
  • 1449

Win7下如何创建odbc数据源

经典回顾:创建odbc数据源的方式
  • zhouboyu
  • zhouboyu
  • 2014年12月28日 19:12
  • 1366

Windows系统创建ODBC数据源

Windows下创建ODBC数据源
  • hao2244
  • hao2244
  • 2015年05月13日 09:29
  • 2323
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过写入注册表添加ODBC数据源
举报原因:
原因补充:

(最多只允许输入30个字)