🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.database.ado
Article #1930

Re: Index search method to use

#1930
From: Alain M. Dube
Date: Wed, 21 Jan 2004 15:08
121 lines
5646 bytes
As you can see from the sample code I included in my first post, there is no
IndexDefs or IndexField code, only IndexName = INDEX_NAME_PRIMARY.  The
EDatabaseError occurs after the ->Active = true statement executes.

Regards;

Al

"Viatcheslav V. Vassiliev" <support@oledbdirect.com> wrote in message
news:400e9347$1@newsgroups.borland.com...
> 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: <400e95ed$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-mail
References: <400e1da8$1@newsgroups.borland.com> <400e20a7$1@newsgroups.borland.com> <400e87ea$1@newsgroups.borland.com> <400e9347$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: "Alain M. Dube" <adube@cadencesoftware.com>
Newsgroups: borland.public.cppbuilder.database.ado
References: <400e1da8$1@newsgroups.borland.com> <400e20a7$1@newsgroups.borland.com> <400e87ea$1@newsgroups.borland.com> <400e9347$1@newsgroups.borland.com>
Subject: Re: Index search method to use
Date: Wed, 21 Jan 2004 10:08:26 -0500
Lines: 123
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: 24.2.157.230
Message-ID: <400e95ed$1@newsgroups.borland.com>
X-Trace: newsgroups.borland.com 1074697709 24.2.157.230 (21 Jan 2004 07:08:29 -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