当前位置: 代码迷 >> PB >> pb透过RegistrySet注册odbc数据源后,会在控制面板-管理工具-odbc里面出现吗
  详细解决方案

pb透过RegistrySet注册odbc数据源后,会在控制面板-管理工具-odbc里面出现吗

热度:412   发布时间:2016-04-29 06:44:23.0
pb通过RegistrySet注册odbc数据源后,会在控制面板-管理工具-odbc里面出现吗?
我通过RegistrySet注册成功,查找Regist,发现有注册的值。但在控制面板-管理工具-odbc,里面没有看到这一条数据源信息。不知道是否应该出现???

------解决方案--------------------
楼主可以完善以下几个节点
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources
------解决方案--------------------

//以access数据库、注册到系统DSN下为例:

RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources', 'DSN_Name', RegString!, 'Microsoft Access Driver (*.mdb)')

RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name', 'Driver',RegString!, 'Microsoft Access Driver (*.mdb)')
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name', 'DBQ',RegString!, '数据文件路径')
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name', 'Description', RegString!,'数据源描述')
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name', 'DriverId', ReguLong!,25)
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name', 'FIL',RegString!,'MS Access;')
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name', 'SafeTransactions', ReguLong!, 0)
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name', 'UID',RegString!, '')
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name\Engines', '',RegString!, '')
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name\Engines\Jet', 'ImplicitCommitSync', RegString!, 'yes') 
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name\Engines\Jet', 'MaxBufferSize', ReguLong!, 2048) 
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name\Engines\Jet', 'PageTimeout', ReguLong!, 5) 
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name\Engines\Jet', 'Threads', ReguLong!, 3) 
RegistrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_Name\Engines\Jet', 'UserCommitSync', RegString!, 'Yes') 


你可以手工在ODBC数据源管理器手工添加,然后去注册表导出来看生成的详细键值。
如果是64为操作系统,在ODBC数据源管理器里是看不到,因为程序里写到HKEY_LOCAL_MACHINE\SOFTWARE\ODBC,实际注册表对应到 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC,但是不影响正常使用。
  相关解决方案