Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

DB Maintanace Help needed

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    DB Maintanace Help needed

    Hi All,

    I want to be able to perform a database compact or all associated functions(rebuild all indexes, remove all deleted records and reclaim unused space in all dictionaries and memo field files) from a button on my main menu.

    Can A5.compact() be set to exclude my setup table which the mainmenu form is attached to prevent the opened table dialog?

    Or does anyone have a routine they would share that would do the same thing?

    Thanks in advance,

    Scott

    #2
    RE: DB Maintanace Help needed

    I believe you'll find examples in the either the Code Archive or at Dr. Wayne's site: www.learn alpha.com

    Have you looked ?

    -- tom

    Comment


      #3
      RE: DB Maintanace Help needed

      I can't test it at present but I would think you could trap the error, something like:

      on error goto error_trap
      result = A5.compact()
      END

      error_trap:
      err = error_code_GET()
      if err = 1075 'table must be open exclusive read-write
      'I think this is the code that would be generated when
      'A5.compact hit the table on which your form is based
      resume next
      endif
      end
      There can be only one.

      Comment


        #4
        RE: DB Maintanace Help needed

        Bummer, that didn't work. Should be "end if" not endif, btw.
        There can be only one.

        Comment


          #5
          RE: DB Maintanace Help needed

          Tom,

          I did look on the code archive and on here .. I did not go to Dr. Waynes site yet ...

          Thanks,

          Scott

          Comment


            #6
            RE: DB Maintanace Help needed

            Thanks Stan ..

            I will try some other things ...

            Just thought someone already had a script they were using or new a way to bypass a .dbf in A5.compact()...

            Scott

            Comment


              #7
              RE: DB Maintanace Help needed

              Scott, if you're looking for table by table control, check the table pack and table dictionary commands.

              -- tom

              Comment


                #8
                RE: DB Maintanace Help needed

                I saw that Tom .. thanks .. I was just trying to cover it all in one step ... I guess thats the route I will have to take ..

                Thanks

                Comment


                  #9
                  RE: DB Maintanace Help needed

                  SCott, The easy way is to creat a button on the Main Menu and use the script editor to add the commands. They are already built and it takes only a few minutes to build. I'm running on on one of my apps right now. Theyend user clicks the button and it packs and reindexes the tables that I set up in the editor.

                  Comment


                    #10
                    RE: DB Maintanace Help needed

                    Thanks Fred .. I saw that ... I thought compact did more then just pack and update the indexes .. like deal with the dictionarys and memo fields ..

                    I can live with this ...

                    Thanks again

                    Comment


                      #11
                      RE: DB Maintanace Help needed

                      You can put a button on your menu and use action scripting to:
                      Update Indexes
                      Pack Tables

                      In both Update & Pack there is an option to exclude particular tables.

                      To make it friendly I've ended up with these actions:
                      Display a Message
                      Update Indexes
                      Pack Tables
                      Display a Message

                      If you want the XBasic code I'll post it here.

                      I think this is similar or the same as Fred Daniel above has done?

                      Robin

                      Comment


                        #12
                        RE: DB Maintanace Help needed

                        Scott,

                        You're correct. Compact DOES do more. But I don't know of a way to run it selectively against selected tables, which is what I thought you were asking about. It runs against the database, including all tables. It doesn't run against individual tables, if you see what I mean.

                        -- tom

                        Comment


                          #13
                          RE: DB Maintanace Help needed

                          Thanks Robin,

                          I have the code for that ... I was trying to do a complete compact and omit my mainmenu table.

                          I will take another route ..

                          Scott

                          Comment


                            #14
                            RE: DB Maintanace Help needed

                            This simple script will allow you to select a single table, set or the alb file and update accordingly. BTW: I never use database compact on my main app - too many tables & sets, takes too long and has caused problems in the past. Thjis script never fails me!

                            -Peter

                            [b]

                            'Perform maintenance (compact) on the selected dictionary.
                            '-----------------------------------------------
                            Dim Global vDBF_Path as C

                            dir_put(vDBF_Path)
                            filename = ui_get_file("Dictionary to Update", "table(*.DDD)|set(*.SET)|application(*.ALB)",vDBF_Path+CHR(92),"X")

                            IF filename = "" THEN
                            END
                            END IF

                            dictionary.update(filename)

                            ui_msg_box("Database Dictionary Update",filename + chr(13) + "Table Compacted",UI_INFORMATION_SYMBOL)

                            END
                            Peter
                            AlphaBase Solutions, LLC

                            [email protected]
                            https://www.alphabasesolutions.com


                            Comment


                              #15
                              RE: DB Maintanace Help needed

                              Scott,

                              You can omit ANY table or tables you choose on both the Update Indexes and on the Pack Tables, when using the action scripting genie, by ticking a box next to a table name.

                              So I guess just ticking checkbox for your mainmenu table is what you want?

                              Robin

                              Comment

                              Working...
                              X