I've got pretty familiar with this error. In fact, I have 8 connections to work around this error. But this time I'm stumped.
using Delphi 7, sDac 4.35.1.16,
Microsoft SQL Server: 09.00.3054
Microsoft SQL Native Client: 9.00.3042.00
all of the connections have multiple active result sets = true.
I have one table on one connection, with no other active datasets on that connection.
The table has 7 fields, 261 records, no filtersql statement. It is not attached to any controls.
I can only get this table to open without error about 1/2 the time. The rest of the time, I get the
Row handles must all be released before new ones can be obtained.
error.
This one has me stumped. I cleared it up by putting a 'dummy' filtersql statement (which results in 0 records), then opening the table, then setting the filtersql = ''.
any ideas?
Row handles must be released error
I have tracked it down to this line (after removing the dummy filtersql statement):
// aTable.Options.StrictUpdate := false;
I uncomment, I get the error.
I comment, I don't get the error.
I am not calling refresh record, I do not have triggers, and no data updates are taking place. I am opening a table.
I am setting it to FALSE.
Why would I be getting the error?
from the help file :
TCustomDADataSet raises exception when the number of updated or deleted records is not equal 1. Setting this option also causes an exception if RefreshRecord procedure returns more than one record. The exception does not occur when you use non-SQL block.
Note: There can be problems if this option is set to True and triggers for UPDATE, DELETE, REFRESH commands that are defined for the table. So it is recommended to disable (set to False) this option with triggers.
// aTable.Options.StrictUpdate := false;
I uncomment, I get the error.
I comment, I don't get the error.
I am not calling refresh record, I do not have triggers, and no data updates are taking place. I am opening a table.
I am setting it to FALSE.
Why would I be getting the error?
from the help file :
TCustomDADataSet raises exception when the number of updated or deleted records is not equal 1. Setting this option also causes an exception if RefreshRecord procedure returns more than one record. The exception does not occur when you use non-SQL block.
Note: There can be problems if this option is set to True and triggers for UPDATE, DELETE, REFRESH commands that are defined for the table. So it is recommended to disable (set to False) this option with triggers.