Subject Re: autoincrement problem success?
From Charlie <tm@tc.com>
Date Fri, 20 Oct 2023 02:04:26 -0400
Newsgroups dbase.getting-started

Hi Mervyn......I have this on open with a memory dbf...

form.category1.rowset.locateOptions = 3
                FLTR = FORM.MEMO1.ROWSET.fields["mem"].value
                form.category1.rowset.applyLocate( "cat = '" + fltr + "'" )
                form.category1.rowset.save()

Is this what you are talking about?

I wrote a little program for trains that I converted to coins that is supposed to find duplicates in a field.  Seems like it missed the ones you pointed out.  I tried to run your form, but it looks like the duplicate results are already there.  How does that work?

Mervyn Bick Wrote:

> On 2023/10/18 18:53, Charlie wrote:
> > Think I have fixed this.  When I was running the fixit program I didn't have the correct path to the table.  I just ran it with the correct path and instead of getting lw = 6, it did come up with 293.  Thanks so much for the help I received.  Sorry for my stupid~
>
> I assume you want to use the contents of the LR field so as to be able
> to go direct to a specific record in the coins table.  In other words so
> as to be able to emulate the RECNO() used in XDML in a GO command.
>
> As an aside, OODML doesn't implement the GO command and the rowset
> object's goto() method only works with bookmarks.  If you use an autoinc
> field as a primary key in the coins table you will need to use the
> rowset's applyLocate() method to move the rowpointer to a specific record.
>
> form.coins1.rowset.applyLocate("lr =
> "+form.test_floss1.rowset.fields['rec_no'].value)
>
> A little example form is attached
>
>
> You stated elsewhere that, because you were having problems with the
> autoinc field, you had added the SKU field to the table to use in place
> of the LR field.
>
> Be aware that the coins table has three duplicate SKU values so, as it
> stands, values in the field can't be used as a primary key to go to one
> specific record in the coins table.
>
> sku                   lr
> LC1909P               74
> LC1909P               76
> LC1909S               75
> LC1909S               78
> LC1922D              114
> LC1922D              116
>
> Mervyn.
> if file('test_floss.dbf')
> // drop table test_floss
> endif
>
> if not file('test_floss.dbf')
>    create table test_floss  (id autoinc,rec_no integer)
>    insert into test_floss  (rec_no) values (74)
>    insert into test_floss  (rec_no) values (75)
>    insert into test_floss  (rec_no) values (76)
>    insert into test_floss  (rec_no) values (78)
>    insert into test_floss  (rec_no) values (114)
>    insert into test_floss  (rec_no) values (116)
> endif
>
> ** END HEADER -- do not remove this line
> //
> // Generated on 2023-10-19
> //
> parameter bModal
> local f
> f = new test_coinsForm()
> if (bModal)
>    f.mdi = false // ensure not MDI
>    f.readModal()
> else
>    f.open()
> endif
>
> class test_coinsForm of FORM
>    with (this)
>       onOpen = class::FORM_ONOPEN
>       height = 16.0
>       left = 3.7143
>       top = 0.5455
>       width = 119.8571
>       text = ""
>    endwith
>
>    this.COINS1 = new QUERY(this)
>    with (this.COINS1)
>       left = 6.0
>       width = 5.0
>       height = 1.0
>       sql = 'select * from "D:\Examples\Plus2019\COINS.DBF"'
>       active = true
>    endwith
>
>    this.test_floss1 = new QUERY(this)
>    with (this.test_floss1)
>       left = 75.0
>       top = 1.0
>       width = 5.0
>       height = 1.0
>       sql = 'select * from "D:\Examples\Plus2019\test_floss.DBF"'
>       active = true
>    endwith
>
>    this.GRID1 = new GRID(this)
>    with (this.GRID1)
>       dataLink = form.coins1.rowset
>       height = 7.5
>       left = 4.0
>       top = 0.2727
>       width = 106.1429
>    endwith
>
>    this.GRID2 = new GRID(this)
>    with (this.GRID2)
>       onSelChange = class::GRID2_ONSELCHANGE
>       dataLink = form.test_floss1.rowset
>       height = 6.8636
>       left = 8.7143
>       top = 8.5455
>       width = 37.8571
>    endwith
>
>    this.ENTRYFIELD1 = new ENTRYFIELD(this)
>    with (this.ENTRYFIELD1)
>       dataLink = form.coins1.rowset.fields["lr"]
>       height = 1.0
>       left = 67.7143
>       top = 11.1818
>       width = 8.0
>    endwith
>
>    this.TEXTLABEL1 = new TEXTLABEL(this)
>    with (this.TEXTLABEL1)
>       height = 1.0
>       left = 69.2857
>       top = 10.0
>       width = 12.0
>       text = "LR"
>    endwith
>
>    this.rowset = this.coins1.rowset
>
>    function GRID2_onSelChange()
>       form.coins1.rowset.applyLocate("lr = "+form.test_floss1.rowset.fields['rec_no'].value)
>       return
>
>    function form_onOpen()
>       form.coins1.rowset.applyLocate("lr = "+form.test_floss1.rowset.fields['rec_no'].value)
>       return
>
> endclass
>