文档章节

解决报错:method “***” not supported by automation object

s
 shs0708
发布于 2016/08/04 19:55
字数 533
阅读 509
收藏 0

我遇到这个问题是在delphi6当中,服务端使用了RemoteDataModule模块,客户端使用TSocketConnection和TWebConnection来连接服务端,并且使用服务端定义的method(即function)。 出现的问题是,每次运行客户端到调用自己在RemoteDataModule模块中添加的method时会报错: method “***” not supported by automation object 我当时添加method是直接在mainformunit里面加入函数,并且手动在TLB.pas中加入两句声明。 出现错误的原因就是没有在RemoteDataModule模块的TypeLibrary中加入函数的声明,所以TLB中的声明是无效的,因为TLB.pas是系统自动生成的。。。 正确的添加method的方法是打开工程之后,在菜单中的View——Type Library中加入新的method,之后点击刷新的按钮,就会自动更新tlb文件,然后在RemoteDataModule中声明和定义该method。

以下是引用自:http://blog.sina.com.cn/s/blog_4d0bbae30100bu2q.html

Delphi三层结构对自定义远程接口的实现方法 在三层中加入新的远程数据模块RemoteDataModule,会自动产生*.tlb的类型库,可自定义方法或函数

1、必须先在服务器程序的typr lib中加入该函数,并定义好输入、输出变量,相应的修改会自动反应在RemoteDataModule和lib文件中;否则,在调用的时候会出现“methon "函数名" not supported by automation object”。究其原因,远程数据模块其实相当于我们自定义的一个类,只不过由系统自动生成罢了,在调用的时候,如果将方法及其输入输出在类库中定义,则找不到该方法,就会出现无法调用的现象。

2、在RemoteDataModule找到要定义的函数,在那里实现自己的逻辑。

3、必须把datasetprovider的PoAllowCommandText:=true.否则,你在客户端无法使用lientdataset.commandtext属性了!这样你就可以在客户端调用socketconnection1.appserver..ExecSqls了,注意参数类型必须一致,字符串用widestring!!!!

4、不能运行三层客户端的自定义解决: regsvr32 midas.dll ; install mdac

© 著作权归作者所有

共有 人打赏支持
s
粉丝 0
博文 10
码字总数 6185
作品 0
广州
【select模块】select IO多路复用和select实现FTP

select是全平台通用的IO多路复用模块。最大连接数:1024。 poll和epoll没有最大连接数限制,但只能用在linux平台。 selectors是再封装模块,推荐使用。下篇会讨论。 select.(rlist, wlist, ...

等你的破船
07/26
0
0
UWP使用MySql.Data.RT.dll连接mysql抛异常System.ArgumentException

连接字符串: "Server=localhost;Database=db;Uid=root;Pwd=*;SslMode=None;" 报错信息 “System.ArgumentException”类型的异常在 mscorlib.ni.dll 中发生,但未在用户代码中进行处理 其他信...

syj52417
2016/04/20
388
1
基础才是重中之重~国外大牛对linq查询的扩展,有时还是T-SQL的样子好

事实上,本扩展主要是将linq中的lambda表达式的写法改为了传统的SQL写法 Dynamic Expressions and Queries in LINQ Database applications frequently rely on “Dynamic SQL”—queries tha...

mcy247
2017/12/04
0
0
springmvc springsecurity问题

在springmvc+springsecurity的项目中,若使用POST方式登录, 则出现以下问题: “HTTP Status 405 - Request method 'GET' not supported” 其中security.xml配置为: spring mvc.xml为 两者...

简单仁
2017/09/28
53
4
Spring Auto-Wiring Beans

In Spring framework, you can wire beans automatically with auto-wiring feature. To enable it, just define the “autowire” attribute in <bean>. <bean id="customer" class="com.mk......

pczhangtl
2013/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Shell编程(expect同步文件、指定host和同步文件、构建文件分发系统、批量执行命令)

expect脚本同步文件 需求:自动同步文件 实验准备: A机器:192.168.248.130 B机器:192.168.248.129 实现: 1.A机器编写4.expect脚本文件,内容如下所示: #!/usr/bin/expectset passwd "...

蛋黄_Yolks
15分钟前
0
0
ppwjs之bootstrap颜色:背景颜色

<!DOCTYPT html><html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ppwjs欢迎您</title><link rel="icon" href="/favicon.ico" ......

ppwjs
15分钟前
0
0
Ubuntu与 Fedora之对比

大家好。今天我将重点介绍两个流行的Linux发行版之间的一些特性和差异; Ubuntu 18.04和Fedora 28。它们都有自己的包管理; Ubuntu使用DEB,而Fedora使用RPM,但它们都具有相同的桌面环境(GNO...

linuxprobe16
19分钟前
0
0
线性代数入门

线性代数的概念对于理解机器学习背后的原理非常重要,尤其是在深度学习领域中。它可以帮助我们更好地理解算法内部到底是怎么运行的,借此,我们就能够更好的做出决策。所以,如果你真的希望了...

牛奋Debug
昨天
2
0
开发5分钟,调试2小时 - 该如何debug?

几年来我在答疑群、论坛、公众号、知乎回答的各种问题,没有一万也有八千。其中有三分之二以上都是在帮人看报错,帮人 debug(调试代码)。 可以说,会不会 debug,有没有 debug 的意识,懂不...

crossin
昨天
3
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部