У меня есть базовая dll, которая содержит общие методы базы данных, такие как getconnectionstring, exectescalar, executononquery, doselect и т. Д. Я работаю с (vb.net или C#) и оракулом. Теперь мне нужно написать метод для транзакции, где я могу иметь 2-3 sqls и должен зафиксировать, только если все они работают. Я пытаюсь понять, как это сделать. Мне нужно sql1, чтобы вернуть какое-то уникальное поле, которое будет использоваться для вставки в sql2 и/или sql3.Методы доступа к данным Sql oracle
private sub executeTransaction(byval sql1 as string,byval sql2 as string,byval sql3 as string)
code to begin transaction
execute sql1 returning unique id to a local field 'since this id may be different based on sql, how to handle this?
execute sql2
execute sql3 optional
if exception rollback
commit on finally block and then close the connection object
end sub
Я ищу предложения/рекомендации по написанию вышеуказанного метода. Заранее спасибо.
Благодарю вас. Это будет wo гк. Один быстрый вопрос, как я могу заставить executescalar вернуть идентификатор последней вставленной строки? Я думал об использовании executeonquery с предложением о возврате. – cableload
Все 'ExecuteScalar' does возвращает значение первого столбца первой строки результата, поэтому вам нужно будет сделать' SELECT' в конце вашей партии. «ExecuteNonQuery» с параметром возврата может быть более чистым. –