Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/Midas/TClientDataSet    [ Add a report in this area ]  
Report #:  2626   Status: Closed
Inability to use ftLargeInt as an index with a tClientDataset
Project:  Delphi Build #:  4.453
Version:    7.0 Submitted By:   Steven Kamradt
Report Type:  Basic functionality failure Date Reported:  10/9/2002 9:39:25 AM
Severity:    Serious / Highly visible problem Last Updated: 6/27/2006 12:27:15 PM
Platform:    95, 98, 2000, NT, XP Internal Tracking #:   160140
Resolution: Fixed (Resolution Comments) Resolved in Build: : 7.0.8.1
Duplicate of:  None
Voting and Rating
Overall Rating: (9 Total Ratings)
4.78 out of 5
Total Votes: None
Description
If you set a tClietnDataset field as a ftLargeInt type, the ability to use that field for indexing is lost.

See also report 1050 as I believe the two issues are related more in how the tClientDataset handles bigint or ftLargeInt fields.

Steps to Reproduce:
Compile and launch the attached program.

Press either column title to set that column as the index for the tClientDataset.

The ftLargeInt column will not sort properly and will result in the table being sorted in the order the fields were added to the database.  The ftInteger column works as it should.

Workarounds
None
Attachment
ClientDataset Problem.zip
Comments

Arno Brinkman at 7/1/2003 4:47:14 AM -
We have exactly the same problem that an run-time created Index on a LargeInt doesn't work.

Create an index on a LargeInt field in ClientDataset for example :
  cds.IndexDefs.Add(lCDSIndexName, lFieldName, [ixCaseInsensitive, ixDescending]);
  cds.IndexName := lCDSIndexName;

also the 'default' index method doesn't work :
  cds.IndexFieldNames := lFieldName;

Stephen Everington at 7/14/2003 8:17:50 AM -
I have a problem with largeInt's / TClientDataSets and Locate/Filters that I think is related to this.  I have tracked it down as far as the function tFilterExpr.PutConstant in DBCommon that does not seem to allow for the possibility of Largeint's and hence returns an error (DatabaseErrorFmt(SExprBadConst, [Node^.FData]);)

I would guess that the first case statement (ftSmallInt, ftInteger, ftWord, ftAutoInc) needs ftLargeInt adding, but I'm not brave enough to try altering the supplied functions myself!

I thnik report 4838 is also linked to the same problem

ps I hope this is the correct use of this system as I have not used it before

Dave Rowntree at 5/11/2004 3:26:06 AM -
Fixed in Midas.dll

Server Response from: CODE1