Alpha DevCon 2018
Page 1 of 2 12 LastLast
Results 1 to 30 of 49

Thread: Clean the registry

  1. #1
    VAR
    Real Name
    Martin W. Cole
    Join Date
    Apr 2000
    Location
    Terrell, Texas (near Dallas)
    Posts
    5,925

    Default Clean the registry

    Occassionally, Alpha will tell you a file is open and/or in use by someone. Maybe when programming, when rebuilding indexes, when opening a file in exclusive mode, or when compacting the adb. And closing and reopening the ADB doesn't help. Nor does rebooting the computer. This is because Alpha often uses the registry for keeping track of open tables and files. And they don't get removed and/or updated properly - especially when there is a crash, or Alpha throws an error or programming code throws an error.

    I am including 3 functions for keeping Alpha clean. The first two were graciously done for me by Stan Mathews, which clean the registry; and the last was done many years ago by Cal Lochlin, which keeps temporary files clean.

    As with any code, use this at your own risk. I am currently using it for one client with a shadowed ADB, and another with T/S.

    function clean_tables as L()
    dim user_data.foo as C
    User_Data.foo = ""
    dim cont as C
    dim rslt_cont as C
    dim cont_ln as C
    dim ln as C
    :registry.load_settings("Tables",User_Data)
    cont = property_to_string(user_data)
    for each fooc in cont
    SELECT
    CASE "<DBF" $ fooc
    ln = stritran(fooc,"<DBF",".DBF")
    cont_ln = extract_string(ln,"<","<",1)
    rslt_cont = rslt_cont + cont_ln + crlf()
    CASE "<ALB" $ fooc
    ln = stritran(fooc,"<ALB",".ALB")
    cont_ln = extract_string(ln,"<","<",1)
    rslt_cont = rslt_cont + cont_ln + crlf()
    CASE "<SET" $ fooc
    ln = stritran(fooc,"<SET",".SET")
    cont_ln = extract_string(ln,"<","<",1)
    rslt_cont = rslt_cont + cont_ln + crlf()
    CASE "<DDD" $ fooc
    ln = stritran(fooc,"<DDD",".DDD")
    cont_ln = extract_string(ln,"<","<",1)
    rslt_cont = rslt_cont + cont_ln + crlf()

    END SELECT
    next
    for each foox in rslt_cont
    registry.drop_settings("Tables\\"+foox)
    next
    registry.drop_settings("Tables")
    end function
    '**********************************************
    on error goto errors
    function clean_indexes as L()
    dim user_data.foo as C
    User_Data.foo = ""
    dim cont as C
    dim rslt_cont as C
    dim cont_ln as C
    dim ln as C
    :registry.load_settings("INDX",User_Data)
    cont = property_to_string(user_data)
    rslt_cont = ""
    cont_ln = ""
    FOR each fooc in cont
    SELECT
    CASE "<DBF" $ fooc
    IF "-" $ fooc
    keyn = extract_string(fooc,"<","<",1)
    tblno = extract_string(fooc,";","<",1)
    ln = strtran(fooc,"<DBF",".DBF")
    cont_ln = extract_string(ln,"<","<",1)
    rslt_cont = rslt_cont + cont_ln + crlf()
    ELSE
    tblno = increment_value(tblno)
    cont_ln = keyn+".dbf"+";"+tblno
    rslt_cont = rslt_cont + cont_ln + crlf()
    END IF

    CASE "<ALB" $ fooc
    IF "-" $ fooc
    keyn = extract_string(fooc,"<","<",1)
    tblno = extract_string(fooc,";","<",1)
    ln = strtran(fooc,"<ALB",".ALB")
    cont_ln = extract_string(ln,"<","<",1)
    rslt_cont = rslt_cont + cont_ln + crlf()
    ELSE
    tblno = increment_value(tblno)
    cont_ln = keyn+".alb"+";"+tblno
    rslt_cont = rslt_cont + cont_ln + crlf()
    END IF

    CASE "<SET" $ fooc
    IF "-" $ fooc
    keyn = extract_string(fooc,"<","<",1)
    tblno = extract_string(fooc,";","<",1)
    ln = strtran(fooc,"<SET",".SET")
    cont_ln = extract_string(ln,"<","<",1)
    rslt_cont = rslt_cont + cont_ln + crlf()
    ELSE
    tblno = increment_value(tblno)
    cont_ln = keyn+".set"+";"+tblno
    rslt_cont = rslt_cont + cont_ln + crlf()
    END IF

    CASE "<DDD" $ fooc
    IF "-" $ fooc
    keyn = extract_string(fooc,"<","<",1)
    tblno = extract_string(fooc,";","<",1)
    ln = strtran(fooc,"<DDD",".DDD")
    cont_ln = extract_string(ln,"<","<",1)
    rslt_cont = rslt_cont + cont_ln + crlf()
    ELSE
    tblno = increment_value(tblno)
    cont_ln = keyn+".ddd"+";"+tblno
    rslt_cont = rslt_cont + cont_ln + crlf()
    END IF
    END SELECT
    next

    FOR each foox in rslt_cont
    registry.drop_settings("INDX\\"+foox)
    next
    registry.drop_settings("INDX")
    end function
    end
    errors:
    err_msg = error_text_get(error_code_get())
    line = error_line_number_get()
    script = error_script_get()
    ui_msg_box("Error", err_msg+" Error occurred at line "+alltrim(str(line,4,0))+ " in script: "+script)
    end
    '**************************************
    function cleanit as L()
    DIM path[10] as c
    path[1] = a5.get_path() + chr(92)
    path[2] = a5.get_private_path() + chr(92)
    pcount = 2
    IF a5.get_private_path() <> a5.get_exe_path()
    path[3] = a5.get_exe_path() + chr(92)
    pcount = 3
    END IF
    fcount = 0
    FOR x = 1 to pcount
    'type_of_files = 0 + FILE_FIND_ARCHIVE + FILE_FIND_READONLY + FILE_FIND_HIDDEN
    'dfiles = filefind.first( path[x] + "$$*.*", type_of_files )
    dfiles = filefind.first( path[x] + "$$*.*", FILE_FIND_NOT_DIRECTORY )
    WHILE .not.dfiles.eof()
    fname = dfiles.name() '*** GET THE FILE NAME.
    ON ERROR goto Continue_next '*** FIND OUT IF THE FILE IS LOCKED.
    fp = file.open( fname, file_rw_exclusive )
    ON ERROR goto 0
    fp.close() '*** FILE IS NOT LOCKED SO CLOSE IT AND REMOVE IT.
    file.remove( fname )
    fcount = fcount + 1
    '---------------
    Continue_next:
    '---------------
    ON ERROR goto 0
    dfiles.next() '*** GET NEXT FILE IN LIST.
    statusbar.robot()
    END WHILE
    NEXT
    end function
    Cole Custom Programming - Terrell, Texas
    972 524 8714
    martin_w_cole@msn.com

    ____________________
    "A young man who is not liberal has no heart, but an old man who is not conservative has no mind." GB Shaw

  2. #2
    "Certified" Alphaholic Stan Mathews's Avatar
    Real Name
    Stan Mathews
    Join Date
    Apr 2000
    Location
    Bowling Green, KY
    Posts
    25,008

    Default Re: Clean the registry

    Thanks for the citation, Martin. We might indicate that the registry functions are currently known to be compatible with A5V8 through A5V10. They will not work with A5V5 due to the registry entries being different.

  3. #3
    "Certified" Alphaholic MoGrace's Avatar
    Real Name
    Robin
    Join Date
    Mar 2006
    Location
    Los Angeles
    Posts
    3,404

    Default Re: Clean the registry

    How /when are you calling these functions? In button scripts, menus, toolbars or from the IW? And does it matter!
    Robin

    Discernment is not needed in things that differ, but in those things that appear to be the same. - Miles Sanford

  4. #4
    VAR
    Real Name
    Martin W. Cole
    Join Date
    Apr 2000
    Location
    Terrell, Texas (near Dallas)
    Posts
    5,925

    Default Re: Clean the registry

    Sorry about that - should have mentioned
    there are 2 ways to do it

    1. manually, from the controlpanel
    2. from a button, run a script that will first close all forms, including the form the script is run from - then call the functions - then reopen the form(checking to be sure it is not already open.)
    Cole Custom Programming - Terrell, Texas
    972 524 8714
    martin_w_cole@msn.com

    ____________________
    "A young man who is not liberal has no heart, but an old man who is not conservative has no mind." GB Shaw

  5. #5
    "Certified" Alphaholic MoGrace's Avatar
    Real Name
    Robin
    Join Date
    Mar 2006
    Location
    Los Angeles
    Posts
    3,404

    Default Re: Clean the registry

    Thanks Martin
    Robin

    Discernment is not needed in things that differ, but in those things that appear to be the same. - Miles Sanford

  6. #6
    Member
    Real Name
    Dragan Milosavljevic
    Join Date
    Mar 2010
    Location
    Belgrade, Serbia
    Posts
    79

    Default Re: Clean the registry

    Hi Stan,

    My question is it work with V11 and w7.

  7. #7
    VAR
    Real Name
    Martin W. Cole
    Join Date
    Apr 2000
    Location
    Terrell, Texas (near Dallas)
    Posts
    5,925

    Default Re: Clean the registry

    Yes - I am putting it in the auto exec of the app
    Cole Custom Programming - Terrell, Texas
    972 524 8714
    martin_w_cole@msn.com

    ____________________
    "A young man who is not liberal has no heart, but an old man who is not conservative has no mind." GB Shaw

  8. #8
    Member
    Real Name
    John Tary
    Join Date
    Jan 2007
    Posts
    418

    Default Re: Clean the registry

    Martin,

    I have been having many problems with Alpha and I thought these functions could not hurt. I was curious what they are doing.(My xbasic skills are limited) and how to implement this. Currently I created 3 separate functions and put them on buttons. There is an "on error" which is before the function definition so I was not sure where to place this. I would assume if running this in the autoexec, you would create 3 separate functions on the control panel and then just run the functions, correct? Thanks.

  9. #9
    VAR
    Real Name
    Martin W. Cole
    Join Date
    Apr 2000
    Location
    Terrell, Texas (near Dallas)
    Posts
    5,925

    Default Re: Clean the registry

    yes, create separate functions and run in autoexec
    Cole Custom Programming - Terrell, Texas
    972 524 8714
    martin_w_cole@msn.com

    ____________________
    "A young man who is not liberal has no heart, but an old man who is not conservative has no mind." GB Shaw

  10. #10
    VAR
    Real Name
    Martin W. Cole
    Join Date
    Apr 2000
    Location
    Terrell, Texas (near Dallas)
    Posts
    5,925

    Default Re: Clean the registry

    I am now using them in all apps 10.5 and 11 on W7 64 in the autoexec
    working as advertised
    the registry will only very occassionally be an issue, but when it is it is a bear to trace - the first two functions take care of the Alpha registry
    Cole Custom Programming - Terrell, Texas
    972 524 8714
    martin_w_cole@msn.com

    ____________________
    "A young man who is not liberal has no heart, but an old man who is not conservative has no mind." GB Shaw

  11. #11
    Member
    Real Name
    John Tary
    Join Date
    Jan 2007
    Posts
    418

    Default Re: Clean the registry

    Thank you Martin.

  12. #12
    Member
    Real Name
    Dave Parkins
    Join Date
    Dec 2002
    Location
    Glen Haven, WI
    Posts
    289

    Default Re: Clean the registry

    Quote Originally Posted by johngtatp View Post
    Thank you Martin.
    Martin,

    I'm sure I'm missing something. I've tried to run your script from within my database and it doesn't appear to clear out the temp files.

    Do I need to add the path to the temp files?

    Thanks,
    Dave

    function cleanit as L()
    DIM path[10] as c
    path[1] = a5.get_path() + chr(92)
    path[2] = a5.get_private_path() + chr(92)
    pcount = 2
    IF a5.get_private_path() <> a5.get_exe_path()
    path[3] = a5.get_exe_path() + chr(92)
    pcount = 3
    END IF
    fcount = 0
    FOR x = 1 to pcount
    'type_of_files = 0 + FILE_FIND_ARCHIVE + FILE_FIND_READONLY + FILE_FIND_HIDDEN
    'dfiles = filefind.first( path[x] + "$$*.*", type_of_files )
    dfiles = filefind.first( path[x] + "$$*.*", FILE_FIND_NOT_DIRECTORY )
    WHILE .not.dfiles.eof()
    fname = dfiles.name() '*** GET THE FILE NAME.
    ON ERROR goto Continue_next '*** FIND OUT IF THE FILE IS LOCKED.
    fp = file.open( fname, file_rw_exclusive )
    ON ERROR goto 0
    fp.close() '*** FILE IS NOT LOCKED SO CLOSE IT AND REMOVE IT.
    file.remove( fname )
    fcount = fcount + 1
    '---------------
    Continue_next:
    '---------------
    ON ERROR goto 0
    dfiles.next() '*** GET NEXT FILE IN LIST.
    statusbar.robot()
    END WHILE
    NEXT
    end function

  13. #13
    "Certified" Alphaholic Stan Mathews's Avatar
    Real Name
    Stan Mathews
    Join Date
    Apr 2000
    Location
    Bowling Green, KY
    Posts
    25,008

    Default Re: Clean the registry

    Where is it leaving temp files? Can you delete them manually?
    There can be only one.

  14. #14
    Member
    Real Name
    Brien Lilja
    Join Date
    Oct 2009
    Location
    Madison, WI
    Posts
    24

    Default Re: Clean the registry

    I work with Dave, so I can answer that...

    It's putting them in the same directory as the .adb and most of the associated tables, which is \\fs1\q:\alf55\

    We can (and do) delete them manually, but thought it would be handy to have it done this way.

    A few of our Shadowed users push a button at night to kick off a bunch of linked Action Scripts, and we'd like to add this script to be run first.

    Thanks!

  15. #15
    "Certified" Alphaholic Stan Mathews's Avatar
    Real Name
    Stan Mathews
    Join Date
    Apr 2000
    Location
    Bowling Green, KY
    Posts
    25,008

    Default Re: Clean the registry

    Works fine here on the location you mentioned.

    I do note that you called it a script and you tried to run it. Actually it is a function and you have to execute/call it like.

    cleanit()

    If you modify the function slightly

    Code:
    function cleanit as L()
    cleanit = .F.
    DIM path[10] as c
    path[1] = a5.get_path() + chr(92)
    path[2] = a5.get_private_path() + chr(92)
    pcount = 2
    IF a5.get_private_path() <> a5.get_exe_path()
    path[3] = a5.get_exe_path() + chr(92)
    pcount = 3
    END IF
    fcount = 0
    FOR x = 1 to pcount
    'type_of_files = 0 + FILE_FIND_ARCHIVE + FILE_FIND_READONLY + FILE_FIND_HIDDEN
    'dfiles = filefind.first( path[x] + "$$*.*", type_of_files )
    dfiles = filefind.first( path[x] + "$$*.*", FILE_FIND_NOT_DIRECTORY )
    WHILE .not.dfiles.eof()
    fname = dfiles.name() '*** GET THE FILE NAME.
    ON ERROR goto Continue_next '*** FIND OUT IF THE FILE IS LOCKED.
    fp = file.open( fname, file_rw_exclusive )
    ON ERROR goto 0
    fp.close() '*** FILE IS NOT LOCKED SO CLOSE IT AND REMOVE IT.
    file.remove( fname )
    fcount = fcount + 1
    '---------------
    Continue_next:
    '---------------
    ON ERROR goto 0
    dfiles.next() '*** GET NEXT FILE IN LIST.
    statusbar.robot()
    END WHILE
    NEXT
    cleanit = .T.
    end function
    You can use

    if cleanit()
    'normal execution
    else
    msgbox("Cleanit function did not complete normally.")
    ene if
    There can be only one.

  16. #16
    Member
    Real Name
    Brien Lilja
    Join Date
    Oct 2009
    Location
    Madison, WI
    Posts
    24

    Default Re: Clean the registry

    Sorry, I got my terms confused. So if I want this function to execute at the push of button (that currently kicks off a whole slew of Action Scripts), can't I just copy/paste it into an "Inline Xbasic" Action Script and include it with that button?

  17. #17
    "Certified" Alphaholic Stan Mathews's Avatar
    Real Name
    Stan Mathews
    Join Date
    Apr 2000
    Location
    Bowling Green, KY
    Posts
    25,008

    Default Re: Clean the registry

    No.

    You can do one of two things.

    Create the function on your machine. (I'm attaching a file which you can import rather than recreating.) Then the inline xbasic would be

    cleanit()

    Strip the function declaration from the code and put the code in the inline xbasic.

    Code:
    DIM path[10] as c
    path[1] = a5.get_path() + chr(92)
    path[2] = a5.get_private_path() + chr(92)
    pcount = 2
    IF a5.get_private_path() <> a5.get_exe_path()
    path[3] = a5.get_exe_path() + chr(92)
    pcount = 3
    END IF
    fcount = 0
    FOR x = 1 to pcount
    'type_of_files = 0 + FILE_FIND_ARCHIVE + FILE_FIND_READONLY + FILE_FIND_HIDDEN
    'dfiles = filefind.first( path[x] + "$$*.*", type_of_files )
    dfiles = filefind.first( path[x] + "$$*.*", FILE_FIND_NOT_DIRECTORY )
    WHILE .not.dfiles.eof()
    fname = dfiles.name() '*** GET THE FILE NAME.
    ON ERROR goto Continue_next '*** FIND OUT IF THE FILE IS LOCKED.
    fp = file.open( fname, file_rw_exclusive )
    ON ERROR goto 0
    fp.close() '*** FILE IS NOT LOCKED SO CLOSE IT AND REMOVE IT.
    file.remove( fname )
    fcount = fcount + 1
    '---------------
    Continue_next:
    '---------------
    ON ERROR goto 0
    dfiles.next() '*** GET NEXT FILE IN LIST.
    statusbar.robot()
    END WHILE
    NEXT
    Attached Files Attached Files
    There can be only one.

  18. #18
    Member
    Real Name
    Brien Lilja
    Join Date
    Oct 2009
    Location
    Madison, WI
    Posts
    24

    Default Re: Clean the registry

    Stan - I imported the function you attached and then created the Inline Xbasic Action Script to call it. It worked great. Thanks for your help.

  19. #19
    "Certified" Alphaholic
    Real Name
    Ronald Anusiewicz
    Join Date
    Oct 2000
    Location
    Southampton, MA
    Posts
    1,489

    Default Re: Clean the registry

    Martin,

    I'm curious about the on error goto errors. If I put these functions into the autoexec script. it looks like the autoexec will stop running to report these errors. If I understand the code correctly, if I'm the end user, I would then complain that I can't open the application.

    Will clean indexes fix any errors or is it's purpose to report errors. Do I really need the on error or would I be better off writing the errors to a table to be looked at later.

    Thank you,

    Ron

  20. #20
    VAR
    Real Name
    Martin W. Cole
    Join Date
    Apr 2000
    Location
    Terrell, Texas (near Dallas)
    Posts
    5,925

    Default Re: Clean the registry

    my code
    on error goto errors
    goes in every script I write

    at the Errors: you could write the errors to a file and then put resume next

    If there is an error, and the error is in your code, this will tell you what the error is, etc.
    99% of the time you will catch the error when you are testing your scripts
    Cole Custom Programming - Terrell, Texas
    972 524 8714
    martin_w_cole@msn.com

    ____________________
    "A young man who is not liberal has no heart, but an old man who is not conservative has no mind." GB Shaw

  21. #21
    "Certified" Alphaholic
    Real Name
    Ronald Anusiewicz
    Join Date
    Oct 2000
    Location
    Southampton, MA
    Posts
    1,489

    Default Re: Clean the registry

    Thanks Martin.

    Tom Cone and I were looking at the registry and we could not believe all the junk that Alpha leaves behind. These three functions should be used in the autoexec of every Alpha App. Although, as I'm writing this, what would happen if I open one app and then open another at the same time? I'm have trouble following the code in the functions.

    Ron

  22. #22
    VAR
    Real Name
    Martin W. Cole
    Join Date
    Apr 2000
    Location
    Terrell, Texas (near Dallas)
    Posts
    5,925

    Default Re: Clean the registry

    Well ... in a development environment, I frequently have the sam app opened twice and/or 2 or more apps open at the same time
    the odds are a million to 1 - there would not be an issue - if there is nothing there to delete, then there is nothing there to delete

    Normally, this only happens on a development computer, but it will sometimes happen on a runtime. I am also using it in V12 with no issues.
    Cole Custom Programming - Terrell, Texas
    972 524 8714
    martin_w_cole@msn.com

    ____________________
    "A young man who is not liberal has no heart, but an old man who is not conservative has no mind." GB Shaw

  23. #23
    "Certified" Alphaholic DaveM's Avatar
    Real Name
    Dave Mason
    Join Date
    Jul 2000
    Location
    Hudson, FL
    Posts
    5,893

    Default Re: Clean the registry

    Thank You very much for this. I was about to attempt similar, but this is a great time saver and better than I would have done.

    It appears this app runs a bit faster now as well.
    Dave Mason
    dave@aldaweb.com

    Skype is dave.mason46

  24. #24
    Member
    Real Name
    Mark Williams
    Join Date
    Dec 2005
    Posts
    298

    Default Re: Clean the registry

    I occasionally get temp files left behind in the webprojects directory. I edited this as follows and it seems to clean them up as well.

    Code:
    DIM path[10] as c
    path[1] = a5.get_path() + chr(92)
    path[2] = a5.get_private_path() + chr(92)
    path[3] = rtrim(a5.get_name(),".adb") +".webprojects" + chr(92) + "default.webproject" + chr(92)
    pcount = 3
    IF a5.get_private_path() <> a5.get_exe_path()
    path[4] = a5.get_exe_path() + chr(92)
    pcount = 4
    END IF
    fcount = 0
    FOR x = 1 to pcount
    'type_of_files = 0 + FILE_FIND_ARCHIVE + FILE_FIND_READONLY + FILE_FIND_HIDDEN
    'dfiles = filefind.first( path[x] + "$$*.*", type_of_files )
    dfiles = filefind.first( path[x] + "$$*.*", FILE_FIND_NOT_DIRECTORY )
    WHILE .not.dfiles.eof()
    fname = dfiles.name() '*** GET THE FILE NAME.
    ON ERROR goto Continue_next '*** FIND OUT IF THE FILE IS LOCKED.
    fp = file.open( fname, file_rw_exclusive )
    ON ERROR goto 0
    fp.close() '*** FILE IS NOT LOCKED SO CLOSE IT AND REMOVE IT.
    file.remove( fname )
    fcount = fcount + 1
    '---------------
    Continue_next:
    '---------------
    ON ERROR goto 0
    dfiles.next() '*** GET NEXT FILE IN LIST.
    statusbar.robot()
    END WHILE
    NEXT
    '*******************************************************************************

  25. #25
    "Certified" Alphaholic MoGrace's Avatar
    Real Name
    Robin
    Join Date
    Mar 2006
    Location
    Los Angeles
    Posts
    3,404

    Default Re: Clean the registry

    I ran this in the IW to see what the registry settings were:

    dim user_data.foo as C
    User_Data.foo = ""
    dim cont as C
    :registry.load_settings("Tables",User_Data)
    cont = property_to_string(user_data)

    ?cont
    Then I ran Martin's clean_tables() and tried the above in the IW again and got the same list. Am I missing something on what this function is supposed to do?

    I also tried
    :registry.load_settings("INDX",User_data)

    and when I checked the list there were a bunch of $$ files listed in C:\Temp which are not there and got the same list after running clean_indexes().
    Last edited by MoGrace; 04-14-2015 at 12:46 PM.
    Robin

    Discernment is not needed in things that differ, but in those things that appear to be the same. - Miles Sanford

  26. #26
    "Certified" Alphaholic Stan Mathews's Avatar
    Real Name
    Stan Mathews
    Join Date
    Apr 2000
    Location
    Bowling Green, KY
    Posts
    25,008

    Default Re: Clean the registry

    Robin,

    What windows version? The function were developed under XP and examining the results now under Win 7 the code you used to display the registry settings does seem to indicate that they weren't dropped. But check the actual registry itself

    HKEY_CURRENT_USER\Software\Alpha Software\Alpha Five 11.0\Tables

    and it should be nearly empty.

    Alpha must load the registry settings on startup and refer to the loaded settings when using :registry.load_settings("Tables",User_Data). If you close and reopen Alpha the return value should be different.
    There can be only one.

  27. #27
    "Certified" Alphaholic MoGrace's Avatar
    Real Name
    Robin
    Join Date
    Mar 2006
    Location
    Los Angeles
    Posts
    3,404

    Default Re: Clean the registry

    Thanks Martin - I am using XP so will try the close and reopen method.
    Robin

    Discernment is not needed in things that differ, but in those things that appear to be the same. - Miles Sanford

  28. #28
    "Certified" Alphaholic DaveM's Avatar
    Real Name
    Dave Mason
    Join Date
    Jul 2000
    Location
    Hudson, FL
    Posts
    5,893

    Default Re: Clean the registry

    I am running v12 and win8.1. I am chasing a table open problem with a main table at present that shows up with a compact after heavy usage. I am also running these 3 functions from autoexec. After I restart OR just run the 3 functions, the table is closed and I can compact.

    I think they are working fine and was a great gift to us all. Slowly, I am eliminating to find the open table problem.
    Dave Mason
    dave@aldaweb.com

    Skype is dave.mason46

  29. #29
    "Certified" Alphaholic MoGrace's Avatar
    Real Name
    Robin
    Join Date
    Mar 2006
    Location
    Los Angeles
    Posts
    3,404

    Default Re: Clean the registry

    Question regarding the clean_tables() function - does deleting the Tables key in the registry work the same way as Stan mentioned elsewhere you can do with the INDX key? And what exactly are all those subkeys under tables about anyway???
    Robin

    Discernment is not needed in things that differ, but in those things that appear to be the same. - Miles Sanford

  30. #30
    "Certified" Alphaholic Stan Mathews's Avatar
    Real Name
    Stan Mathews
    Join Date
    Apr 2000
    Location
    Bowling Green, KY
    Posts
    25,008

    Default Re: Clean the registry

    does deleting the Tables key in the registry work the same way as Stan mentioned elsewhere you can do with the INDX key? - Yes

    Something Alpha does to keep track of recently opened tables, indexes, and queries.
    There can be only one.

Similar Threads

  1. Clean Webroot
    By steinmanal in forum Application Server Version 9 - Web/Browser Applications
    Replies: 4
    Last Post: 06-20-2009, 05:27 PM
  2. Clean Startup How?
    By Claudio Pilustrelli in forum Alpha Five Version 5
    Replies: 5
    Last Post: 12-05-2003, 11:09 AM
  3. Clean Up Registry
    By scottly in forum Alpha Five Version 5
    Replies: 6
    Last Post: 11-02-2003, 03:27 AM
  4. How to get a clean screen
    By Greg Fong in forum Alpha Five Version 4
    Replies: 6
    Last Post: 11-29-2001, 11:46 PM
  5. SEM How do you Clean Up?
    By Bonnie Jacques in forum Alpha Five Version 1
    Replies: 1
    Last Post: 06-15-2000, 09:06 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •