Article View: borland.public.cppbuilder.database.ado
Article #1831Re: Index search method to use
From: Viatcheslav V. Vassiliev
Date: Wed, 21 Jan 2004 14:57
Date: Wed, 21 Jan 2004 14:57
102 lines
5058 bytes
5058 bytes
Index is available only on server-side cursor. Do not add IndexDefs or
IndexFields, just set IndexName property.
//------------------------------------------
Regards,
Vassiliev V. V.
http://www.managed-vcl.com - using .Net objects in Delphi + ADO.Net
http://www.oledbdirect.com - The fastest way to access MS SQL Server,
MS Jet (Access) and Interbase (through OLEDB)
"Alain M. Dube" <adube@cadencesoftware.com> �������/�������� � ��������
���������: news:400e87ea$1@newsgroups.borland.com...
> Thanks for the info.
>
> When opening the TADOTable object after having set the
> Connection->CursorLocation = clUseServer, an EDatabaseError is generated
> stating "A component named 'ContainerByParent' already exists." The
> 'ContainerByParent' component is an index within the just opened table.
If
> I use the clUseClient CursorLocation option, the Table Open succeeds, but
> Seeks fail.
>
> Any thoughts?
>
> Regards;
>
> Al Dube
>
>
> "Viatcheslav V. Vassiliev" <support@oledbdirect.com> wrote in message
> news:400e20a7$1@newsgroups.borland.com...
> > With indeces you should use Seek() method. This requires CursorLocation
=
> > clUseServer and TableDirect = True.
> >
> > //------------------------------------------
> > Regards,
> > Vassiliev V. V.
> > http://www.managed-vcl.com - using .Net objects in Delphi + ADO.Net
> > http://www.oledbdirect.com - The fastest way to access MS SQL Server,
> > MS Jet (Access) and Interbase (through OLEDB)
> >
> > "Alain M. Dube" <adube@cadencesoftware.com> �������/�������� � ��������
> > ���������: news:400e1da8$1@newsgroups.borland.com...
> > > I've encountered a problem with ADO and Access:
> > >
> > > My access database has five tables, each table as multiple indices.
> > >
> > > I'm using a TADOConnection and a TADOTable to access the MS Access DB;
> > code
> > > below used to setup the objects:
> > >
> > > #define CONNECT_STRING_FMT "Provider=Microsoft.Jet.OLEDB.4.0;Data
> > > Source=%s;User Id=admin;Password="
> > >
> > > // Create a DB Connection COM Object Instance
> > > mpConnection = new TADOConnection(NULL);
> > > mpConnection->ConnectOptions = coConnectUnspecified;
> > > mpConnection->CursorLocation = clUseClient;
> > > mpConnection->IsolationLevel = ilCursorStability;
> > > mpConnection->LoginPrompt = false;
> > > mpConnection->Mode = cmShareDenyNone;
> > > strConnectionString = Format(CONNECT_STRING_FMT,
> > > OPENARRAY(TVarRec, (strMediaLibraryDBPath)));
> > > mpConnection->ConnectionString = strConnectionString;
> > > mpConnection->Connected = true;
> > >
> > > // Create a Table Object Instance for the Container Table
> > > mpContainerTable = new TADOTable(NULL);
> > > mpContainerTable->Active = false;
> > > mpContainerTable->Connection = mpConnection;
> > > mpContainerTable->CursorType = ctKeyset;
> > > mpContainerTable->TableName = TABLE_NAME_CONTAINER;
> > > mpContainerTable->IndexName = INDEX_NAME_PRIMARY;
> > > mpContainerTable->Active = true;
> > >
> > > { ... repeat for each addition table... }
> > >
> > > I intend on doing all of the normal database management stuff: a)
add,
> > > modify and delete records, b) search tables using various indices, c)
> > > transaction bracketing, etc. What method is recommended for doing
> > > index-based search using a relational operator?
> > >
> > > example: get record whose parentID >= 10
> > >
> > > In DAO, the recordset.seek() allows a relational operator on one or
more
> > key
> > > values against the current index. Is there an equivalent?
> > >
> > > Thanks in advance for your help.
> > >
> > > Regards;
> > >
> > > Al Dube
> > >
> > >
> >
> >
>
>
Technical Details
Message-ID:
<400e9347$1@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mailReferences:
<400e1da8$1@newsgroups.borland.com> <400e20a7$1@newsgroups.borland.com> <400e87ea$1@newsgroups.borland.com>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII X-Google-Thread: 10698b,cb3d0ba8006d975c X-Google-Attributes: gid10698b,public X-Google-ArrivalTime: 2004-01-21 07:10:30 PST From: "Viatcheslav V. Vassiliev" <support@oledbdirect.com> Newsgroups: borland.public.cppbuilder.database.ado References: <400e1da8$1@newsgroups.borland.com> <400e20a7$1@newsgroups.borland.com> <400e87ea$1@newsgroups.borland.com> Subject: Re: Index search method to use Date: Wed, 21 Jan 2004 17:57:10 +0300 Lines: 104 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 NNTP-Posting-Host: 213.234.218.42 Message-ID: <400e9347$1@newsgroups.borland.com> X-Trace: newsgroups.borland.com 1074697031 213.234.218.42 (21 Jan 2004 06:57:11 -0700) Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail