win2003 64位系统下ODBC连接使用方法

环境

一般系统部署的服务器若是windows系统,就会采用64位win2003的结构。可是我们编写的程序绝大多数都是在x86下32位cpu架构中编译的,要正常移植到64位机器还真的是很麻烦,不仅要求应用程序是64位模式编译,还需要数据库也得是64位,iis64位,framework64位,好在相应的厂商都提供这些支持组件。不知道有人遇到过像我这样的问题么,应用中有需要增加一个Access数据库导入功能,这就需要连接ODBC的mdb驱动,可是Microsoft OLE DB Provider for Jet不支持64位系统,即使安装了office2007后,发现ODBC也没有任何变化,这下尴尬了。

分析

对64位系统结构进行分析。

c盘下有两个程序安装目录:Program Files和Program Files (x86);
windows文件夹下有两个目录:System32和SysWOW64;
在System32中的odbcad32.exe中没有其他驱动(这也是控制面板中ODBC直接启动的程序),但是在SysWOW64下的odbcad32.exe却存在mdb之类的所有驱动,这说明ODBC驱动在操作系统中是存在的,只是因为运行模式导致调用的odbc程序不同,造成找不到对应的驱动。了解到这一点,就能找到解决方案:切换64位运行模式为32位。

解决步骤

切换IIS运行模式为32位

开始→运行→cmd,运行脚本:

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

即可将IIS由64位切换为32位模式;若想恢复为64位模式,运行脚本:cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0。若脚本报错,切换路径为C:\Inetpub\AdminScripts,因为adsutil.vbs文件在该路径下。

Asp.net运行模式为32位

重新注册asp.net,开始→运行→cmd

运行脚本:%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.40607\aspnet_regiis.exe -i

若要注册64位,脚本为:%SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.40607\aspnet_regiis.exe -i

重启机器,IIS即可运行32位的程序,ODBC的连接也生效了。

Oracle64位切换为32位的方法

若以前系统运行在64位模式下使用的是64位的oracle,修改为32位模式后程序的数据库连接就失败,会报:“如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行……”这个错误。想到的方法自然是再安装32位的oracle客户端了。其实最简单的方法是下载ORALCE工具包Instant Client Package。将其解压到任意文件夹下,如D:\oracle\instantclient_11_2。

设置对应的环境变量:右击”我的电脑” – “属性” – “高级” – “环境变量” – “系统环境变量”:
1、新建NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK(注意中间有空格,这个如果不设,toad查询中文会是乱码)
2、新建或修改TNS_ADMIN=D:\oracle\instantclient_11_2
3、修改Path增加D:\oracle\instantclient_11_2,同时删除原来64位oracle的路径

其中第一条很重要,解决运行时报:Ora-12705: cannot access nls data files or invalid environment specified的错误。

新建文本文件,修改后缀名为reg,内容为:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1]
”NLS_LANG”=”SIMPLIFIED CHINESE_CHINA.ZHS16GBK”
”ORACLE_BUNDLE_NAME”=”Standard”
”ORACLE_GROUP_NAME”=”Oracle – OraClient10g_home1″
”ORACLE_HOME”=”D:\oracle\instantclient_11_2”
”ORACLE_HOME_KEY”=”SOFTWARE\\ORACLE\\KEY_OraClient10g_home1″
”ORACLE_HOME_NAME”=”OraClient10g_home1″

双击导入注册表。

将64位oracle的tns文件拷入D:\oracle\instantclient_11_2中,否则运行会报:ORA-12154: TNS:could not resolve the connect identifier specified错误。

完成以上修改后,重启电脑,运行网站程序,发现一切都如期望的一样工作!

祝大家好运!

(0)

相关推荐

  • win2003 64位系统下ODBC连接使用方法

    环境 一般系统部署的服务器若是windows系统,就会采用64位win2003的结构.可是我们编写的程序绝大多数都是在x86下32位cpu架构中编译的,要正常移植到64位机器还真的是很麻烦,不仅要求应用程序是64位模式编译,还需要数据库也得是64位,iis64位,framework64位,好在相应的厂商都提供这些支持组件.不知道有人遇到过像我这样的问题么,应用中有需要增加一个Access数据库导入功能,这就需要连接ODBC的mdb驱动,可是Microsoft OLE DB Provider fo

  • Win7 64位系统下PHP连接Oracle数据库

    下面讲下配置过程 一.下载oracle instantclient 下载地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html 下载 instantclient-basic-windows.x64-11.2.0.4.0 解压路径:D:\Program Files (x86)\Oracle64Client\instantclient_11_2 *注:客户端需要对应数据库版本. 二.配置系统环境变量 在PATH环境变量后加

  • win2003 64位系统IIS配置方法

    1.因用模版安装ASP.NET 2.0需先卸载64位的.net2.0 命令:C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe –u 2.把IIS切换为32Bit模式运行 命令:Cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1 3.重装安装32Bit .NET 2.0 命令:C:\WINDOWS

  • MySQL学习第四天 Windows 64位系统下使用MySQL

    一.启动/关闭MySQL         (1)启动MySQL服务:net start mysql  (2)停止MySQL服务: net stop mysql 二.登录/退出MySQL 首先我们先来看看一些重要的mysql参数,下面表中列出了一些重要的mysql参数: (1)查看版本号:输入mysql -V或mysql --version,注意这里的-V是大写.  (2)登录MySQL mysql后面要加参数才行.格式是:mysql  -u root (用户)  -p -P 端口号  -h  m

  • Win7 32/64位系统下安装SQL2005和SP3补丁安装教程[图文]

    先打开安装程序. 选择对应的系统版本,我是64位,所以选了X64. 然后选择安装--服务器组件.工具.联机丛书和示例 扫描你的系统,看看有没有问题.(下图) 输入你的信息 全选的说 功能选择.当然是全部装啦.按浏览更多设置,可以改变安装路径 实例名看你需要,无特殊需要的话,默认示例就行了. 这个使用内置系统账户即可,最下面的选项不重要.     这一步很重要,要选择混合模式!!! 这个默认就好了. 继续下一步. 我反正不勾给MS的了. 安装清单. 漫长的安装-- 完成图. 终于安装完了. 接下来

  • C#中实现在32位、64位系统下自动切换不同的SQLite dll文件

    直接上代码: using System; using System.Collections.Generic; using System.Windows.Forms; using System.Management; using System.IO; namespace SqliteAuto { static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static void Main

  • windows2008 64位系统下MySQL 5.7绿色版的安装教程

    前言 本文介绍的是MySQL 5.7绿色版的安装教程,分享出来供需要的朋友们参考学习,下面来看看详细的介绍: 安装环境为:windows2008 R2,X64 一.下载解压 官网下载地址:http://dev.mysql.com/downloads/mysql/ 选择跟环境对应的版本,然后解压即可.我这里解压到C:\work\mysql-5.7.17-winx64 二. 环境变量配置 把C:\work\mysql-5.7.17-winx64\bin添加到用户的环境变量path中 三. 添加配置文

  • VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法

    通常用VB 写的程序在32位系统上可以正常的运行,但到了64位系统中虽然可以运行但是无法修改OEM信息.经过查找原因可以发现,当我们在访问文件夹"SYSTEM32"的时候系统会自动转向到文件夹"SYSWOW64"下,当我们在访问某些注册表键值的时候,和文件转向类似,系统也会自动地把程序的访问转向到Wow6432Node下面. 先来谈谈文件系统的转向,查找了一些资料,并没有VB相关的资料,但是可以查到2个相关函数:Wow64DisableWow64FsRedirect

  • SQL SERVER 2008 64位系统无法导入ACCESS/EXCEL怎么办

    操作系统Windows Server 2008 X64,数据库SQL Server 2008 X64,Office 2007(好像只有32位),在存储过程执行OpenDatasource导入Access数据的时候遇到问题了,Oledb 4.0已经不被支持,以下是遇到的若干错误提示: 因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询. 无法创建链接服务器 "(null)" 的 OLE DB 访

  • win7 64位系统JDK安装配置环境变量教程

    由于重做系统,平时需要进行android类编译反编译工作,于是重新装了下JDK并把过程记录分享出来. 具体步骤 首先,下载JDK安装包,到官网http://www.oracle.com/technetwork/java/javase/downloads/index.html进行下载,点左边的Java Platform (JDK) 7u51进入下一个下载页面, 点左边的Accept License Agreement,接受许可协议,方能下载,由于我装的WIN7 64位系统,所以选对应的64位安装包

随机推荐