dbTalk Databases Forums  

Pervasive 2000i

comp.databases.btrieve comp.databases.btrieve


Discuss Pervasive 2000i in the comp.databases.btrieve forum.



Reply
 
Thread Tools Display Modes
  #11  
Old   
Chris Smith
 
Posts: n/a

Default Re: Pervasive 2000i - 10-18-2004 , 02:39 PM






Don,

This works fine:

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open "TRANSACTIONS", connstring, adOpenDynamic, adLockReadOnly,
adCmdTableDirect
rst.Index = 0
rst.Seek Array("888881", "02865"), adSeekAfterEQ


This code snip, sets the index and then seeks the recordset for the correct
record.

I have confirmed with the third party that the ddfs are current. They also
confirmed the indexes they use in their applications and they are exactly
how I am trying to use them. They also confirmed access methodology and
programming languages as Btrieve API from Clarion and Delphi.

Again, many thanks for your help with this.

Chris Smith



Reply With Quote
  #12  
Old   
Leonard
 
Posts: n/a

Default Re: Pervasive 2000i - 10-18-2004 , 11:31 PM






Unfortunately in this case it does not matter what BtSearch says as
you are not accessing the data through BtSearch.

To check and see if the DDFs match the data files go into the
Pervasive Control Center.
Under the engines select the server.
Under the server (hopefully local on the server) select the database.
Right-Click on the database, select Tasks -> Check Database.
Add all the tables, then hit run.

If it passes then at least the record length, indexes, index data
types, index flags match. The rest of the record is unknown.

If it fails then the SQL engine may not be able to properly use the
indexes.

However as has already been mentioned it is only valid to use the
first segment of a segmented index (or partial matching from the
first). It is not valid to try and use a segment of an index that is
not first to find data.

Leonard

On Mon, 18 Oct 2004 16:29:49 +0100, "Chris Smith"
<chris (AT) bitsltd (DOT) co.uk> wrote:

Quote:
Don

Actual code used...

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Index = 0
rst.Open "PALLET", connstring, adOpenDynamic, adLockReadOnly,
adCmdTableDirect
rst.Seek Array("888881", 1), adSeekAfterEQ

Index Data from BtSearch

Key Number Seg Field Name Start Pos Len Dups
Mod Descend Supplimental
0 0 desp_order_no 0 4
Yes Yes No No
0 1 pallet_number 8 4
Yes Yes No No

Many thanks for your continued help with this

Chris Smith



Reply With Quote
  #13  
Old   
Chris Smith
 
Posts: n/a

Default Re: Pervasive 2000i - 10-19-2004 , 06:27 AM



All,

Many thanks for you support with this problem.

Thanks to your comments, I have been able to resolve the problem which was
eventually traced to index naming conventions.

Once again, many thanks

Chris Smith
"Chris Smith" <chris (AT) bitsltd (DOT) co.uk> wrote

Quote:
Don,

This works fine:

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open "TRANSACTIONS", connstring, adOpenDynamic, adLockReadOnly,
adCmdTableDirect
rst.Index = 0
rst.Seek Array("888881", "02865"), adSeekAfterEQ


This code snip, sets the index and then seeks the recordset for the
correct
record.

I have confirmed with the third party that the ddfs are current. They
also
confirmed the indexes they use in their applications and they are exactly
how I am trying to use them. They also confirmed access methodology and
programming languages as Btrieve API from Clarion and Delphi.

Again, many thanks for your help with this.

Chris Smith





Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.