无法从32位应用程序与Oracle 32位dsn连接 [英] Unable to connect from 32 bit application with Oracle 32 bit dsn

查看:57
本文介绍了无法从32位应用程序与Oracle 32位dsn连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的计算机配置为Windows 7 64位.

我在Syswow64中为Oracle客户端制作了DSN.我测试了连接是否成功创建.

我有一个应用程序,该应用程序安装在程序文件(x86)中,尝试登录时出现错误无法连接数据库".

此应用程序已成功使用Windows 7 32位计算机登录.

SysWow64 dsn用于为32位Orcale制作DSN,而程序文件(x86)用于32位应用程序.

那么,问题出在哪里呢?
帮帮我.
谢谢.

my Machine configuration is Windows 7 64 bit.

I made DSN for oracle client in Syswow64. I tested the connection is successfully created.

I''ve an application which I install in Program files(x86) and try to login it gives me error ''unable to connect database''.

This application is successfully login with windows 7 32 bit machine.

SysWow64 dsn is used for making DSN for 32bit Orcale and Program files(x86) is used for 32bit application.

so, where is the problem?
help me.
Thanks.

推荐答案

您确定所安装的应用程序未编译为64位应用程序.安装在程序文件(x86)"中的64位应用程序将不会作为32位应用程序运行.另外,您可以通过%windir%\ SysWoW64 \ odbcad32.exe设置32位DSN.
Are you sure the application you installed was not compiled as a 64-bit application. A 64-bit application installed in the "Program Files (x86)" will not run as a 32-bit one. Also, you set your 32-bit DSN via %windir%\SysWoW64\odbcad32.exe.


您好!

可能不是您的情况,但是我们遇到了类似的问题,即32位应用程序无法连接,经过大量的搜索和研究后,我们发现问题在于32位应用程序是从程序文件(x86)"的路径中带有括号,这在Oracle方面破坏了某些东西.您可以通过将软件安装在其他位置来轻松地测试它,以便其路径中没有任何特殊字符".我的解决方案是使用"dos"路径运行该软件(因此,代替"c:\ program files(x86)\ software name \ executable.exe",它类似于"c:\ progra〜2 \ softwa" 〜1 \ execut〜1.exe),在执行软件后,它将检查其自身的路径,如果在其中找到了任何括号,则它将路径转换为dos-path并使用此路径启动其自身的另一个实例ShellExecute或CreateProcess的路径并退出,这已经过测试并且运行良好.但是,最终,违反了我的意愿,可以这么说,我们决定更改安装程序,因此该安装程序不允许用户在"Progam files(x86)"下安装该软件.

祝你好运.
Hello!

This might or might not be your case, but we ran into a similar problem with a 32 bit application not being able to connect and after loads of googling and researching we found out that the problem was that the 32 bit app, being launched from "Program Files (x86)" has parentheses in its path and this breaks something on Oracle''s side. You can easily test this by installing the software somewhere else so its path does not have any "special characters" in it. My solution would have been to run the software with a "dos" path (so instead of "c:\program files (x86)\software name\executable.exe" it would be something like "c:\progra~2\softwa~1\execut~1.exe"), upon executing the software, it would check its own path, and if it found any parantheses in it, it would convert the path to a dos-path and start another instance of itself using this path with ShellExecute or CreateProcess and exit, this has been tested and worked well. However, in the end -against my will, so to say- we decided to change the installer so it does not allow the user to instal the software under "Progam files (x86)".

Good luck.


这篇关于无法从32位应用程序与Oracle 32位dsn连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆