gpt4 book ai didi

sql - 如何获取对存储过程的直接 SQL 调用的结果?

转载 作者:行者123 更新时间:2023-12-04 15:13:58 24 4
gpt4 key购买 nike

我正在通过 X++ 中的直接 SQL 调用存储过程,但我不知道如何从中获取整数返回值。 0 是好的,-1 是坏的。

// Login to SQL DB
loginProperty = new LoginProperty();
loginProperty.setServer('localhost');
loginProperty.setDatabase('SQL_DB');
odbcConnection = new OdbcConnection(loginProperty);
statement = odbcConnection.createStatement();


/*
@in_customer_id INT
,@status INT
,@dlvmode NVARCHAR(25)
,@dlvmodedesc NVARCHAR(50)
,@tracking_id NVARCHAR(50)
,@note NVARCHAR(MAX)
,@modified SMALLDATETIME = null
,@override_email NVARCHAR(200) = null
*/

sqlStatement = strfmt(' EXEC pr_send_status_email ' +
' %1,' + // CustomerId
' %2,' + // Status
' %3,' + // DlvMode
' %4,' + // DlvMode description
' %5,' + // Tracking #
' %6,' + // Note
' %7' // DateTime
, 160308
, 2
, sqlSystem.sqlLiteral("FD1")
, sqlSystem.sqlLiteral("Fed Ex overnight")
, sqlSystem.sqlLiteral("1ZABCDEF")
, sqlSystem.sqlLiteral("Note Here")
, sqlSystem.sqlLiteral(DateTimeUtil::utcNow()));



sqlStatementExecutePermission = new SqlStatementExecutePermission(sqlStatement);
sqlStatementExecutePermission.assert();
//BP deviation documented
resultSet = statement.executeQuery(sqlStatement);
//info(strfmt("%1", statement.executeUpdate(sqlStatement))); // I Tried this too
CodeAccessPermission::revertAssert();

if (resultSet.next()) // Errors here
info(strfmt("Return: %1", resultSet.getInt(1)));

最佳答案

executeUpdate返回更新的行数;否则 0 对于不返回任何内容的 SQL 语句。

executeQuery返回 ResultSet 类的实例,但调用存储过程不是选择,因此您违反了约定。

不支持您尝试执行的操作。

您可以使用 C# 作为 glue code或直接使用 .NET CLR Interop 使用 C# 类型.

关于sql - 如何获取对存储过程的直接 SQL 调用的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12184152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com