My server-side data access layer uses ADO to access a Sybase database. We are using Merant 3.5 ODBC driver. The data access layer (a DLL) is deployed in MTS with ‘No Transactions Required’.

My client application is a very simple VB application that uses the data access layer to execute a stored proc. The stored proc contains a single line that inserts into a TEMPORARY TABLE.

There is no concurrency when two (or more) users access the database using the data access layer. Data retrieval seems to be serialized - If User 1 starts first, User 2 gets results only after User1 gets his/her results.

The problem occurs only when the stored proc inserts into a temporary tables AND the data access layer is in MTS.

The problem does not occur when data access layer is taken outside of MTS (while still using temp tables in the stored proc)

It seems that the combination of MTS and temp tables in the stored proc produces the problem.

Any ideas?