PostgreSQL не может найти вставленную запись в приложенииC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 PostgreSQL не может найти вставленную запись в приложении

Сообщение Anonymous »

Я сделал триггер

Код: Выделить всё

CREATE OR REPLACE TRIGGER tr_batch_insert_update
AFTER INSERT OR UPDATE
ON operation.batch
FOR EACH ROW
EXECUTE FUNCTION operation.fn_tr_batch_insert_update();
в функции

Код: Выделить всё

CREATE OR REPLACE FUNCTION operation.fn_tr_batch_insert_update()
RETURNS trigger
LANGUAGE 'plpgsql'
COST 1
VOLATILE LEAKPROOF
AS $BODY$
BEGIN
CALL integration.pr_send_uuid('batch', NEW.uid);
RETURN NULL;
END;
$BODY$;
Я вызываю процедуру, которая вызывает метод API в сервисе C#. Сервис написан с использованием npgSql и Scaffolding DB. Это основная часть интеграции.pr_send_uuid

Код: Выделить всё

select xmlelement(name "soapenv:Envelope",
xmlattributes('http://schemas.xmlsoap.org/soap/envelope/' AS "xmlns:soapenv",
CONCAT('http://schemas.datacontract.org/2024/07/',entity) AS namespace),
xmlelement(name "soapenv:Header"),
xmlelement(name "soapenv:Body",
xmlelement(name procname,
xmlelement(name "uid", uid)
)
)
)
into body;
body := REPLACE(body, 'procname', procname);
body := REPLACE(body, 'namespace', namespace);
SELECT integration.fn_call_api(url, method, body, 'text/xml; charset=utf-8', isauth, username, password)
INTO response;
Сервис пытается получить данные вставленной записи со всеми столбцами.
Но каждый раз, когда я получаю, эта запись не найдена.
Когда я отключите триггер и вызовите процедуру postgres после вставки записи, все в порядке и данные записи поступают в приложение.
Почему программа C# не может найти вставленную запись? И как лучше всего запустить событие вставки записи в приложении?
Полагаю, это лежит в какой-то области понимания транзакций.

Подробнее здесь: https://stackoverflow.com/questions/790 ... pplication
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»