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

referential integrity

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

    referential integrity

    I read a bunch of posts about referential integrity and now I'm really confused.

    So people recommend not using it.

    If you have a set, with a parent, a child and a grandchild, if referential integrity is turned off:

    When you delete a child record, are all the grandchild records deleted. I don't see how they would be deleted without referential integrity turned on with cascading deletes.

    Eventually, there would be a bunch of orphaned grandchildren. Or am I missing something here.

    Ron
    Alpha 5 Version 11
    AA Build 2999, Build 4269, Current Build
    DBF's and MySql
    Desktop, Web on the Desktop and WEB

    Ron Anusiewicz

    #2
    RE: referential integrity

    You are exactly correct. RE is not a preferrence it is a requirement based entirely on specs of the solution. The only situation where RE would be of no use is where child records are shared between parents such as color and style options or procedures that relate to multiple parent jobtypes.

    Marc
    Marc King
    A5solutions

    Comment


      #3
      RE: referential integrity

      Hello Ron,

      You are correct in your thinking. Without Referential Integrity turned on, there are several approaches to deleting records. You could write a routine, via Xbasic, that specifically deletes all records related to the parent, then delete the parent. You could only mark the parent, and run a utility later, when network traffic is low, using an identical set with referential integrity turned on, and delete marked records with children. You could delete only the parent and run 'reverse' utilities periodically that deleted orphan records.

      Long and short of it, you can still do what you want. Referential integrity really puts a hit on network performance. If I'm remembering right, Peter Wayne did some casual testing and came up with a performance hit of 13x (I'm running on memory here, so don't blame Peter if I'm off) with referential integrity turned on verses not.

      If you are working with a standalone computer application or a very small network with 2 or 3 users, low demand networks, etc. I doubt referential integrity will be an issue. If you have a large network, or a network with heavy data entry going on, referential integrity will not be the way you want to go.

      Good luck,
      Jim

      Comment


        #4
        RE: referential integrity

        Also these shared info situations dont really need of a child since they could be handled with look-ups from the parent to other tables with there own top level input forms.

        Marc
        Marc King
        A5solutions

        Comment


          #5
          RE: referential integrity

          Thanks Jim,

          The reason I'm bringing this up is that I'm getting strange results with referential integrity turned on. If I turn it off, everything works fine.

          My problem:

          I have a set with a parent, a child and a grandchild. All are one-to-many. Each individual link is to it's own key field. FirstlinkID to firstlinkid and secondlinkid to secondlinkid.

          If I change the data in a field in the child and then save the record, the browse jumps up and starts to enter a new record. If I shut referential integrity off, then everything acts normally. The record is saved.

          I made a test database to prove this out and my test database does the same thing. Therefore, it's not my custom forms or application.

          This is very disappointing as in my application, I have to close the form and re-open the form to view the data. The browse is empty and I can't see any of the data. I spent all afternoon trying different thinks all to no avail.

          If I delete the link to the grandchild, then everything works normally.

          Ron
          Alpha 5 Version 11
          AA Build 2999, Build 4269, Current Build
          DBF's and MySql
          Desktop, Web on the Desktop and WEB

          Ron Anusiewicz

          Comment


            #6
            RE: referential integrity

            Hello Ron,

            First off, I will not use referential integrity unless there is a special reason to.

            I downloaded your files and was not able to duplicate your results. Changing a value in the child table did not do anything unusual for me. All appears normal. Make sure you are using the latest build, 1410-1036. Then do a database compact.

            Comment


              #7
              RE: referential integrity

              I was up way too long yesterday.

              Yes, my test does run "OK" on my computer, too. What I meant to say is that this problem exists in both my custom form and the default form. I believe the problem is a conflict between a field rule and referential intigrity.

              Using your advice, it looks like the best way to go is to turn referential integrity "OFF" and delete all child and grandchildren with my own xbasic routine.

              Do you have any sample code on how to do this?

              Ron
              Alpha 5 Version 11
              AA Build 2999, Build 4269, Current Build
              DBF's and MySql
              Desktop, Web on the Desktop and WEB

              Ron Anusiewicz

              Comment

              Working...
              X