你好。

我想访问一个远程SQL Server数据库中的存储过程。我对Object Script很陌生。

该存储过程有3个参数:2个日期时间参数和1个整数。

哪种方法最好呢?我想知道我是否可以在object script中使用链接存储过程的功能或一些SQL语句。

这个存储过程返回一组行,我想读取、转换并保存在一个持久化类中。

先谢谢了。

Hi,

I want to access a Stored Procedure in a remote SQL Server Database. I am quite new to Object script.

The stored procedure has 3 parameters: 2 datetime parameters and 1 integer.

Which is the best way to do that? I'm wondering if I can use the link stored procedure feature inside object script or some SQL statement in Object Script.

0 1
0 96
问题
· 四月 27, 2022
如何更改主键?

Hi, 请问如何更改表(有数据)上的主键?谢谢!

答:

如果数据已经存在,那么这是一项必须重视的任务,特别是如果存在继承或父/子关系,因为这将导致你的数据存储方案的改变。

最简单的方法是通过一个中间(临时)表来实现。

创建一个具有相同结构的新类,但有一个新的主键。
使用SQL(不是合并命令)将数据从旧的类中移到它里面。
删除旧类中的数据/索引,然后改变其中的主键。
使用合并命令,将数据从新类移到旧类中。
删除带有数据的新类。
重建索引(如果有的话)。

几个有用的链接:
MERGE

0 1
0 79
问题
· 四月 29, 2022
csp 接口查询速度极慢排查

目前 cache 架构如上图所示,有部分 csp 接口查询速度不稳定,数据量并不大,每次查询返回也就几十个个病人数据,有时 1-4秒,有时十分慢差不多10几秒;在终端直接执行接口对应方法速度又很快。请问怎么逐步排查、定位问题出在哪一部分?有哪些工具、手段或者 cache 参数可以监控?

0 1
0 79
问题
· 四月 29, 2022
Cache 动态 SQL 分页

我想知道是否有更好的方法来使用动态SQL对数据集进行分页,而不是我下面使用的方法。问题是,当潜在的数据池变大时,这段代码就会变慢,以至于无法使用。在分析下面的每一行代码时,似乎速度变慢与最初的rset.%Next()迭代有关。 有没有什么不需要子查询/%VID的可用方法,比如简单的LIMIT/OFFSET?

我的代码类似于:

s sql=##class(%SQL.Statement).%New()

s query="SELECT *,%VID FROM (SELECT prop FROM table WHERE prop=x) WHERE %VID BETWEEN 1 AND 100"

s sc=sql.%Prepare(query)

s rset=sql.%Execute()

while rset.%Next() {.....

0 1
1 240
问题
· 五月 1, 2022
从邮件保存附件到磁盘

Hello

我们有一个程序用EnsLib.EMail.InboundAdapter作为服务,扫描收件箱里带附件的邮件。

当有新邮件到达时,服务将请求(有属性%Net.MailMessage)发送给进程。在这个过程中,我们尝试循环并检索第2部分,我们假设它是文件。

set Part = pRequest.Mail.Parts.GetAt (2)

我们可以读取文件名:
Set FileName = Part.FileName

但是,如何以及是否有可能将附件文件保存到磁盘驱动器?

我没有看到该类中有任何支持该功能的方法。

或者我们必须使用% Net.POP3来接收和存储文件?

非常感谢!

0 0
0 61

从 IRIS log中找到了大量的以下内容:

05/05/22-01:05:11:375 (16166) 0 [Generic.Event] ECP: Mirror Connection request from 'SM25SDLMIIRROR:LOCALHOST.LOCALDOMAIN:IRIS' (10.xxx.xxx.27:33040)

05/05/22-01:05:11:376 (16166) 1 [Generic.Event] ECP: Active server not defined, cannot redirect mirror connection

这是什么意思?

0 0
0 52