6932可用分征解-bcb编译oracle occi(oracle c++ call interface)接口程序

guo 2002-03-16 11:03:38
我想在坐各位是和我一样borland最忠实的追随者,无论哪一个产品都是我们一次又一次的使我们越到新技术的前沿! 然而,市场决定生存,已经有一些厂商在自己的产品中减少了对borland产品如bcb的支持力度,虽然我曾经尽力使我的bcb支持了oracle的proc接口开发,但在oracle的新产品oracle9i中却没办法使bcb支持oracle c++ call interface,原因是oracle只提供msvc类型的lib文件。我不相信bcb不支持occi接口,说实话我什么都没有除了可用分,当然那位又说了,分算什么,对,什么都不是,全当我给大家谈论烘托气氛,也算解救一个见vc就头痛borland的追随者!
好!分送上! 大家快出主意!
我这里给出已做的尝试:
使用coff2omf将msvc的lib文件转为omf形,但没有成功.
如果需要头文件及lib,dll文件,请email至guo.z.w@263.net

最终是否成功要看%oracle_home%\rdbms\demo\occidml.cpp能否成功编译!
...全文
74 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
guo 2002-03-20
  • 打赏
  • 举报
回复
bcb编译oci是没有问题的,包括pro*c,我这是8,815,1816,817都成功过,解决办法就是我上面所讲的.
长时间不用Bcb了,我不知道dll中导出类是怎么一回事,哪位知道一些?
wyb_45 2002-03-19
  • 打赏
  • 举报
回复
我也曾尝试将OCI使用BCB调用,最后一大堆的警告和错误而失败。也许bcb对ANSI C扩展的太多了吧。
guo 2002-03-19
  • 打赏
  • 举报
回复
谢谢cker验证了我没有能力验证的可能性!
近一二年没有做程序开发了,不知道从dll中导出类是什么样的含义? c++builder能做类似的东西吗?
柯本 2002-03-19
  • 打赏
  • 举报
回复
oracle 8 中有关OCI 的 BORLAND 例子,我记得只要把最后一个F???。LIB
去掉,用CB5或CB6编译运行都没问题,oracle 9 没试过,不过用按我用oracle 多年的经验,用OCI8 联ORACLE9I 应无问题,你可试试
柯本 2002-03-19
  • 打赏
  • 举报
回复
我用过ORACLE 的OCI80,它支持Borland 的LIB
Detective 2002-03-19
  • 打赏
  • 举报
回复
“dll中导出类”我想cker(〖烟波浩淼三千里、人鬼殊途五百年〗) 指的是Dll中包含了类定义吧,MS和Borland的c++lib文件是几乎完全不兼容的。

我想到的解决方法是用VC写一个ActiveX包装,直接就可以用了;或者写一个c包装,把类变成结构体,然后再生成一个Lib供BCB用。

不过这样有相当大的工作量,可能有更好的办法吧?
  • 打赏
  • 举报
回复
实在是十分的不幸,如我开始所言;9i的确从dll中导出类了。
这一点使得GetProcAddress无能为力。
我手边的一切资料显示,成功的可能性不存在。
程序在连接时出错:
[Linker Error] Unresolved external 'oracle::occi::Environment::terminateEnvironment(oracle::occi::Environment *)' referenced from I:\ORACLE9\DOCCIDML.OBJ.....
相应的使用impdef导出的oraocci9.def文件中可以找到如下的经过编译器分解后的函数名字:
典型的由VC编译生成的形式:用?开头:
?terminateEnvironment@Environment@occi@oracle@@SAXPAV123@@Z @866 ; ?terminateEnvironment@Environment@occi@oracle@@SAXPAV123@@Z
同样在occiControl.h - header file for OCCI control classes

DESCRIPTION
Class definitions for MetaData,SQLException,Environment,
Connection,Session,Statement
中可以找到这个类的定义,呵呵,导出类!!!几乎可以断言,不太可能了

除非在汇编层面上做手脚,我就不行了....再说这样也不安全。

就这样使得oracle放弃对borland编译器的支持,太不够意思了。


这样在win32下,对BCB和delphi来说,唯一的选择是使用com对象
不知道9i在这方面有没有类型库之类的东东.....
  • 打赏
  • 举报
回复
收取中.....
常宁 2002-03-18
  • 打赏
  • 举报
回复
:)
guo 2002-03-18
  • 打赏
  • 举报
回复
cker:东西已经发出去了,查收,如果那个cpp可以正确编译,问题应该就解决了。
wangxd 2002-03-17
  • 打赏
  • 举报
回复
看看
  • 打赏
  • 举报
回复
指的是导入库的全称
#pragma link "xxxx.lib"
windindance 2002-03-17
  • 打赏
  • 举报
回复
收藏&关注&推
guo 2002-03-17
  • 打赏
  • 举报
回复
“[path]modulename[.ext]”指的是dll的全称还是lib的全称?
guo 2002-03-17
  • 打赏
  • 举报
回复
to lya_lya(元元),你的热心让我感觉不知所措,只是有一点,oracledirectaccess控制我在用,但想用高级接口,两者还是不在一条线上
guo 2002-03-17
  • 打赏
  • 举报
回复
弱水兄:国外的OPENVMS administrator吃香的很呀,我只用过一次,但印象深刻! 在技术方面也许compaq和borland有点类似--'技术搞不过市场'
KingSunSha 2002-03-17
  • 打赏
  • 举报
回复
To: guo

不好意思了,我不熟悉BCB,帮不上忙了

我现在的工作很少做前端的开发,主要是写PL/SQL + VMS SHELL SCRIPT,不过VMS太老了,恐怕要想想改写别的东西了。
lya_lya 2002-03-17
  • 打赏
  • 举报
回复
Oracle.Data.Access.Components.v3.50.0.30.for.Delphi.56.and.BCB.5.WinAll.Retail-DiSTiNCT

这个可以不可以呀?有6M 大。
qq:120733843
lya_lya 2002-03-17
  • 打赏
  • 举报
回复
你有没有想过用现成的 oracle控件(带原码)。可以下载
好象哪个专门oracle控件集里提供。
想要告诉我
  • 打赏
  • 举报
回复
coff2omf可以将coff格式库转为borland的omf库,但不支持新的coff库格式
这应该在转换静态库时使用
implib生成包含dll入口的导出函数表的导出库,但并不是包含函数代码的静态连接库。使用时,和头文件一起加入工程中
或者手动书写#pragma link “[path]modulename[.ext]”
加载更多回复(2)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧