高级数据服务器'__错误';带参数的基于.NET的存储过程中的表

高级数据服务器'__错误';带参数的基于.NET的存储过程中的表,.net,stored-procedures,advantage-database-server,.net,Stored Procedures,Advantage Database Server,我为ADSV10测试版创建了基于.NET的AEP。这是一个程序代码。净侧: public int TestSP(int connectionId, int connection, ref int numRowsAffected) { AdsConnection cnn; lock (_connections) cnn = _connections[connectionId]; using (var cmd = cnn.CreateCommand())

我为ADSV10测试版创建了基于.NET的AEP。这是一个程序代码。净侧:

public int TestSP(int connectionId, int connection, ref int numRowsAffected)
{
    AdsConnection cnn;
    lock (_connections)
        cnn = _connections[connectionId];

    using (var cmd = cnn.CreateCommand())
    {
        cmd.CommandText = "INSERT INTO __error (errno, message) VALUES (20683, 'This is a test error message')";
        cmd.ExecuteNonQuery();
    }

    return 0;
}
SQL端:

CREATE PROCEDURE TestSP_AEP(num Integer) 
   FUNCTION "TestSP" IN COMLIBRARY "MyNamespace.MyClass";

有了这些东西,我有以下几点。电话

EXECUTE PROCEDURE TestSP_AEP_Empty();
产生一个错误:

poQuery:Error 7200:AQE Error:State=HY000;NativeError=5154; [iAnywhere Solutions][Advantage SQL][ASA]错误5154:执行 存储过程失败ProcError 20683:这是一条测试错误消息

电话呢

EXECUTE PROCEDURE TestSP_AEP (123);
产生一个错误:

poQuery:Error 7200:AQE Error:State=HY000;NativeError=5154; [iAnywhere Solutions][Advantage SQL][ASA]执行存储的 程序失败

我受够了。请给我一些建议

谢谢,
伊万·埃里肖夫。

我试过了,验证了你的正确性。这是v10中的一个新问题。它应该在第一次服务更新中修复。如果AEP有输入参数,则
\u error
表中的错误详细信息将丢失。目前尚不清楚是否有一个立即的解决办法


根据程序将要执行的工作,可以使用另一种方法。如果脚本没有直接与操作系统交互(例如,进行系统调用),那么脚本可能是一个不错的选择。它们有时更容易开发。这个过程也有帮助。

谢谢Mark,但我必须执行一个复杂的逻辑,这很难用SQL脚本实现。如果你能提供另一种解决方法(当然,如果你能找到的话),我将非常感激。@ie:另一种可能性(很差)可能是关闭缓存。设置配置参数MAX\u CACHE\u MEMORY=0。我还没有试过,所以我不确定这是否行得通。但是问题是间接发生的,因为在v10中执行了一些与输入/输出参数相关的新缓存。这些是回归测试应该抓住的基本问题类型。。。但是,奇怪的是,它被错过了。不幸的是,在测试期间也没有发现。
EXECUTE PROCEDURE TestSP_AEP (123);