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

Index question to avoid corruption (periodic maintenance)

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

    Index question to avoid corruption (periodic maintenance)

    I know there is an index script example in the wonderful up-to-date on-line help files but I�m concerned about corruption and I hope to get a definitive answer regarding index maintenance on the web.

    I have several tables and tried but could not get away with creating at least one or two indexes for each.

    I also use the LOOKUPx() extensively and I see (too late) that this may not be such a good idea by this post http://msgboard.alphasoftware.com/al...ighlight=index

    When I put my project on-line, I would like to know how necessary it is to create an a5w page that will conduct index maintenance automatically (update indexes).

    Do you do this?
    How often do you run the script?
    Script ideas?
    Do you conduct any periodic maintenance on your LOOKUPx() functions?

    Thanks for your input!
    Eric

    Alpha Five Websites
    longlivepuppies.com
    socialservicenetwork.com
    -------------------------------------------------
    socialservicenetwork.org

    #2
    Re: Index question to avoid corruption (periodic maintenance)

    Hi Eric,

    I'll chime in here and see if I can help any....but most of my experience is on the desktop side. That really should not matter. That being said, if your app is designed properly, you should almost NEVER have any index corruption (like years with no problems). This is something I never worry about on the desktop side and I can't see why the web side would be any different. If anything, I would expect the web side to be even more stable because the likelihood of more than one user doing something that might cause a problem at EXACTLY the same time is greatly diminished on the web.

    I use the lookupx() functions a BUNCH on the desktop side. I think what Steve was saying is that had he just used the lookup() function it would have sequentially just read the records in the table and since he did happen to have a corrupt index his processing would still have worked. The lookupx() functions are a great idea to my way of thinking since they are really fast.

    Also, while this may not work straight away on the web side(you would have to play with this some) - you could make a desktop hybrid app to index your files should you have a problem with Cal Locklin's utility.

    Regards,

    Jeff

    Comment


      #3
      Re: Index question to avoid corruption (periodic maintenance)

      I use the lookup functions, but when I need to be really sure, I build a query to find what I need.

      As long as queries qualify for Lightning Query Optimization (see help docs for LQO rules) there's no performance problem here, and no worry about index problems.
      -Steve
      sigpic

      Comment


        #4
        Re: Index question to avoid corruption (periodic maintenance)

        Thank you both for responding.

        I neglected to mention that my system will conduct anywhere from 10-100 automatic daily record deletions (early morning hours) and periodic user deletions. There will also be 10-100 daily additions.

        Would this change your opinions?
        Eric

        Alpha Five Websites
        longlivepuppies.com
        socialservicenetwork.com
        -------------------------------------------------
        socialservicenetwork.org

        Comment


          #5
          Re: Index question to avoid corruption (periodic maintenance)

          Nope. The surest way to insure accurate record location is to run a query. Because you can predict what queries are to be run, you can make 'em LQO queries. The basic model is simple:

          Code:
          query.order = ""
          query.filter = "x = y"
          t = table.open("[pathalias.adb_path]\mytable.dbf")
          qdx = t.query_create()
          if qdx.records_get() = 1
            ' do one thing
          else
            ' do the other
          end if
          t.close()
          -Steve
          sigpic

          Comment


            #6
            Re: Index question to avoid corruption (periodic maintenance)

            Thanks Steve.
            I know how to make queries.

            I just have so emails and code only pages where I have already implemented the LOOKUPx() function. I'm wondering about "over-indexing" (too many temp indexes) and corruption. I'm really not excited to go back and rewrite all of them into queries. Or am I still save and just being an alarmist?
            Eric

            Alpha Five Websites
            longlivepuppies.com
            socialservicenetwork.com
            -------------------------------------------------
            socialservicenetwork.org

            Comment


              #7
              Re: Index question to avoid corruption (periodic maintenance)

              Eric

              Steve is MUCH more experienced than me on the web side but....

              I neglected to mention that my system will conduct anywhere from 10-100 automatic daily record deletions (early morning hours) and periodic user deletions. There will also be 10-100 daily additions
              That really is not that much and deleting records should not corrupt your indices at all. Perhaps apply a tbl.pack() every once in awhile to just get rid of the unused space in the table. If I was you I would use the lookupx() functions. If you find for some bizarre reason you are having problems then you could look at changing things around. That being said, in my applications it is EXTREMELY rare to ever have a corrupt index. I have one networked desktop app that has been running on dbf's for 13 years and maybe I have had one corruption (if that). In my opinion, it should not enter into your mindset that you have to design for what happens WHEN I get an index corruption. The indices should not corrupt if the design of the app is correct.

              Just my 2 cents... :)

              Comment


                #8
                Re: Index question to avoid corruption (periodic maintenance)

                Don't get me wrong. I still use the lookups and other non-query methods for getting pieces of data. I have run into trouble on one table in the past where a re-index was necessary once in a while, but otherwise I still judge them as a sound technique. Some of this depends on how critical the procedure is. With a query, for instance, you have more opportunities to test for the correct record(s) and do something in case there's a problem.
                -Steve
                sigpic

                Comment


                  #9
                  Re: Index question to avoid corruption (periodic maintenance)

                  Querys will use an index if one is available. So if the index is corrupt, and the query uses that index, the query response will be exactly the same as if you used a lookupc() function using the index directly.

                  I just went through a senerio like this, so thought I'd mention, if have to be really sure, add query.options="n" or query.options="m" to ensure it rebuilds the query from scratch, or absolutely does not use any available index.
                  Steve Wood
                  See my profile on IADN

                  Comment

                  Working...
                  X