问题标签 [objectscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
167 浏览

intersystems-cache - 对象脚本是否支持多重继承?

我是缓存新手,发现与普通 oop 概念不同的东西。在对象脚本中,一个基类可以从多个子类继承(继承顺序可以是左/右)。如果 objectscript 是 oop,我不知道缓存如何支持这一点(不太可能其他编程语言)。

基类

儿童1班

儿童班 2

输出

我在 Inheritance.TheChildClass

我在继承.TheChildClass1111111111

0 投票
1 回答
276 浏览

intersystems-cache - ObjectScript Library.FileBinaryStream 转换成字符串

如何从二进制流创建字符串 a?我尝试了 StreamGet 和 OutputToDevice 类方法,但没有返回字符串。我应该使用另一个课程吗

谢谢 :)

0 投票
1 回答
471 浏览

rest - 无法在 REST 中设置 http 标头的内容类型

无论我设置什么,以下请求始终采用默认内容类型。我设置为 application/xml,但它仍然是 application/json。但是,当我通过 Postman 调用服务时,这个问题就不存在了。

zw objHTTPRequest -> 无内容类型集

0 投票
1 回答
65 浏览

intersystems-cache - Intersystems Objectscript,具有非持久属性的持久类

我们可以在持久化类中创建非持久化属性吗?只需不要使用 %Save() 保存属性(列)

0 投票
3 回答
341 浏览

intersystems-cache - 访问缓存 Objectscript 中的实例变量

我有一个例程,我使用反射动态实例化持久对象。当我尝试使用反射 ($Property) 对其进行实例化时,该对象的属性之一(也是持久对象)失败。它失败,因为该属性已从数据库中删除。这是有道理的,但我似乎无法获得该属性的 ID (23)。当我 ZWrite 对象时,我可以在打印输出中看到属性 id。

我无法弄清楚如何访问 i%ProdID 值。如果有人可以提供帮助,我将不胜感激。

我正在使用递归来获取对象的属性和每个属性的后续属性(如果它们具有持久性)等等,但是如果属性实际上没有持久化(以某种方式被删除),我仍然想获取 id . 我曾考虑过使用 sql,但如果可能的话,我想远离它。

0 投票
2 回答
306 浏览

javascript - 无法从系统间缓存服务器方法设置变量值

我在使用 Javascript 进行系统间缓存服务器页面时遇到了一个问题。

这是我的示例代码:

情况1:

在这种情况下,当test1()调用函数时,value = 0,它是一个局部变量。

案例二:

在这种情况下,当test1()调用函数时,val = 50 并且 value 现在是一个全局变量。

所以我的问题是:

  1. 如何通过缓存服务器方法成功设置案例 1 中的值?
  2. 为什么缓存服务器方法可以在 Javascript 中声明全局变量但不能为变量设置值?
0 投票
1 回答
362 浏览

intersystems-cache - 意外的 SQL 错误返回在系统间缓存中

问题

我正在通过缓存 ODBC 驱动程序从 Intersystems 缓存数据库中导出数据。有一个特定的表给了我一条错误消息。ODBC 驱动程序崩溃并从缓存系统报告错误。我想我能够追踪错误的来源,但我不知道如何调试或修复错误。

我要提取的表称为SEDMIHP.

这是错误:

研究/试错

我能够打开 Cache Management Studio 并找到与表名匹配的类。我应该提到这是我第一次使用 Intersystems Cache,所以如果我在这里听起来很愚蠢或缺乏经验,我深表歉意。

在 中SQLMap,我发现了这段代码:

我认为这里的代码引起了问题。由于我对 ObjectScript 的理解非常有限,我认为这段代码正在操作文本/字符串,并且如果数据中存在未定义或错误的值,是否会导致这些函数抛出错误?

我对缓存管理门户的访问权限有限,并且能够在 SQL 架构中找到该表并对其运行查询。在出现与上述相同的错误之前,大约加载了 300 行数据,并且它停止加载更多行。这就是为什么我认为存在不良数据的原因。

我尝试在 SELECT 语句中使用ISNULL()andIFNULL()来尝试跳过任何错误数据,但每次都在同一个位置出现相同的错误。

问题

  1. SQL 方面是否有一个简单的解决方案可以避免这个错误?
  2. 我可以使用 Studio 中的类代码来调试或获取有关此错误的更多信息吗?

非常感谢任何和所有帮助!

附加信息

缓存版本:Cache for OpenVMS/IA64 V8.4 (Itanium) 2012.1.5 (Build 956 + Adhoc 12486) 17-APR-2013 19:49:58.07

0 投票
1 回答
130 浏览

javascript - 缓存服务器页面 (CSP) 中的缓存变量范围

我正在尝试在 CSP 中存储临时数据。

由于并发问题,我尽量避免使用 ^Global 和 %session,并且由于安全问题而避免使用 Javascript 变量。

然后我遇到了困惑。以下代码都在一个 CSP 中:

  1. 在页面加载期间,警报返回test为“1”而不是“2”。这里发生了什么?

  2. 还有其他更好的方法可以将此类数据存储在 CSP 中吗?

0 投票
0 回答
58 浏览

file - 如何在系统间缓存中使用 %Net.MailMessage 添加两个或多个文件附件?

我试过这个:

我想添加两个或更多附件。但它根本不起作用......提前谢谢你!

0 投票
1 回答
36 浏览

intersystems-cache - 不创建 %iFind.Index.Basic 类索引的动态 iFind 索引

我正在尝试使用%iFind.Index.Basic制作通用文本搜索功能。

根据iFind 搜索工具文档,必须在类中创建 iFind 索引,如下所示:

但这仅适用于一个类中的一个字段。

如果要普遍使用 iFind 搜索功能,那么需要索引大量的字符串字段,这样既消耗内存又不实用。

无论如何都可以根据需要动态进行 iFind 索引而不需要更改类,并且仍然可以使用##Class(%ResultSet)进行查询?

在文档中,它还提到了 Indexing a JSON Object,但没有给出示例。这是我应该更多探索的地方吗?