再次高分征答:120分
6-6日所提问题久未人解答,我给它加到120分了现在再新登记一编:
我在用C++BUILDER写多层数据库应用时用到MIDAS与PROVIDER组件,BCB中MIDAS控件的SERVERNAME 客户数据集的PROVIDERNAME 都是在设计时可选择,如何在运行时自动获取这些特性呢,我估计是在自动化对象的信息中,我在注册表中找过可以找到SERVERNAME 与GUID但有这些特性的项目特多,用racmgr32.exe 和 dcomcnfg.exe 查看时就显示很多但C++BUILDER中只显示我写过的SERVER,这里似乎有些特别的信息保存在某个地方不知谁能告知.
同时我要在运行时自动获取的的PROVIDER 的名字,这个可能得用到类型库的查询因为PROVIDER 的名字是作为服务器输出接口的特性存在的,我正准备试试但不知有否更好的办法( 我用的是C++ BUILDER 3,不好意思,因为我找不到D版的C++BUILDER4和5 .)
另外上次给MIDAS运行时赋COMPUTERNAME时老是出错说没有SETCOMPUTERNAMEA这个外部函数的连接错误的问题解决了,的确是BCB3的错误,我从MIDAS派生了一个新组件然后定义了一个和该特性同样功能的MYCOMPUTERNAME特性,重写了DOCONNECT,然后生成自己的组件登记后就可以用了.幸好COMPUTERNAME只在DOCONNECT中使用否则重写的代码就多了.