我用VB做C/S程序,需要把ORACLE客户端打包,按照网上文章的说法做后不成功,网上文章的做法是:
1 把ORACLE客户端的一些目录拷贝
2 把注册表中的ORACLE项用installshield导到目标机上,修改几个键值
3 改tnsnames.ora中的设置
可我照做后,运行VB程序连接数据库,提示:provider cannot be found,it may not be properly installed.
请有过成功打包ORACLE客户端的高手们帮助我,谢谢。
1 把ORACLE客户端的一些目录拷贝
2 把注册表中的ORACLE项用installshield导到目标机上,修改几个键值
3 改tnsnames.ora中的设置
可我照做后,运行VB程序连接数据库,提示:provider cannot be found,it may not be properly installed.
请有过成功打包ORACLE客户端的高手们帮助我,谢谢。
你可以到youngcow.net上下载个免安装的oracle客户端试试。
1、复制oracle客户端目录到目标机相同的目录下
2、导出只安装了oracle客户端机子的注册表中的oracle键值,导入到目标机
3、根据用户oracle服务器安装的地址和实例,修改tnsnames.ora
对于vb,vc连接方式就报lz
的错,我怀疑是某些DLL,没有注册,但暂时找不到要注册那些东西
可以简单的搞定
Oracle\BIN目录以及下面的所有DLL文件,并且保证应用程序可以找到该目录,即该目录为系统目录或者PATH目录。
Oracle\OCOMMON\NLS\ADMIN目录以及其下所有文件
Oracle\OCOMMON\NLS\MESG目录以及其下所有文件
Oracle\NETWORK\tnsnames.ora
Oracle\ORACORE\Mesg以及其下所有MSB文件 添加如下注册表:
=====================================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"ORACLE_HOME"="E:\\oracle" //安装时确定的Oracle客户端安装主目录
"ORACLE_HOME_NAME"="server" //Oracle主目录名称
"NLS_LANG"="NA"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES]
"HOME_COUNTER"="1"//主目录个数
"DEFAULT_HOME"="Oracle815"//缺省的主目录名称
"LAST_HOME"="0"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]
"NAME"="Oracle815"//第一个主目录名称
"PATH"="E:\\oracle" //Oracle安装目录
"NLS_LANG"="NA"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
"ORACLE_HOME_NAME"="Oracle815"//主目录名称
"ORACLE_HOME"="E:\\oracle"//Oracle安装目录
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"//语言
"ORACLE_HOME_KEY"="Software\\ORACLE\\HOME0"//主目录信息存放位置
"ORACLE_BASE"="E:\\oracle" //Oracle安装目录
"TNS_ADMIN"="E:\\oracle\\NETWORK\\tnsnames.ora"//tnsnames.ora存放的位置,如果将该文件放在“E:\oracle\NETWORK\”目录下,则“TNS_ADMIN”赋值为“E:\\oracle\\NETWORK\\tnsnames.ora”注意:注册表项以你从安装客户端机器上导出的为准,根据上面的例子自己去掉多余的,
bin文件中的dll有一些可能是多余的,你可以自己尝试找出来。清单我就不罗嗦了。
如果需要使用oracle提供的ODBC驱动,还需要在bin目录下包含sqora32.dll、sqoras32.dll、sqresus.dll,此外在注册表HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers下增加"Oracle in OraHome"="Installed"。
如果需要使用oracle提供的oledb驱动,需要在bin目录下包含OraOLEDB.dll、OraOLEDB.tlb、OraOLEDBgmr.dll、OraOLEDBpus.dll、OraOLEDBrfc.dll、OraOLEDBrmc.dll、OraOLEDBrst.dll、OraOLEDBus.dll、OraOLEDButl.dll、OraOLEDBzhs.dll,并在注册表中增加下面内容(假设ORACLE_HOME=D:\oracle\oracle920):
[HKEY_CLASSES_ROOT\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}]
@="OraOLEDB.Oracle"
"OLEDB_SERVICES"=dword:ffffffff[HKEY_CLASSES_ROOT\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\ExtendedErrors]
@="Extended Error Lookup Service"[HKEY_CLASSES_ROOT\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\ExtendedErrors\{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}]
@="Oracle OLE DB Error Lookup"[HKEY_CLASSES_ROOT\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\InprocServer32]
@="D:\\oracle\\oracle920\\bin\\OraOLEDB.DLL"
"ThreadingModel"="Both"[HKEY_CLASSES_ROOT\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\OLE DB Provider]
@="Oracle Provider for OLE DB"[HKEY_CLASSES_ROOT\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\ProgID]
@="OraOLEDB.Oracle.1"[HKEY_CLASSES_ROOT\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\TypeLib]
@="{0BB9AFD1-51A1-11D2-BB7D-00C04FA30080}"[HKEY_CLASSES_ROOT\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\VersionIndependentProgID]
@="OraOLEDB.Oracle"[HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup]
@="Oracle OLE DB Error Lookup"[HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup\CLSID]
@="{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}"[HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup\CurVer]
@="OraOLEDB.ErrorLookup.1"[HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup.1]
@="Oracle OLE DB Error Lookup"[HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup.1\CLSID]
@="{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}"[HKEY_CLASSES_ROOT\OraOLEDB.Oracle]
@="Oracle Provider for OLE DB"[HKEY_CLASSES_ROOT\OraOLEDB.Oracle\CLSID]
@="{3F63C36E-51A3-11D2-BB7D-00C04FA30080}"[HKEY_CLASSES_ROOT\OraOLEDB.Oracle\CurVer]
@="OraOLEDB.Oracle.1"[HKEY_CLASSES_ROOT\OraOLEDB.Oracle.1]
@="Oracle Provider for OLE DB"[HKEY_CLASSES_ROOT\OraOLEDB.Oracle.1\CLSID]
@="{3F63C36E-51A3-11D2-BB7D-00C04FA30080}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}]
@="OraOLEDB.Oracle"
"OLEDB_SERVICES"=dword:ffffffff[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\ExtendedErrors]
@="Extended Error Lookup Service"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\ExtendedErrors\{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}]
@="Oracle OLE DB Error Lookup"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\InprocServer32]
@="D:\\oracle\\oracle920\\bin\\OraOLEDB.DLL"
"ThreadingModel"="Both"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\OLE DB Provider]
@="Oracle Provider for OLE DB"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\ProgID]
@="OraOLEDB.Oracle.1"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\TypeLib]
@="{0BB9AFD1-51A1-11D2-BB7D-00C04FA30080}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\VersionIndependentProgID]
@="OraOLEDB.Oracle"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.ErrorLookup]
@="Oracle OLE DB Error Lookup"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.ErrorLookup\CLSID]
@="{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.ErrorLookup\CurVer]
@="OraOLEDB.ErrorLookup.1"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.ErrorLookup.1]
@="Oracle OLE DB Error Lookup"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.ErrorLookup.1\CLSID]
@="{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.Oracle]
@="Oracle Provider for OLE DB"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.Oracle\CLSID]
@="{3F63C36E-51A3-11D2-BB7D-00C04FA30080}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.Oracle\CurVer]
@="OraOLEDB.Oracle.1"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.Oracle.1]
@="Oracle Provider for OLE DB"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.Oracle.1\CLSID]
@="{3F63C36E-51A3-11D2-BB7D-00C04FA30080}"[HKEY_CLASSES_ROOT\CLSID\{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}]
@="Oracle OLE DB Error Lookup"[HKEY_CLASSES_ROOT\CLSID\{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}\InprocServer32]
@="D:\\oracle\\oracle920\\bin\\OraOLEDB.DLL"
"ThreadingModel"="Both"[HKEY_CLASSES_ROOT\CLSID\{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}\ProdID]
@="OraOLEDB.ErrorLookup.1"[HKEY_CLASSES_ROOT\CLSID\{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}\VersionIndependentProgID]
@="OraOLEDB.ErrorLookup.1"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}]
@="Oracle OLE DB Error Lookup"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}\InprocServer32]
@="D:\\oracle\\oracle920\\bin\\OraOLEDB.DLL"
"ThreadingModel"="Both"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}\ProdID]
@="OraOLEDB.ErrorLookup.1"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3FC8E6E4-53FF-11D2-BB7D-00C04FA30080}\VersionIndependentProgID]
@="OraOLEDB.ErrorLookup.1"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OLEDB]
"CacheType"="Memory"
"ChunkSize"="100"
"DistribTX"="1"
"FetchSize"="100"
"OSAuthent"="0"
"PLSQLRSet"="0"
"PwdChgDlg"="1"
"SchRstLng"="10000"
"UserDefFn"="0"
"DisableRetClause"="1"
"VCharNull"="1"
"TraceCategory"="0"
"TraceFileName"="c:\\OraOLEDB.trc"
"TraceLevel"="0"
"TraceOption"="0"
不过不是安装包,使用起来还是有点麻烦.如果你想要安装包,可以到www.irisbay.com下载
可连接8.1.7以上的Oracle数据库
可安装于从未安装过Oracle的机器
可以支持delphi,VB或PB开发的应用程序
可以支持PL/SQL Developer安装内容:
0. 复制文件
1. 设置环境变量ORACLE_HOME, NLS_LANG, TNS_ADMIN
2. 将安装目录加入PATH
3. 生成默认的TNSNAMES.ORA安装制作: www.irisbay.com 2005.12.7内容来源 http://www.oracle.com/technology/software/tech/oci/instantclient/