Advanced Data Server: проблема с таблицей '__error' в хранимых процедурах на основе .NET с параметрами - PullRequest
1 голос
/ 11 июня 2010

Я создал AEP на основе .NET для бета-версии ADS v10. Вот код процедуры. Сторона .NET:

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";

и

CREATE PROCEDURE TestSP_AEP_Empty() -- !NOTE! without parameters
   FUNCTION "TestSP" IN COMLIBRARY "MyNamespace.MyClass";

Со всеми этими вещами у меня следующее. Звонок

EXECUTE PROCEDURE TestSP_AEP_Empty();

выдает ошибку:

poQuery: ошибка 7200: ошибка AQE: состояние = HY000; NativeError = 5154; [Решения iAnywhere] [Advantage SQL] [ASA] Ошибка 5154: выполнение хранимая процедура не удалась. ProcError 20683: это сообщение об ошибке теста

и звонок

EXECUTE PROCEDURE TestSP_AEP (123);

выдает ошибку:

poQuery: ошибка 7200: ошибка AQE: состояние = HY000; NativeError = 5154; [Решения iAnywhere] [Преимущество SQL] [ASA] Выполнение сохраненных процедура не удалась.

Я застрял с этим. Пожалуйста, совет.

Спасибо, Иван Ерышов.

1 Ответ

2 голосов
/ 11 июня 2010

Я попробовал это и подтвердил, что вы правы.Это новая проблема в v10.Это должно быть исправлено в первом обновлении сервиса.Детали ошибки из таблицы __error теряются, если в AEP есть входные параметры.Не ясно, что для этого есть немедленное решение.

В зависимости от работы, которую будет выполнять процедура, альтернативным подходом может быть использование хранимых процедур со скриптом .Если скрипт не взаимодействует напрямую с ОС (например, делает системные вызовы), тогда сценарий может быть хорошим вариантом.Они иногда проще в разработке.И SQL-отладчик также может помочь с этим процессом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...