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

Session variables as numbers

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

    Session variables as numbers

    I had a look at my xbasic trace logs and I am getting this error:

    Thu Jan 11 01:32:24 2018
    Warning: Illegal session variable value.
    Session.speople_id
    Session variables are restricted to character type only.
    The variable Session.speople_id is about to be set with as non-character value. This code will no longer function in a future software release.
    ==========================================================


    Unfortunately, the log does not tell you what component the error is coming from.

    I searched through my app.

    I am sometimes setting that variable to a number

    session.speople_id = 1

    I am also setting this value through direct db connections:

    session.speople_id = cn.resultset.data("People_id")

    And to controls:

    session.speople_id = e.datasubmitted.people_id

    I am not expliciting saying:

    dim session.speople_id as n = 1

    I am really doing something that's going to be a future problem? Won't the system just convert the number to a character like it's doing now? If so, why do I need an entry in the error log?

    #2
    Re: Session variables as numbers

    When version 11 was released and Alpha knew it was on its way to IIS, they announced that all session variables must be character type. Threw a lot of us into a lot of work but necessary work.

    While Alpha's covering our butts now on this, I think this is fair warning it won't always be this way and these need to be fixed.

    I've had a couple that have been pretty hard to track down, but if you pair the timestamp on the Xbasic log error with the access log and its timestamps, then you can narrow down the search for any you don't recognize.
    -Steve
    sigpic

    Comment


      #3
      Re: Session variables as numbers

      Steve,

      I recognize all of them, I'm just not sure what I need fix.

      I gave three examples of how I am using that session variable. Are any of them actually a problem? They all seem like conversions that should happen automatically, no matter what.

      Do I really need to say

      session.variable = "2"

      instead of

      session.variable = 2

      Do I need to check my resultsets to see which values are coming across as numbers and convert them?

      Can I do this:

      dim vNum as c = e.datasubmitted.mynumbercontrol
      session.MyNum = vNum

      Why would setting a session variable be converted any differently from a regular variable?

      Again, I am not dimming this variable as a number, ANYWHERE. The issue seems to be with just setting it to a number value.

      Comment


        #4
        Re: Session variables as numbers

        Yes, you need to convert them to character type.

        I can't tell you the reason why though I think it has something to do with IIS. I just know that when Alpha says this (and has continued to support this position for some time) we'd better pay attention.

        so this is fine because all e.datasubmitted is always character type:

        dim vNum as c = e.datasubmitted.mynumbercontrol
        session.MyNum = vNum
        -Steve
        sigpic

        Comment


          #5
          Re: Session variables as numbers

          Some good info here on session variables...

          https://www.alphasoftware.com/docume...0Variables.xml
          Mike Brown - Contact Me
          Programmatic Technologies, LLC
          Programmatic-Technologies.com
          Independent Developer & Consultant​​

          Comment


            #6
            Re: Session variables as numbers

            Is the field type in the database an INT or a Vchar,etc.??
            NWCOPRO: Nuisance Wildlife Control Software My Application: http://www.nwcopro.com "Without forgetting, we would have no memory at all...now what was I saying?"

            Comment


              #7
              Re: Session variables as numbers

              The field type for this particular variable that I started the discussion about is an Int in the database.

              Comment


                #8
                Re: Session variables as numbers

                You can always coerce your numeric variables to ensure they're character... session.myVar = ltrim(str(varName)). Or as the doc states... concat a string... session.myVar = "" + myNumVar
                Last edited by Davidk; 01-11-2018, 11:46 PM.

                Comment


                  #9
                  Re: Session variables as numbers

                  I would bet if you just changed that INT to a VCHAR at the table level you wouldn't see that issue anymore. Is there some sort of reason it cannot be a character field? Otherwise, I would drop the session var and use a state variable.
                  Now, you guys all know I am NOT some great expert and frankly larry your posts are over my head most of the time - so bear in mind I am only making a suggestion based on my limited experience.
                  I hope it helps, as I can see this rearing it's ugly head somewhere down the road as code gets stricter in method/rules.
                  NWCOPRO: Nuisance Wildlife Control Software My Application: http://www.nwcopro.com "Without forgetting, we would have no memory at all...now what was I saying?"

                  Comment


                    #10
                    Re: Session variables as numbers

                    Note that this is a "Warning", not an error (even though it writes to the xBasic error log).

                    You do not need to change anything yet, if you don't want to. Just know that at "some point" (according to Alpha), non-character session variables may not be recognized so you may need to fix it before being able to install a future update.

                    We noticed this about 2 years ago as the warnings were cluttering up our logs. We then systematically changed all session variables to dim as C and then searched for where we referenced the variable in our app. Note the following, though.

                    * When referencing the character session variables in xBasic comparisons, you have to convert it back to a numeric as David Kates showed.

                    * If the session variable is used to set an argument for a Sql stmt, you do not need to convert it (at least using MySql). In our app, MySql worked fine with "where id = :whatid" whether :whatid referenced a numeric or character session variable.

                    Lastly, we run between 20-30 AA instances (depending on the time of year) and the warnings made the error logs unusable. I created an Excel template which automatically brought in all error logs (into one Excel file) and then stripped out the warnings so that I was just left with any real xBasic errors. Happy to share that with the board if anyone wants it.

                    Comment

                    Working...
                    X