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

detail update error

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

    detail update error

    I'm running into the following list update error. The update works sometimes, but then I get the following other times.

    The error is "The database could not find the data you requested"


    This the debug sql error. the primary key field is called RECID and is


    SQL Commands for Row: 3 (Primary key: 96484)
    UPDATE clienthistory SET [PAYMENT] = :new_PAYMENT WHERE ([RECID] = :primaryKey_1) AND ((PAYMENT = :old_PAYMENT OR PAYMENT IS NULL AND :old_PAYMENT IS NULL))
    :new_payment (N) 20
    :old_payment (N) 0
    :primarykey_1 (N) 96484

    Database server reported an error:
    The database could not find the data you requested


    #2
    Re: detail update error

    update on this.

    So I recreated all my controls and limited the number of records returned to 10 on the list.
    I also checked the back end MYsql table
    The results are inconsistent, I can do two or three entries fine, then I get the error.

    Comment


      #3
      Re: detail update error

      UPDATE clienthistory SET [PAYMENT] = :new_PAYMENT WHERE ([RECID] = :primaryKey_1) AND ((PAYMENT = :old_PAYMENT OR PAYMENT IS NULL AND :old_PAYMENT IS NULL))
      to me it looks like here is a problem on combination
      in mysql you may not need [] but won't hurt.
      if the logic is
      Code:
      UPDATE clienthistory SET PAYMENT = :new_PAYMENT
      WHERE (RECID = :primaryKey_1 AND PAYMENT = :old_PAYMENT)
      OR (RECID = :primaryKey_1 AND PAYMENT IS NULL AND :old_PAYMENT IS NULL)
      it should work.
      i am just looking thru the code to see, definitely did not run thru mysql.
      thanks for reading

      gandhi

      version 11 3381 - 4096
      mysql backend
      http://www.alphawebprogramming.blogspot.com
      [email protected]
      Skype:[email protected]
      1 914 924 5171

      Comment


        #4
        Re: detail update error

        The code is a cRUD operation created by Alpha. What I posted is the debug which shows the code it was trying to execute.

        I wonder if this is a portable sql issue. In other places I have written my own update code, but here I wanted to use the synchronization function.

        It's not giving a code error, or an argument type error, it's saying it can't find the record.
        I know the primary_key_1 is good as I can see the value. What I can't see is what value it is passing in on the [RECID] argument.

        Thanks
        Tom

        Comment


          #5
          Re: detail update error

          The 'where' clause indicates it is trying to handle a NULL value in the [payment] field. If your database is indeed setup such that the [payment] field allows null then ensure:
          1) the property for the [payment] field in the list build has the "blank is NULL" checkmarked, and
          2) the corresponding control for the detail section has the "NULL if blank" checkmarked.

          Otherwise, if your database does not allow NULL in the [payment] field then uncheck those two properties.

          Comment


            #6
            Re: detail update error

            Originally posted by RichCPT View Post
            The 'where' clause indicates it is trying to handle a NULL value in the [payment] field. If your database is indeed setup such that the [payment] field allows null then ensure:
            1) the property for the [payment] field in the list build has the "blank is NULL" checkmarked, and
            2) the corresponding control for the detail section has the "NULL if blank" checkmarked.

            Otherwise, if your database does not allow NULL in the [payment] field then uncheck those two properties.
            Hi Rich,

            So I was just focused on the RECID matching but now I see as you pointed out that it is matching on the payment. But the statement being created makes no sense, even if I change null.

            Below is the JSON that is created and the SQL update statement.

            After the RECID the first part PAYMENT = :old_PAYMENT would only be true if there were no changes to the PAYMENT field. The second part PAYMENT IS NULL AND :old_PAYMENT IS NULL would only be true if both field were NULL. Neither is the case. It would seem strange that this was a bug, but I don't see how the generated statements could find the requested data.

            Code:
            [
                {
                    "MRN": "XXXXXX336",
                    "PAYMENT_DATE": null,
                    "RECID": "91196",
                    "CLIENT_ID": "CXXXX",
                    "ACTIONDATE": "05/25/2015",
                    "SESSION_TYPE": "Individual 45min",
                    "SESSION_CODE": "90834",
                    "SESSION_FEE": "258",
                    "PAYMENT": "33",
                    "PAYTYPE": "Check",
                    "PAYTYPEREFNUMBER": null,
                    "NOTES": null,
                    "diagnosiscode": null,
                    "__primaryKey": "91196",
                    "__a5crc": "4294935899",
                    "*key": 3,
                    "*renderIndex": 3,
                    "*value": "91196",
                    "_isNewRow": false,
                    "_oldData": {
                        "MRN": "1000xxxx",
                        "PAYMENT_DATE": null,
                        "RECID": "91196",
                        "CLIENT_ID": "CXXXX",
                        "ACTIONDATE": "05/25/2015",
                        "SESSION_TYPE": "Individual 45min",
                        "SESSION_CODE": "90834",
                        "SESSION_FEE": "258",
                        "PAYMENT": "",
                        "PAYTYPE": "Check",
                        "PAYTYPEREFNUMBER": null,
                        "NOTES": null,
                        "diagnosiscode": null
                    },
                    "_isDirty": true,
                    "*rowGUID": "DB63FA3C-F984-4347-9E2A-435F3E7B1511",
                    "__displayStyle": "dirtyRow"
                }
            ]

            Code:
            UPDATE clienthistory SET [PAYMENT] = :new_PAYMENT WHERE ([RECID] = :primaryKey_1) AND ((PAYMENT = :old_PAYMENT OR PAYMENT IS NULL AND :old_PAYMENT IS NULL)) 
            
            
            :new_payment (N) 33 
            :old_payment (N) 0 
            :primarykey_1 (N) 91196 
            
            Database server reported an error:
            The database could not find the data you requested

            Comment


              #7
              Re: detail update error

              "PAYMENT = :old_PAYMENT " is checking to see if another user change the value of PAYMENT, since the time the data was first retrieved for the current user making the change.

              Since NULL cannot be compared to NULL in SQL the second part, "PAYMENT IS NULL AND :old_PAYMENT IS NULL", is checking to see if the original PAYMENT was null in the database and that it was read as NULL by the current user. The second part is "OR"d with the first part. Hopefully, when Alpha setup the ":old_PAYMENT" sql argument it checked for the "" string (value in oldData) and passed in NULL for the argument value. I would imagine this all works in alpha correctly as long as the two checkboxes I mentioned ("blank is NULL" and "NULL if blank") are set properly. Otherwise, if it was not working then this board would be full of problems.

              If you want to have Alpha completely omit comparing the "old" value to the database in the WHERE clause then uncheck the "check for write conflict" option for the payment field.

              The "The database could not find the data you requested" error is one that I, too, was receiving the other day. It turned out that my ButtonList control was somehow changing my original value of zero or negative one to a blank string. It took a while to find because it only happened on the first record of the list and my ButtonList is only conditionally visible and the first record in my list never shows the ButtonList.

              Comment

              Working...
              X