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

Pre-release Multi-Tenant Connection String

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

    Pre-release Multi-Tenant Connection String

    There's an excellent new feature in today's pre-release... Multi-Tenant Connection String. This injects a WHERE clause into an existing SQL Statement selecting a session variable based Tenant Id.

    This works great, for example, in a List control where ALL rows are being selected for a Tenant Id. But it breaks when I include a WHERE clause of my own with the error "Unknown column <session var value> in where clause".

    Could someone test this and see if it's doing the same for you?

    Of the many SaaS implementations I've worked with I'd say that 99% of the SQL statements include a WHERE clause in addition to the Tenant Id. Very rarely are all records in a table for a Tenant selected.

    I'm also really sorry to see that this excellent feature is hobbled by being tied to a session variable.

    You can't watch the videos because they don't work either... but the text explains everything.
    Last edited by Davidk; 10-22-2018, 11:28 AM.

    #2
    Re: Pre-release Multi-Tenant Connection String

    I gave a 30 minute presentation on this subject as this is how we handle Multi-Tenant processes in Orlando, I was stunned how many did not know what I was talking about until I said these words to simplify what I meant, 'Do you think your bank has a database just for you?" - good to see the feature added to simplify the process.

    Find the detail here.
    Last edited by peteconway; 10-22-2018, 01:23 PM.
    Insanity: doing the same thing over and over again and expecting different results.
    Albert Einstein, (attributed)
    US (German-born) physicist (1879 - 1955)

    Comment


      #3
      Re: Pre-release Multi-Tenant Connection String

      Is this setup more impervious to sql injection having the session var in the connection string?
      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


        #4
        Re: Pre-release Multi-Tenant Connection String

        Originally posted by CharlesParker View Post
        Is this setup more impervious to sql injection having the session var in the connection string?
        Its only a risk of sql injection if you don't test what gets stored into your session variables in the first place.
        Alex Collier

        "The spread of computers and the Internet will put jobs in two categories. People who tell computers what to do, and people who are told by computers what to do"

        AA Builds from 5221_5152 to Pre-releases >> Deploying to IIS in AWS

        Comment


          #5
          Re: Pre-release Multi-Tenant Connection String

          Originally posted by Davidk View Post
          You can't watch the videos because they don't work either... but the text explains everything.
          Do you mean these videos?? They seem to be working okay for me.

          https://www.ajaxvideotutorials.com/V...nantdriver.swf
          Alpha Anywhere v12.4.6.5.2 Build 8867-5691 IIS v10.0 on Windows Server 2019 Std in Hyper-V

          Comment


            #6
            Re: Pre-release Multi-Tenant Connection String

            Originally posted by iRadiate View Post
            Do you mean these videos?? They seem to be working okay for me.

            https://www.ajaxvideotutorials.com/V...nantdriver.swf
            That's because they've been fixed. They returned 404 when posted yesterday. Since the text explained the process it wasn't all that important.

            What is important is that Tenant Connections break when used with an existing WHERE clause... as they would be most of the time.

            Has anyone tested this to confirm it?
            Last edited by Davidk; 10-23-2018, 11:44 AM.

            Comment


              #7
              Re: Pre-release Multi-Tenant Connection String

              Originally posted by Davidk View Post
              There's an excellent new feature in today's pre-release... Multi-Tenant Connection String. This injects a WHERE clause into an existing SQL Statement selecting a session variable based Tenant Id.

              This works great, for example, in a List control where ALL rows are being selected for a Tenant Id. But it breaks when I include a WHERE clause of my own with the error "Unknown column <session var value> in where clause".

              Could someone test this and see if it's doing the same for you?

              Of the many SaaS implementations I've worked with I'd say that 99% of the SQL statements include a WHERE clause in addition to the Tenant Id. Very rarely are all records in a table for a Tenant selected.

              I'm also really sorry to see that this excellent feature is hobbled by being tied to a session variable.

              You can't watch the videos because they don't work either... but the text explains everything.
              Tested and Works fine on my end with a custom defined where clause/s within the ListBox

              I also note you can use the Custom Driver by selecting the example of Multi-tenant you get the underlying class as described in Selywn's video. No reason you could not change code that assigns the terantId to use Argument defined in the list by referring to the args object within xbasic which is passed along to this function within the xbasic class function

              if eval_valid("session." + SessionVariableName) then
              _tenantId = eval("session." + SessionVariableName)
              end if
              Alex Collier

              "The spread of computers and the Internet will put jobs in two categories. People who tell computers what to do, and people who are told by computers what to do"

              AA Builds from 5221_5152 to Pre-releases >> Deploying to IIS in AWS

              Comment


                #8
                Re: Pre-release Multi-Tenant Connection String

                When you say "ListBox"... do you mean a List Control?

                I believe I've found the Alpha bug.

                Could you confirm that your TenantId is numeric?

                Comment


                  #9
                  Re: Pre-release Multi-Tenant Connection String

                  Originally posted by Davidk View Post
                  When you say "ListBox"... do you mean a List Control?

                  I believe I've found the Alpha bug.

                  Could you confirm that your TenantId is numeric?
                  Yes list control sorry they name it Listbox on the documentation.

                  I did test it using numeric. I will test it with character and report back.
                  Alex Collier

                  "The spread of computers and the Internet will put jobs in two categories. People who tell computers what to do, and people who are told by computers what to do"

                  AA Builds from 5221_5152 to Pre-releases >> Deploying to IIS in AWS

                  Comment


                    #10
                    Re: Pre-release Multi-Tenant Connection String

                    Ok... thanks. I believe that's the Alpha bug. You get 2 choices... Numeric or Character to define the TenantId type.

                    Looks like Alpha only tested the Numeric choice.

                    Another problem with this feature is that you are forced to rebuild the Tenant parameters every time if you edit the Alpha connection string.

                    And finally, while building a List control, using the List Genie, you cannot set the Filter property of the List while in the genie for the first time. You can set Order, but Filter will not respond.
                    I don't know if it's related to the Tenant stuff... but... yikes.

                    Comment


                      #11
                      Re: Pre-release Multi-Tenant Connection String

                      Have you emailed alpha with your findings?
                      Alex Collier

                      "The spread of computers and the Internet will put jobs in two categories. People who tell computers what to do, and people who are told by computers what to do"

                      AA Builds from 5221_5152 to Pre-releases >> Deploying to IIS in AWS

                      Comment


                        #12
                        Re: Pre-release Multi-Tenant Connection String

                        I used to do a lot of that until I realized I was spending more time reporting issues that anything else. A common problem with Alpha issues seems to be lack of testing... and they don't seem to want to address that... as evidenced by this Multi-Tenant issue. A great feature... incomplete testing.

                        What did you find with a TenantId Character setting?

                        Comment


                          #13
                          Re: Pre-release Multi-Tenant Connection String

                          Understandable. The TenantId as a character is working for me. The connection string does not lose its parameters every time i edit them.
                          Though the genie filter property does not do anything like you mentioned. I my using MSSQL as my database for testing.
                          Alex Collier

                          "The spread of computers and the Internet will put jobs in two categories. People who tell computers what to do, and people who are told by computers what to do"

                          AA Builds from 5221_5152 to Pre-releases >> Deploying to IIS in AWS

                          Comment


                            #14
                            Re: Pre-release Multi-Tenant Connection String

                            Really odd. You're not seeing any of the issues I'm seeing. Thanks anyway for having a look.

                            This is what I'm seeing... 'd' is the value of my TenantId field and the value of the session variable.

                            Tenant.PNG

                            I'm also seeing this in my List Properties after adding a WHERE clause...

                            Tenant2.PNG

                            So... essentially... all I'm seeing is a mess. Not sure what's wrong.

                            Comment


                              #15
                              Re: Pre-release Multi-Tenant Connection String

                              David i have tried breaking it and it simply works so not sure what you are doing different. Can someone else test this feature.

                              The {if} in SQL Query was in the release prior so don't think is related and does not seem to affect it anything. Must be an expression not fully evaluating when displaying in the alpha developer
                              Alex Collier

                              "The spread of computers and the Internet will put jobs in two categories. People who tell computers what to do, and people who are told by computers what to do"

                              AA Builds from 5221_5152 to Pre-releases >> Deploying to IIS in AWS

                              Comment

                              Working...
                              X