文档章节

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

s
 shs0708
发布于 2016/08/04 19:55
字数 533
阅读 494
收藏 0
点赞 0
评论 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
广州
Top 15 UI Test Automation Best Practices You Should Follow

In the past several years, I have heard many engineers from various projects complain about the stability and the reliability of UI automation tests. But are they really so unst......

Yuri Bushnev
2017/12/14
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
XMLHttpRequest对象的属性

XMLHttpRequest对象提供了许多属性、方法和事件,因此Ajax脚本可以处理和控制Http请求和响应。本章的其余部分会对这些进行详细的讨论。 The XMLHttpRequest object exposes various properti...

晨曦之光
2012/03/09
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
基础才是重中之重~国外大牛对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
009.Spark Programming Guide

参考地址:http://spark.apache.org/docs/latest/programming-guide.html Spark的学习注意2个点: Transformations 和Actions(编码学习一定要会用API) Overview Linking with Spark Initiali......

片刻
2016/04/21
37
0
Teiid 8.1 正式版发布

Teiid 团队今天很高兴的发布了 Teiid 8.1 正式版,基于 JBoss AS 7.1.1,如果你正在使用 Teiid 8.0,我们强烈建议立即更新到这个版本,该版本解决了 100 多个问题,同时包含很多新特性。 在 ...

红薯
2012/08/22
385
0
表单提交报错Request method 'POST' not supported

最近写一个spring的项目遇到一个报错,迟迟不能解决。我用jQuery提交表单进行登录的时候。一直提示Request method 'POST' not supported这个报错。但是我这个项目在前几天部署的时候。并没有...

怒摘一板
2017/03/31
744
4
jQuery EasyUI 1.4.4 发布

jQuery EasyUI 1.4.4 发布了,下载地址: http://www.jeasyui.com/download/index.php ChangeLog(更新日志) Bug(错误) filebox: The 'clear' and 'reset' methods do not work properly ......

ejzhang
2015/11/05
10.2K
33

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MyBatis源码解读之延迟加载

1. 目的 本文主要解读MyBatis 延迟加载实现原理 2. 延迟加载如何使用 Setting 参数配置 设置参数 描述 有效值 默认值 lazyLoadingEnabled 延迟加载的全局开关。当开启时,所有关联对象都会延...

无忌
5分钟前
0
0
javascript 类变量的实现

代码如下: function echo(){ for(let i=0;i<arguments.length;i++) console.log(arguments[i]);}function extend(o, p){for (prop in p) {o[prop] = p[prop]}retur......

backbye
9分钟前
0
2
编程语言对比分析:Python与Java和JavaScript(图)

编程语言对比分析:Python与Java和JavaScript(图): 凭什么说“Python 太慢,Java 太笨拙,我讨厌 JavaScript”?[图] 编程语言生而为何? 我们人类从原始社会就是用语言表达自己,互相沟通...

原创小博客
18分钟前
0
0
Akka构建Reactive应用《one》

看到这Akka的官网,描述使用java或者scala构建响应式,并发和分布式应用更加简单,听着很高级的样子,下面的小字写着消息驱动,但是在quickstart里面又写容错事件驱动,就是这么钻牛角尖。 ...

woshixin
29分钟前
0
0
ffmpeg源码分析 (四)

io_open 承接上一篇,对于avformat_open_input的分析还差其中非常重要的一步,就是io_open,该函数用于打开FFmpeg的输入输出文件。 在init_input中有这么一句 if ((ret = s->io_open(s, &s-...

街角的小丑
31分钟前
0
0
String,StringBuffer ,StringBuilder的区别

不同点 一、基类不同 StringBuffer、StringBuilder 都继承自AbStractStringBuilder,String 直接继承自 Object 2、底层容器“不同” 虽然底层都是字符数组,但是String的是final修饰的不可变...

不开心的时候不要学习
46分钟前
0
0
nodejs 文件操作

写文件code // 加载文件模块var fs = require("fs");var content = 'Hello World, 你好世界!';//params 文件名,内容,编码,回调fs.writeFile('./hello.txt',content,'utf8',function (er......

yanhl
48分钟前
0
0
SpringBoot mybits 查询为0条数据 但是在Navicat 中可以查询到数据

1.页面请求: 数据库查询: 2018-07-16 17:56:25.054 DEBUG 17312 --- [nio-9010-exec-3] c.s.h.m.C.selectSelective : ==> Preparing: select id, card_number, customer_id, customer_nam......

kuchawyz
58分钟前
0
0
译:Self-Modifying cod 和cacheflush

date: 2014-11-26 09:53 翻译自: http://community.arm.com/groups/processors/blog/2010/02/17/caches-and-self-modifying-code Cache处在CPU核心与内存存储器之间,它给我们的感觉是,它具......

我叫半桶水
今天
0
0
Artificial Intelligence Yourself

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流...

孟飞阳
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部