Я использую базу данных SQL Anywhere от Sybase. v 11.0.1
У меня есть следующая хранимая процедура для вставки строки. я
вернуть переменную @@ identity с помощью оператора select.
ALTER PROCEDURE "DBA"."Portal_InsertHeader"( in
theimi integer, in theUser long varchar, in
theNextServiceDate date)
RESULT( ident integer )
BEGIN
insert into
InvoiceCreditHeader(imi,createdby,nextServiceDate)
values(theimi,theUser,theNextServiceDate);
select @@identity;
END
В моем веб-приложении ASP.NET у меня есть следующее в
SqlDataSource. Я использую тип вывода в последнем
параметр.
<asp:SqlDataSource ID="sqldsHeader" runat="server"
ConnectionString="<%$ ConnectionStrings:MSPortal %>"
ProviderName="<%$
ConnectionStrings:MSPortal.ProviderName %>"
InsertCommand="Call
Portal_InsertHeader(?,?,?)"
InsertCommandType="StoredProcedure">
<InsertParameters>
<asp:Parameter Name="IMI" Type="Int32" />
<asp:Parameter Name="USER" Type="String" />
<asp:Parameter Name="NextServiceDate"
Type="DateTime" />
<asp:Parameter direction="Output"
name="HeaderID" type="Int32" />
</InsertParameters>
<SelectParameters>
<asp:Parameter Name="ID" Type="Int32"
DefaultValue="0" />
</SelectParameters>
</asp:SqlDataSource>
Когда я вызываю метод .Insert, строка вставляется нормально, но
когда я пытаюсь проверить выходной параметр в «Вставлено»
метод я получаю нулевое значение.
Так что мне нужно изменить, чтобы получить доступ к выходу
переменная в коде ASP.NET?