28. januar 2005 - 12:50Der er
6 kommentarer og 1 løsning
Hjælp til error handling ønskes.
Her ses et af mine spæde forsøg tpå at bruge Stored Procedures i en SQL server:
ALTER PROCEDURE dbo.spPMDeleteOption @User varchar(50), @ErrorCode int = 0 OUTPUT AS SET NOCOUNT ON
BEGIN TRANSACTION
Delete FROM tblPMXXXOptions WHERE [User] = @User SELECT @ErrorCode = @@ERROR IF @ErrorCode != 0 BEGIN ROLLBACK TRANSACTION RETURN @ErrorCode END COMMIT TRANSACTION RETURN 0
I et svagt forsøg på at teste om min error handler virker, har jeg ændret tabel navnet fra tblPMOptions til tblPMXXXOptions. Her regnede jeg så med at få en fejl. Jeg bruger VS.NET til at kode og debugge i og den giver følgende svar: Running dbo."spPMDeleteOption" ( @User = gg, @ErrorCode = 10 ).
Invalid object name 'tblPMXXXOptions'. Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 0, current count = 1. No rows affected. (0 row(s) returned) @ErrorCode = 10 @RETURN_VALUE = Finished running dbo."spPMDeleteOption".
ALTER PROCEDURE dbo.spPMDeleteOption @User varchar(50), @ErrorCode int = 0 OUTPUT AS SET NOCOUNT ON
BEGIN TRANSACTION
Delete FROM tblPMXXXOptions WHERE [User] = @User SELECT @ErrorCode = @@ERROR IF @ErrorCode != 0 BEGIN ROLLBACK TRANSACTION RETURN @ErrorCode END ELSE BEGIN COMMIT TRANSACTION RETURN 0 END
Jeg tror (ved det ikke) at det er fordi fejlen er så fatal. Prøv i stedet at fremkalde en fejl ved at update en felt der er index, det vil måske give et andet resultat.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.