1、Oracle跨平台,可以在Unix上跑, SQLSERVER不行。大型系统的关键应用,Unix比较成熟,所以用Oracle。
2、DOA是直接调用OCI.dll来实现对oracle的访问,oci是Oracle Call Interface,一个动态连接库,DOA封装了这个DLL

解决方案 »

  1.   

    asdf008(棒棒糖) ,如你所说,是不是DOA的访问技术和BDE还有ADO,一点关系都没有了?能再详细解释一下么?我用了DOA,是不是还是可以跨平台访问?
      

  2.   

    看本论坛的精华帖子:《Oracle能,SQL server不能》
    不用自称是女生,也会有人帮你的
      

  3.   

    我用了DOA,是不是还是可以跨平台访问?
    什么意思,没有看明白!
    --------------------------------------
    所谓跨平台,是指oracle server的跨平台,与客户端没有什么关系。
    你的客户端既然是用delphi写的,那么肯定是运行在windows上了。
    而oracle server运行在什么平台都是可以的,与你的客户端没有任何关系。不管是DOA,还是直接用oci,都需要net client的支持,负责最终通信是由oracle的网络层来实现的。oci比bde对oracle的客户端的访问也仅仅是少了一个应用程序调用层,其它的没有什么区别。
      

  4.   

    penitent(只取一瓢)说的对,用DOA或者直接掉OCI的好处是发布时不必要求一定在客户段装Oracle Client,跨平台是Oracle的事,和DOA没有关系。 sun9989(一品黄山)你实在是有趣,ake1980 (阿柯) 你对他有兴趣吗?
      

  5.   

    嘿嘿,我不是那种懒虫啊,大家告诉了我方向,我自己就去找了。看我下面这段阐述清楚不?DOA的全称是direct oracle access,是荷兰Allround Automations公司开发的访问Oracle的工具,运用DOA构件可以在Delphi或C++Builder开发环境下跳过BDE,而直接通过SQL Net访问Oracle。下面来看看它的访问模式和传统的BDE的区别 (一个图,显示不出来)可以看出,DOA并不需要像BDE和ODBC一样的中间件来负责和数据库的连接应用了DOA,上层的应用程序就可以直接访问OCL(ORACLE调用接口(Oracle Call Interface简称OCI)提供了一组可对ORACLE数据库进行存取的接口函数),而不需要其他的DLL(动态连接库)的程序。整个数据库的存取代码直接连接到上层的应用程序。这样就可以直接编写应用程序,而不必受到中间件的版本不同而造成的约束。使用DOA技术的好处是
    1. 在客户端不用按照oralce的客户端软件
    2. 不用安装和配置BDE以及ODBC
    3. 可以应用任何delphi的版本来开发客户/服务器程序
    4. 可以使用诸多的oracle 自带的特性
    5. 全面支持oralce的blob,clob和BFILE数据类型。
    6. 简化了的数据更新
    7. 快速的数据存取
    8. 支持delphi 下所有的数据控件
    等等。这都是我从国外的网站上翻译过来的
      

  6.   

    翻译的不错阿,以后我有英文资料你帮我翻译吧,哈哈. 看你顺眼你去http://expert.csdn.net/Expert/TopicView1.asp?id=1885899 随便回复一下我给你点分支持支持你, 可怜我发了那个贴子没人回答我,最后还是我自己搞定
      

  7.   

    asdf008(棒棒糖),偶就是穷追不舍,不这样做,怎么能进步?!“直接通过个exe访问oracle我也觉得不神奇,只要符合oracle客户端和服务器端的通信规范”,你都说了不用装oracle客户端了,怎么又说要符合客户端和服务器的通信规范?
    我拿了在Server上写好的.exe程序,放到局域网上的另一台机子上运行(没装Oracle的客户端)。就报错呀。传道授业解惑,问题要讲明白嘛。
      

  8.   

    1.在安装了Oracle客户端程序后,在Oracle安装目录下有如下目录和文件是连接Oracle数据库服务器所必需的:(最好保持目录层次关系结构)
    2.Oracle\BIN目录以及下面的27个DLL文件,并且保证应用程序可以找到该目录,即该目录为系统目录或者PATH目录。
    3.Oracle\OCOMMON\NLS\ADMIN目录以及其下所有文件
    4.Oracle\OCOMMON\NLS\MESG目录以及其下所有文件
    5.Oracle\NETWORK\ADMIN\tnsnames.ora
    6.Oracle\ORACORE\Mesg以及其下所有MSB文件 7.导入注册表到客户机:
    REGEDIT4
    [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
    "inst_loc"="C:\\Program Files\\Oracle\\Inventory"
    "ORACLE_HOME"="D:\\oracle\\ora81"
    "ORACLE_HOME_NAME"="OraHome81"
    "API"="D:\\oracle\\ora81\\dbs"
    "ORACLE_GROUP_NAME"="Oracle - OraHome81"
    "NLS_LANG"="NA"
    "OLEDB"="D:\\oracle\\ora81\\oledb\\mesg"
    "VOBHOME2.0"="D:\\oracle\\ora81"
    "OO4O"="D:\\oracle\\ora81\\oo4o\\mesg"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES]
    "HOME_COUNTER"="1"
    "DEFAULT_HOME"="OraHome81"
    "LAST_HOME"="0"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]
    "NAME"="OraHome81"
    "PATH"="D:\\oracle\\ora81"
    "NLS_LANG"="NA"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
    "ID"="0"
    "ORACLE_GROUP_NAME"="Oracle - OraHome81"
    "ORACLE_HOME_NAME"="OraHome81"
    "ORACLE_HOME"="D:\\oracle\\ora81"
    "NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
    "ORACLE_SID"="QIAODB"
    "ORACLE_HOME_KEY"="Software\\ORACLE\\HOME0"
    "SQLPATH"="D:\\oracle\\ora81\\dbs"
    "ORACLE_BASE"="D:\\oracle"
    "MSHELP_TOOLS"="D:\\oracle\\ora81\\MSHELP"
    "RDBMS_CONTROL"="D:\\oracle\\ora81\\DATABASE"
    "RDBMS_ARCHIVE"="D:\\oracle\\ora81\\DATABASE\\ARCHIVE"
      

  9.   

    我faint,你自己做个exe在某台机器上跑,用它连到数据库服务器,这个exe就是客户端应用,就是CS的构架,这个有问题吗?谁规定了一定要Oracle Client才能算客户端?自己编的exe难道不算是客户端吗?你是不是不是计算机专业的?我们以前毕设的时候有个女的做了个类似于图论的毕设,下面老师没一个懂,结果得了优,你不要是和我一个学校的哦,哈哈,我也不是计算机专业的
      

  10.   

    我不是计算机专业的。问题在于我就是那么做的,可是跑不起来撒。我做的那个exe程序是在本机上用的。database连接的是本机上的oralce数据库。同样的程序,我在局域网里的另一台没有安装orale的机子上用,操作系统怎么就能知道连到我的机子上的oracle数据库呢?
      

  11.   

    拷贝了Oracle客户端的DLL操作系统自然就能知道连到你的机子上的oracle数据库
      

  12.   

    exe中的客户端访问组件中不是有设置服务器IP,Port,SID,UserName,Password的吗,通过这些不就能连接服务器了,你什么专业的?
      

  13.   

    “exe中的客户端访问组件中不是有设置服务器IP,Port,SID,UserName,Password的吗”有么?赶紧去看看。自动控制
      

  14.   

    哈哈,真是有缘,你是超调看来有点大么,来个PID控制算了,我QQ 17326881,来聊聊阿
      

  15.   

    asdf008(棒棒糖) ,这种人!得了分还在这里说风凉话
      

  16.   

    问了这么多问题,还要说一大半工作是自己完成的,还想把分留给自己,还说不公平,好像是别人占了你便宜,有你这么无耻的人吗?!
    我得了你15分,我送了你20分,而且是你散分之前就给了,http://expert.csdn.net/Expert/TopicView1.asp?id=1885899
    我回答了你的问题,你什么都没做,让你得20分,你还强调我得了你的分,真是没有品位。