<pre> ?SQLEXEC(nSql, "EXEC customer_add 'SP001', 'Added through VFP calling a SPROC'") <font color=green>&& works</font> ?SQLEXEC(nSql, "EXEC customer_add 'SP001', 'Added through VFP calling a SPROC'") <font color=green>&& fails because of duplicate key</font> <font color=blue>AERROR</font>(laError) <font color=green>&& get error information</font> lcErrorMessage = laError[2] <font color=green>&& get error message</font> lnErrorId = 0 <font color=green>&& initialize return parameter</font> <font color=green>*-- log error message to error table</font> ?SQLEXEC(nSql, "EXEC error_add ?lcErrorMessage, ?@lnErrorId") <font color=green>&& works</font>
CREATE PROCEDURE customer_add @CustomerId CHAR(5), @CompanyName CHAR(40) AS BEGIN TRANSACTION INSERT INTO customers(CustomerId, CompanyName) VALUES (@CustomerId, @CompanyName) COMMIT TRANSACTION
CREATE PROCEDURE error_add @ErrorMessage VARCHAR(250), @newkey INTEGER OUTPUT AS BEGIN TRANSACTION INSERT INTO errors(ErrorMessage) VALUES (@ErrorMessage) SELECT @newKey = @@IDENTITY COMMIT TRANSACTION>Call a stored procedure