M
Mullin Yu
As subject, if the sp returns a recordset, i can use OlbDbAdapter to get it,
but how about just a return value from sp, e.g. 0 - successful; 1 - error
like
lter proc UpdateJobItemStatus @JobItemID as bigint, @Status as int as
BEGIN
Begin Tran
-- Fail => locked, release locked, increase NoOfFailure
If @Status = 4
BEGIN
Update OutboundQueueItem set Status = @Status, NoOfFailure=NoOfFailure+1
where JobItemID = @JobItemID
IF (@@ERROR <> 0) GOTO ERR_HANDLER
END
ELSE
BEGIN
Update OutboundQueueItem set Status = @Status where JobItemID = @JobItemID
IF (@@ERROR <> 0) GOTO ERR_HANDLER
END
Commit Tran
RETURN 0
ERR_HANDLER:
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
RETURN 1
END
===========================================
OleDbCommand oleCommand = new OleDbCommand();
oleCommand.CommandText = "UpdateJobItemStatus";
oleCommand.CommandType = CommandType.StoredProcedure;
oleCommand.Connection = conn;
OleDbParameter paramJobItemID = new OleDbParameter("@JobItemID",
OleDbType.BigInt, 8, ParameterDirection.Input, false, 0, 0, "JobItemID",
DataRowVersion.Current, lngJobItemID);
OleDbParameter paramStatus = new OleDbParameter("@Status",
OleDbType.Integer, 4, ParameterDirection.Input, false, 0, 0, "Status",
DataRowVersion.Current, intStatus);
oleCommand.Parameters.Add(paramJobItemID);
oleCommand.Parameters.Add(paramStatus);
......
......
but how about just a return value from sp, e.g. 0 - successful; 1 - error
like
lter proc UpdateJobItemStatus @JobItemID as bigint, @Status as int as
BEGIN
Begin Tran
-- Fail => locked, release locked, increase NoOfFailure
If @Status = 4
BEGIN
Update OutboundQueueItem set Status = @Status, NoOfFailure=NoOfFailure+1
where JobItemID = @JobItemID
IF (@@ERROR <> 0) GOTO ERR_HANDLER
END
ELSE
BEGIN
Update OutboundQueueItem set Status = @Status where JobItemID = @JobItemID
IF (@@ERROR <> 0) GOTO ERR_HANDLER
END
Commit Tran
RETURN 0
ERR_HANDLER:
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
RETURN 1
END
===========================================
OleDbCommand oleCommand = new OleDbCommand();
oleCommand.CommandText = "UpdateJobItemStatus";
oleCommand.CommandType = CommandType.StoredProcedure;
oleCommand.Connection = conn;
OleDbParameter paramJobItemID = new OleDbParameter("@JobItemID",
OleDbType.BigInt, 8, ParameterDirection.Input, false, 0, 0, "JobItemID",
DataRowVersion.Current, lngJobItemID);
OleDbParameter paramStatus = new OleDbParameter("@Status",
OleDbType.Integer, 4, ParameterDirection.Input, false, 0, 0, "Status",
DataRowVersion.Current, intStatus);
oleCommand.Parameters.Add(paramJobItemID);
oleCommand.Parameters.Add(paramStatus);
......
......