[[https://www.revelation.com/|Sign up on the Revelation Software website to have access to the most current content, and to be able to ask questions and get answers from the Revelation community]]
==== Index update form/routine (OpenInsight Specific) ====
=== At 29 APR 1998 05:47:46PM B. Cameron wrote: ===
{{tag>"OpenInsight Specific"}}
Can I call the Database Mgr update index form/routine from within my own form?
----
=== At 29 APR 1998 10:30PM Bruce Cameron wrote: ===
Bruce,
If you're looking at the Update_Index routine then yes, you can call it from pretty much anywhere.
----
=== At 30 APR 1998 08:03AM Edipus wrote: ===
Thanks,
I don't remember answering my own question?
Who said that?
----
=== At 30 APR 1998 10:48AM Dave Pociu wrote: ===
Actually, it was me... that's what happens when I try to answer questions at 11:30 at night.
And before you ask, no, I wasn't hitting the bottle at the time ;)
----
=== At 30 APR 1998 12:16PM B. Cameron wrote: ===
Fair enough Dave. how are ya?
So I guess I need to create my own forms to perform the index update
visual process as seen in the database mgr.?
----
=== At 30 APR 1998 12:42PM Dave Pociu wrote: ===
Well, if you want the exact forms from DB Manager, I'm not really sure. They might be OI forms but I didn't take the time to look for them. I'll let you know if I do.
On the other hand you can probably quickly whip something up using LIST_INDEX, CREATE_INDEX and UPDATE_INDEX if needed.
----
=== At 30 APR 1998 01:50PM BC wrote: ===
Thanks, that's what I have been doing. Just wanted to see if I had to
recreate the wheel.
Bruce
----
=== At 30 APR 1998 05:11PM BC wrote: ===
Dave,
Here's part of what I ended up doing....
Declare Subroutine Set_Property,List_Index
Declare Function Get_Property
Set_Property ("SYSTEM", "RECEIVER", @window:".EDITBOX1")
Set_Property (@window: ".EDITBOX1", "TEXT", "")
Call List_Index('' , '' , '')
Tables=Get_Property (@window: ".EDITBOX1","TEXT")
swap \0D0A\ with @vm in Tables
Set_Property ("SYSTEM", "RECEIVER", "")
swap @vm with @fm in Tables
tot=count(Tables,@fm) + (Tables # "")
iTables="
for val=1 to tot
Locate Tables In iTables Using @fm Setting Pos Else
if Tables1,3 # "SYS" then
iTables=Tables
end
end
next val
.TABLE1-]LIST=iTables
-------------------------------------
Fills the edittable after stripping dup names and SYS??? names.
Crude but gets me going.
Bruce
----
=== At 30 APR 1998 08:14PM Dave Pociu wrote: ===
Hi Bruce,
Crude but OK ;)
Here's some more code from a global write event procedure of mine. What I do is to force an update of any existing Btree index that the current form has written to.
Note the use of the (undocumented I believe) SET_ROWDEF procedure! Without it all you get is the first column of LIST_INDEX, and therefore nothing about the kind of indexes that you have in the table.
if table_name # '' then
locate table_name in list using @fm setting pos then
null
end else
list=table_name
indexed_columns=' ;
* capture text results of list_users
= Set("SYSTEM", "RECEIVER", "MENU_FORM.RECEIVER")
= set( "MENU_FORM.RECEIVER" , 'TEXT' , '')
call set_rowdef(\0101010101\)
list_index(table_name , '' , '1')
= Set("SYSTEM", "RECEIVER", "")
indexed_columns=Get( "MENU_FORM.RECEIVER", "TEXTVAL")
if indexed_columns then
update_index( table_name , '' , '')
error=get_status(status_code)
if error then
call send_event( @window , "SYSMSG" , "TABLE_ERROR" , 0 , status_code)
end
end
end
end
----
=== At 01 MAY 1998 04:18PM Cameron Revelation wrote: ===
Bruce,
There is the background indexer (the "seconds" option in db mgr options). There is a dedicated indexer ... search for "set_bgnd..." in the help file. There is also an update_index function which can update all indexes (if you pass null params). Are any of these what you are looking for?
Cameron Purdy
Revelation Software
----
=== At 01 MAY 1998 04:33PM B Cameron wrote: ===
Cameron,
Yes, actually, some all and none.
I was wondering if the db mgr routine was s"bundled" up so that I could just call it as it. But.. in the mean time I wrote code to display any users logged on, then used the receiver to fill an edit table and then ater the user selected the tables I call the rebuild/update.
My "modus" is usually "WYCS WYCS" so I tried here first.
Thanks, Bruce ;)
[[https://www.revelation.com/revweb/oecgi4p.php/O4W_HANDOFF?DESTN=O4W_RUN_FORM&INQID=NONWORKS_READ&SUMMARY=1&KEY=6958F42780119DF7852565F50077BACD|View this thread on the forum...]]