Delphi开发Oracle程序如何发布的问题?(200)

B

bbscom

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi7做一个实验,用DBExpress连接Oracle11g数据库,做一个简单的查询。因为Delphi和Oracle11g以及程序是在同一台电脑上,运行一切正常。当在其它的电脑上怎么也连接不到数据库。请问大家在不安装Oracle11g客户端的情况下,怎么设置或发布相关的DLL?怎么让这个程序在其它的电脑上正常运行。如分不够还可再加:300EMail:Delphi2005@163.com QQ:165441494
 
好象不行吧,一般都用第三方控件来连接oracle。
 
1 在Oracle 盘中手工安装Oracle Interface 接口.2 把相应的oracle文件复制到某目录3 修改相应注册表和程序环境变量Path4 代码设置服务器名和密码.
 
请chinasky132,具体一点。好像设置非常多,可以通过QQ也行。谢谢!!!
 
1 用Oracle 盘手工安装一个好的环境,在安装选项时选择Windows Interface (印象中是这两个字),安装完成后,把安装路径下的文件打包到你的程序中.这样在发布你的程序时,需要以把这些Oracle文件一起复制到某个路径下.2 修改注册表Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE]"inst_loc"="C://Program Files//Oracle//Inventory""ORACLE_HOME"="D://oracle//ora92""ORACLE_HOME_NAME"="OraHome92""API"="D://oracle//ora92//dbs""ORACLE_GROUP_NAME"="Oracle - OraHome92""NLS_LANG"="NA""OLEDB"="D://oracle//ora92//oledb//mesg""OO4O"="D://oracle//ora92//oo4o//mesg"[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/ALL_HOMES]"HOME_COUNTER"="1""DEFAULT_HOME"="OraHome92""LAST_HOME"="0"[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/ALL_HOMES/ID0]"NAME"="OraHome92""PATH"="D://oracle//ora92""NLS_LANG"="NA"[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0]"ID"="0""ORACLE_GROUP_NAME"="Oracle - OraHome92""ORACLE_HOME_NAME"="OraHome92""ORACLE_HOME"="D://oracle//ora92""ORACLE_BUNDLE_NAME"="Enterprise""NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK""ORAMTS_CP_TRACE_LEVEL"="0""ORAMTS_CP_TRACE_DIR"="D://oracle//ora92//oramts//Trace""ORAMTS_CONN_POOL_TIMEOUT"="120""ORAMTS_SESS_TXNTIMETOLIVE"="120""ORAMTS_NET_CACHE_MAXFREE"="5""ORAMTS_NET_CACHE_TIMEOUT"="120000""ORAMTS_OSCREDS_MATCH_LEVEL"="OS_AUTH_LOGIN"[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"[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/OO4O]"CacheBlocks"="20""FetchLimit"="100""FetchSize"="4096""HelpFile"="D://oracle//ora92//MSHELP//oracleo.hlp""PerBlock"="16""SliceSize"="256""TempFileDirectory"="c://temp""OO4O_HOME"="D://oracle//ora92//oo4o"[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/OracleMTSRecoveryService][HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/OracleMTSRecoveryService/Protid_0]"Name"="HTTP""Host"="192.168.9.12""Port"="2030"[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/OracleMTSRecoveryService/Setup]"NumberOfInstalls"=dword:00000001[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/OracleMTSRecoveryService/Setup/All Versions][HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/OracleMTSRecoveryService/Setup/All Versions/1]"Version"="9.2.0.0.0""Home"="Software//ORACLE//HOME0"[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/OracleMTSRecoveryService/Setup/Current Version]"Version"="9.2.0.0.0""Home"="Software//ORACLE//HOME0"[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/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//ora92//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_CURRENT_USER/Software/Microsoft/Internet Explorer/Explorer Bars/{C4EE31F3-4768-11D2-BE5C-00A0C9A83DA1}/FilesNamedMRU]"000"="oraoledbpus"你可以用一个exe 程序把上面的路径替换为你客户端发布的Oracle文件路径.上面的程序在Oracle 9测试过.(手工操作是:我的电脑->高级->环境变量->Path)3 再调用windows Api把oracle文件的路径写入系统环境变量或程序环境变量Path这样你就可以像sql server 一样调用Oracle 驱动了,如果发现不行,重启电脑一下.
 
[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE]inst_loc=C:/Program Files/Oracle/Inventory[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraClient10g_home1]ORACLE_HOME=%sOracle/product/10.1.0/Client_1ORACLE_HOME_NAME=OraClient10g_home1ORACLE_GROUP_NAME=Oracle - OraClient10g_home1NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBKORACLE_BUNDLE_NAME=EnterpriseOLEDB=%sOracle/product/10.1.0/Client_1/oledb/mesg[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraClient10g_home1/OLEDB]CacheType=MemoryChunkSize=100DistribTX=1FetchSize=100OSAuthent=0PLSQLRset=0PwdChgDlg=1SchRstLng=10000UserDefFn=0DisableRetClause=1VCharNull=1TraceCategory=0TraceFileName=c:/OraOLEDB.trcTraceLevel=0TraceOption=0SPPrmDefVal=0[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/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]@=%s/Oracle/product/10.1.0/Client_1/bin/OraOLEDB10.DLLThreadingModel=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上面为Oracle 10的注册信息.其中有几个十六进制值我是用程序写入的.
 
强大啊,只是为什么不能装客户端呢
 
只有两种办法:一、安装Oracle客户端,可以用InstantClient,安装很简单二、使用ODAC等组件,可直接连数据库,不需要客户端。
 
1,写一个无守值安装脚本,一起打包就好了。2,ODAC,没什么好说的
 
大家好!我是使用DBExpress驱动连接数据库的,免安装Oracle客户端的。怎么在这样的配置环境里,让程序在其它电脑上正常运行?chinasky132,你好!你的QQ我已经加了。Oracle9、10你有设置了,但Oracle11g怎么设置或发布?
 
在一台配置好的机器上用install shell打包
 
使用DBExpress的话,肯定要安装Oracle客户端了。
 
如果每个客户(用户)都安装Oracle客户端,那可是大麻烦的。我的意思是不要在客户端安装Oracle客户端。
 
那是没有办法的了,你可以把Oracle客户端集成到你的安装程序里面。
 
Delphi下有套组件,不过忘了名字。你可以直接把类型设置成NET类型的,就可以了。否则要每个都装客户端。
 
使用UniDac吧,它可以不装客户端使用。
 
想找私人编写一个小软件(有偿)数据输入后自动统计分析的。有这方面的高手请直接与本人联系。QQ:253897218 电话:13556880568 胡生
 
因为Delphi和Oracle11g以及程序是在同一台电脑上,运行一切正常。当在其它的电脑上怎么也连接不到数据库。请问大家在不安装Oracle11g客户端的情况下,怎么设置或发布相关的DLL?请大家努力帮我解决谢谢!!!
 
前面说得很明白了,不改程序的情况下,想不安装Oracle客户端是不可能的。
 
楼上正解,不安装Oracle客户端是不可能的。 本人自己做了个精简的Oracle客户端安装程序,只包含了Delphi操作ADO所必要的文件, 十几M大小。有兴趣可以邮件索取。 xxsoft@tom.com //////// 其实楼上写注册表的那位兄弟讲得已经很清楚了。必要文件+写注册表,有动手能力的话可以自己做的。
 
顶部