小编Val*_*i S的帖子

COM对象方法未定义

我在php中调用COM类中的任何方法都遇到了麻烦.为了找到该类中的所有方法,我使用了:

$com = new COM('Some.Class.Name');
com_print_typeinfo($com);
Run Code Online (Sandbox Code Playgroud)

这个类包含了100种不同的方法.但是当他们打电话时:

$com->SomeMethod();
Run Code Online (Sandbox Code Playgroud)

,弹出这个错误:

致命错误:在第22行的C:\ xampp\htdocs\www\test.php中调用未定义的方法com :: SomeMethod()

当我使用其他COM对象(如" InternetExplorer.Application "类)时,不会发生这种情况.另外,我知道这个COM对象与Delphi等其他编程语言一样可以正常工作.

我在64位Windows Vista上使用PHP 5.5.19,在32位PHP架构上使用XAMPP.

对于这种情况可能发生的事情或一些可能的解决方法,我将不胜感激.

编辑: COM服务器应用程序是用Delphi编写的.

这可能是另一个线索:当我使用代码时

$com = new COM('Some.Class.Name');
foreach ($com as $obj) { 
    echo $obj->Name . "<br />"; 
} 
Run Code Online (Sandbox Code Playgroud)

我明白了:

致命错误:未捕获的异常'异常',消息'类型为com的对象未创建迭代器'

我想这表明应用程序界面本身可能存在问题,但我不知道该问题可能是什么.我在PHP中工作,所以COM对象的内部对我来说是完全模糊的.但我非常感谢有关具体步骤的任何线索,以解决这种情况.

EDIT2: 这是Srv_TLB.pas文件的简短代码.

unit Srv_TLB;

{$TYPEDADDRESS OFF}
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
interface

uses Windows, ActiveX, Classes, Graphics, StdVCL, Variants;

const
  // TypeLibrary Major and minor versions
  SrvMajorVersion = 1;
  SrvMinorVersion = 0;

  LIBID_Srv: …
Run Code Online (Sandbox Code Playgroud)

php windows delphi com

18
推荐指数
1
解决办法
795
查看次数

使用Oracle函数从字符串中提取数字

我需要创建一个以字符串作为参数的Oracle DB函数.该字符串包含字母和数字.我需要从这个字符串中提取所有数字.例如,如果我有一个像RO1234这样的字符串,我需要能够使用一个函数,比如说extract_number('RO1234'),结果将是1234.

更准确地说,这是将使用此函数的SQL查询.

SELECT DISTINCT column_name, extract_number(column_name) 
FROM table_name
WHERE extract_number(column_name) = 1234;
Run Code Online (Sandbox Code Playgroud)

问题:如何使用Oracle SQL Developer或SQLTools客户端应用程序中的任何一个向我的Oracle数据库添加这样的函数,以便能够像上例中一样使用它?

sql oracle sqltools oracle11g oracle-sqldeveloper

8
推荐指数
2
解决办法
8万
查看次数

标签 统计

com ×1

delphi ×1

oracle ×1

oracle-sqldeveloper ×1

oracle11g ×1

php ×1

sql ×1

sqltools ×1

windows ×1