当前位置: 代码迷 >> VB Dotnet >> win7 64位 运行vb.net程序连接oralce有关问题
  详细解决方案

win7 64位 运行vb.net程序连接oralce有关问题

热度:262   发布时间:2016-04-25 02:05:25.0
win7 64位 运行vb.net程序连接oralce问题!
vb.net 2003 运行程序能连接oracle’   但2005报错 信息“未找到安装程序,该程序可能未正确安装”
plsql都能连接oracle
系统:win7 64位系统
oralce 安装 64位
在目录下面安装instantclient_11_2 32位用于PLSQL连接
环境配置:
 1>."Path" , 把 "C:\app\product\instantclient_11_2;" 加入;
 2>."新建","TNS_ADMIN", 变量值设置为"C:\app\product\instantclient_11_2;
 3>."新建","NLS_LANG", 变量值设置为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK

vs.net 程序连接oracle 
Try
            If M_CN1.State = 0 Then
                M_CN1.ConnectionString = "Provider=MSDAORA.1;User ID=user/password;Data Source=server;Persist Security Info=True"
                M_CN1.CursorLocation = ADODB.CursorLocationEnum.adUseClient
                M_CN1.CommandTimeout = 10
                M_CN1.ConnectionTimeout = 1
                M_CN1.Open()
                GF_DbConnect = True
            End If
        Catch ey As Exception
            Call Gp_MsgBoxDisplay("服务器链接有错误...!!!", "W", "DataBase Connection")
            If Err.Number = 438 Or Err.Number = -2147467259 Then
                M_CN1.Close()
            End If
            GF_DbConnect = False
        End Try
不知道为什么,搞了三天了也没弄好!求明白的指导一下,谢谢
------解决思路----------------------
 M_CN1 ??这是啥
百度这个 ODAC1120320Xcopy_x64 或 ODAC1120320Xcopy_32bit 这两个,或到oracle官网下载也有,里面好像有DEMO
引用这两个,你所在的机子就不在装oracle客户端,就能直接打开oracle了。
------解决思路----------------------
2005工程的要指定为32位程序;否则按64位运行,而你的instantclient是32位的当然会出错了。
------解决思路----------------------
32位程序调用32位的instantclient当然没错,但是64位程序是不能调用32位instantclient的。

我这里只有VS2008,也许进入方式稍有不同:
在工程上右键,打开属性。
然后在编译下面,点高级编译器设置。
打开的对话框中有个目标CPU的下拉框,默认是AnyCPU(这样编译出来的程序在64位系统下就按64位运行),要改为x86。
  相关解决方案