I work with ADO a lot and I never have that problem. However I never do a record count with it. I don't know what components you use, but if you use a RecordSet to retrieve the records you can solve the problem like this:

[pascal]If RS.EOF Then
// No records are returned
Else
// Do whatever you need to do with the records...
[/pascal]

RS = ADO RecordsSet, I always create it like this this:

[pascal]var RS : OleVariant;
RS := CreateOleObject('ADODB.Recordset');[/pascal]

I never get any errors... Do you use the Delphi components or do you call ADO using OLE?