Re: [Lazarus] locate command for dBase

2023-05-27 Thread Werner Pamler via lazarus

The attached project demonstrates that dbf.Locate works as expected.

<>
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] locate command for dBase

2023-05-26 Thread wkitty42--- via lazarus

On 5/26/23 7:31 AM, Michael Van Canneyt via lazarus wrote:

On Fri, 26 May 2023, wkitty42--- via lazarus wrote:
i don't see where you did a seek to the record you are trying to get to... 
granted, it has been a long while since i did anything with FPC/Lazarus or an 
dBase databases but it would seem there should be an obvious seek action... 
maybe...


the locate() is a seek action.



a... i thought it just located whatever is being sought and one still needed 
to actually seek to the record...



But without more info/code it is difficult to give an answer to the OP's
question.


agreed :)

--
 NOTE: No off-list assistance is given without prior approval.
   *Please keep mailing list traffic on the list where it belongs!*
--
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] locate command for dBase

2023-05-26 Thread Michael Van Canneyt via lazarus



On Fri, 26 May 2023, wkitty42--- via lazarus wrote:


On 5/25/23 8:12 PM, john Ward via lazarus wrote:

   if
   temp.Locate('temp_no', (tempid),[loPartialkey])
   then
   begin

     showmessage('we found the field or Partial' + tempid);
     showmessage('current temp_no is ');
     tno := temp.FieldbyName('temp_no').asString;
    showmessage('tempno is = ' + tno);
     end;
The above code, executes the 'then', shows me what was searched for BUT 

when a
data field is displayed, the original record is pointed to, NOT a record 
further 

in the database.



i don't see where you did a seek to the record you are trying to get to... 
granted, it has been a long while since i did anything with FPC/Lazarus or an 
dBase databases but it would seem there should be an obvious seek action... 
maybe...


the locate() is a seek action.

But without more info/code it is difficult to give an answer to the OP's
question.

Michael.-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] locate command for dBase

2023-05-26 Thread wkitty42--- via lazarus

On 5/25/23 8:12 PM, john Ward via lazarus wrote:

   if
   temp.Locate('temp_no', (tempid),[loPartialkey])
   then
   begin

     showmessage('we found the field or Partial' + tempid);
     showmessage('current temp_no is ');
     tno := temp.FieldbyName('temp_no').asString;
    showmessage('tempno is = ' + tno);
     end;
The above code, executes the 'then', shows me what was searched for BUT when a
data field is displayed, the original record is pointed to, NOT a record further 
in the database.



i don't see where you did a seek to the record you are trying to get to... 
granted, it has been a long while since i did anything with FPC/Lazarus or an 
dBase databases but it would seem there should be an obvious seek action... maybe...



--
 NOTE: No off-list assistance is given without prior approval.
   *Please keep mailing list traffic on the list where it belongs!*
--
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


[Lazarus] locate command for dBase

2023-05-25 Thread john Ward via lazarus
I need to find records in an indexed dBase file based on a key.
version is 2.2.6 fpc 3.2.2  x86_64.
 
The following is the test I did in the program. The dBase file is temp.dbf and 
the index if temp.mdx; The program includes tDbf and tDatasource. I also have 
tDbnavigator in the program, all seems to be working, adding, editing records. 
I need to be able to 'find' a
record in the data base, so editing can be done, without going through record 
by record.
 
procedure Ttempf.Edit1Exit(Sender: TObject);
var
   tempid : string;
   tno : string;
begin
 tempid := edit1.text;
 
  if
  temp.Locate('temp_no', (tempid),[loPartialkey])
  then
  begin
   
showmessage('we found the field or Partial' + tempid);
showmessage('current temp_no is ');
tno := temp.FieldbyName('temp_no').asString;
   showmessage('tempno is = ' + tno);
end;
 
The above code, executes the 'then', shows me what was searched for BUT when a
data field is displayed, the original record is pointed to, NOT a record 
further in the database.
 
Driving myself crazy trying to find problem, It is a short drive, many times.
any Help would be appreciated.
 
j...@mbstemps.com
 

John A. Ward, President

 -- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus