I've written a procedure that uses ODBC SQL Pass-Thru in order to execute several commands on a MS-SQL Server backend. I've set it up so that I'm sending 'BEGIN TRANSACTION', a SQL UPDATE command, and a 'COMMIT TRANSACTION'. I'm trying to invoke some form of row or page locking when I update a table. It works properly and does prevent two sessions from conflicting with one another for a specific row in a table. But what I'm having problems with is in the second session. I've done a SQLSETPROP() to set the QueryTimeout property to ten seconds. When the second session times out it returns a -1 which I then do an AERROR() function.
Finally, my question is this: the AERROR() function is supposed to return two rows if the error is 1526. I'm only getting one row. The fifth element of the array is 0. How do I trap the fact that I've timed out?
Jim White
Time is a wonderful teacher. Unfortunately it kills all of its students.