ADO w/ MSSQL Server 2000 stops responding

I'm using Delphi 6 and I'm having a problem that I have been unable to
resolve with using the ADO components included with Delphi.

The problem is after my app does a few inserts, deletes, and selects it
stops being able to talk to MSSQL Server (which is on the same machine).  It
doesn't take many inserts, deletes, and selects to kill it.  I am using
transactions for inserting and deleting rows... I don't need them for
select's, right?  The ADO component simply returns the error saying that it
times out running the SQL statement.  But all the while I can continue using
the Enterprise Manager without any problems so I know the SQL Server is
still responding.  My entire application freezes at this point and when I
pause it it shows that it's at: ntdll.ZwWaitForSingleObject.  My SQL
statements are not complex... they are simply SELECT a FROM tablea WHERE
fielda = whatever type of thing.  Same with the INSERTs.  I'm not using any
UNIONS or JOINS.  This is all within a single database and I work with one
table at a time.  The tables have less than 1,000 rows so I know it's not a
size problem.

I used to use DiamondADO when I was running Delphi 5 and never had this
problem.

Has anyone else experienced this problem or know how to fix it?  This is a
very serious problem and I may have to dump Delphi for good, even though I'd
really hate to do that.