If you have a stored procedure that may return one row or many rows, but
you only actually want the first row, should you use a datareader or
dataset, or will just reading the output parameters give you the first
row?
CREATE PROCEDURE CCFindData
(
@sessionid bigint output,
@purchaseid bigint output
)
AS
select @sessionid = sessionid, @purchaseid = purchaseid
from attemptedpurchase
where status = 0
GO
DResult drFindData;
lngCurrentSession = 0;
lngCurrentID = 0;
SqlConnection objConnection = GetConnection(strConnectMcCallumTest);
SqlCommand objCommand = new SqlCommand("CCFindData", objConnection);
objCommand.CommandType = CommandType.StoredProcedure;
SqlParameter prmSessionID = new SqlParameter("@SessionID",
SqlDbType.BigInt, 8);
prmSessionID.Direction = ParameterDirection.Output;
objCommand.Parameters.Add(prmSessionID);
SqlParameter prmPurchaseID = new SqlParameter("@PurchaseID",
SqlDbType.BigInt, 8);
prmPurchaseID.Direction = ParameterDirection.Output;
objCommand.Parameters.Add(prmPurchaseID);
try
{
objConnection.Open();
objCommand.ExecuteNonQuery();
objConnection.Close();
if (prmSessionID.Value != System.DBNull.Value)
{
strPurchaseID = Convert.ToString(prmPurchaseID.Value);
strSessionID = Convert.ToString(prmSessionID.Value); drFindData =
DResult.Valid;
}
else
{
drFindData = DResult.Invalid;
}
}
catch
{
drFindData = DResult.Error;
}
Cheers,
Mike
*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!