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

SQL query - how do you use the result?

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

  • SQL query - how do you use the result?

    In the script genie "Execute SELECT Query on A SQL database" there are three actions to choose from.

    1. Open window to preview result
    2. Generate code to loop over rows
    3. Dump results to a variable

    There seem to be a missing action. There is no "filter records" option.

    Any suggestions on how to use the result to filter the records in the form initiating the query?

    The records in the form and the SQL query is using the same active link table.


  • #2
    Re: SQL query - how do you use the result?

    The WHERE clause in the select statement is what defines which records are selected. I am unsure as to why you want to "filter records" on top of that?

    Comment


    • #3
      Re: SQL query - how do you use the result?

      The selection from the SQL query is put in a result. From my experience the result is not affecting what records are displayed. I would like to use the result to display the records from the query in a browse or a form. Which of the actions would do this?

      Comment


      • #4
        Re: SQL query - how do you use the result?

        Originally posted by ulfk View Post
        The selection from the SQL query is put in a result. From my experience the result is not affecting what records are displayed. I would like to use the result to display the records from the query in a browse or a form. Which of the actions would do this?
        Then use a passive or active linked table...
        Al Buchholz
        Bookwood Systems, LTD
        Weekly QReportBuilder Webinars Thursday 1 pm CST

        Occam's Razor - KISS
        Normalize till it hurts - De-normalize till it works.
        Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
        When we triage a problem it is much easier to read sample systems than to read a mind.
        "Make it as simple as possible, but not simpler."
        Albert Einstein

        http://www.iadn.com/images/media/iadn_member.png

        Comment


        • #5
          Re: SQL query - how do you use the result?

          Originally posted by ulfk View Post
          The selection from the SQL query is put in a result. From my experience the result is not affecting what records are displayed. I would like to use the result to display the records from the query in a browse or a form. Which of the actions would do this?
          As the previous poster explained, an active link table will show the results of such a query in a browse - you were using the genies to generate the SQL query, which is fine for using such query results in Xbasic scripts... but if you want to use this data in forms and browses there are far easier ways :)

          Just specify the query as the datasource for an active link table, then create the browse or form on that table like you would for a DBF table :)

          Comment


          • #6
            Re: SQL query - how do you use the result?

            :)

            I'm already using an active link table. It is not working well for me so I guess I should try to explain what I'm trying to accomplish.

            1. A form has a search field.

            2. User enters text in the field and hits enter.

            3. A variable hooked up to the field passes the text to an argument.

            4. The argument is a part of an SQL query and looks for partial matches.

            5. After running the SQL query the form should update with the matches.

            It is point 5 I'm unable to accomplish.

            Not sure if a "pre-filtered" table can be used with the variable, but I will try.

            I would like to add, I first tried the simple way using a native A5 query which should have been automatically translated to SQL on active links. Unfortunately it does not work well with variables and partial matches. It takes minutes to process. It seem to fetch all records (10000+) from the MySQL database. Passing it to an intermediate A5 dbf table. Then querying the A5 dbf table itself. Very slow.

            Comment


            • #7
              Re: SQL query - how do you use the result?

              Originally posted by ulfk View Post
              5. After running the SQL query the form should update with the matches.

              It is point 5 I'm unable to accomplish.
              If you press F5 (refresh) do you see the expected data?

              Originally posted by ulfk View Post
              I first tried the simple way using a native A5 query which should have been automatically translated to SQL on active links.
              I don't understand why you think it should have translated to an SQL query. I want to be able to use arguments to pass information to the where clause of an SQL query and use the A5 native filtering when I need it. Too much automatic translation has a price too...
              Al Buchholz
              Bookwood Systems, LTD
              Weekly QReportBuilder Webinars Thursday 1 pm CST

              Occam's Razor - KISS
              Normalize till it hurts - De-normalize till it works.
              Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
              When we triage a problem it is much easier to read sample systems than to read a mind.
              "Make it as simple as possible, but not simpler."
              Albert Einstein

              http://www.iadn.com/images/media/iadn_member.png

              Comment


              • #8
                Re: SQL query - how do you use the result?

                Originally posted by Al Buchholz View Post
                If you press F5 (refresh) do you see the expected data?
                No, F5 does nothing. I'm unable to pass the result from the query to the form with the available options (see original post).

                Originally posted by Al Buchholz View Post
                I don't understand why you think it should have translated to an SQL query. I want to be able to use arguments to pass information to the where clause of an SQL query and use the A5 native filtering when I need it. Too much automatic translation has a price too...
                A5 marketing I guess :) See the manual

                Comment


                • #9
                  Re: SQL query - how do you use the result?

                  I've tried the ServerSideQueryRun.

                  1. works (form shows only the record where ID=000002)

                  Code:
                  v9_test.ServerSideQueryRun("ID = '000002'")
                  2. does not work (shows all records)

                  Code:
                  DIM args as sql::arguments
                  args.set("search_name","000002")
                  v9_test.ServerSideQueryRun("ID = :search_name")
                  Any suggestion to what might be wrong with the argument setup?

                  Comment


                  • #10
                    Re: SQL query - how do you use the result?

                    I don't use SQL backends but after a quick look at the .ServerSideQueryRun() function I reckon it doesn't take SQL arguments. I think it just takes standard A5 filter syntax. The function probably creates the arguments as part of its own process using the filter you supply. Since the code in your point 1 works and going by normal A5 filter syntax I would say you have to use something like
                    Code:
                    search_name = "000002"
                    v9_test.ServerSideQueryRun("ID= ' "+search_name+" ' ")  'spaces added around single quotes for clarity
                    or
                    Code:
                    search_name = "000002"
                    v9_test.ServerSideQueryRun("ID=\""+search_name+"\"")
                    or
                    Code:
                    search_name = "000002"
                    v9_test.ServerSideQueryRun("ID="+quote(search_name))
                    Tim Kiebert
                    Eagle Creek Citrus
                    A complex system that does not work is invariably found to have evolved from a simpler system that worked just fine.

                    Comment


                    • #11
                      Re: SQL query - how do you use the result?

                      Ulf,

                      I just read through most of the pages you provided a link to in which you were trying to substantiate your premise that
                      using a native A5 query which should have been automatically translated to SQL on active links
                      Here is a quote from just a small part of those pages and there is another section just after this quote that presents yet another way to query the active link SQL and is basically the same scenario.
                      The Query Optimizer uses these table methods to determine which part of a filter can be executed on the server and which part must be executed locally and whether the sorting can be done on the server:
                      <tbl>.to_sql_filter(C filterExpression, c separator)
                      <tbl>.to_sql_order(C orderExpression, c separator)
                      <tbl>.to_sql_expression(C expression)
                      This is quite a bit different from just having a local query.

                      I gather from this and what comes after this that sure, a local query can be done on whatever records you already have brought over from the active linked SQL into a local table---but seeing as how not all of the records have been brought over, how do you expect to query the SQL records unless you specifically tell Alpha to do so using the above quoted query syntax or what follows this right after (in your link)??

                      I have no knowledge of doing much of this other than using a Where clause to query an outside database such as SQL and am just going by what is spelled out in the help file (that you presented in the link).... I hope that I am not offending you but it sure seems rather straightforward and well written to me! I cannot see where you saw the implication that you have asked about. Maybe if you could show me (us), then if ambiguous a note sent to Alpha to straighten it out for future users would be in order (the Comments hotspot located at the bottom of all the documentations).

                      If it actually did as you are thinking then I would become rather confused as that is not what the help file (your link) states.
                      Mike
                      __________________________________________
                      It is only when we forget all our learning that we begin to know.
                      It's not what you look at that matters, it's what you see.
                      Henry David Thoreau
                      __________________________________________



                      Comment


                      • #12
                        Re: SQL query - how do you use the result?

                        Has someone found manuals about:

                        <tbl>.ServerSideQueryRun()
                        <tbl>.ServerSideQueryRetract()
                        <tbl>.ServerSideQueryRetractAll()
                        <tbl>.ServerSide_Records_Get()


                        ??

                        Ive tried to use the first one, but I only get blanks records. My code is:


                        tempP = Form.view("aForm")
                        ok = tempP.ServerSideQueryRun("aField="+quote(XUO))

                        where XUO is a variable with the filter value.
                        I dont get any errors, but only blanks records. Ive tried with MS SQL2K5 and IBM DB2 V9. Both, same results.

                        Im migrating from DBF to SQL with active-links tables.

                        Thanks in advance

                        Angel

                        Comment


                        • #13
                          Re: SQL query - how do you use the result?

                          Originally posted by ANGEL SANCHEZ View Post
                          Has someone found manuals about:

                          <tbl>.ServerSideQueryRun()
                          <tbl>.ServerSideQueryRetract()
                          <tbl>.ServerSideQueryRetractAll()
                          <tbl>.ServerSide_Records_Get()


                          ??

                          Ive tried to use the first one, but I only get blanks records. My code is:


                          tempP = Form.view("aForm")
                          ok = tempP.ServerSideQueryRun("aField="+quote(XUO))

                          where XUO is a variable with the filter value.
                          I dont get any errors, but only blanks records. Ive tried with MS SQL2K5 and IBM DB2 V9. Both, same results.

                          Im migrating from DBF to SQL with active-links tables.

                          Thanks in advance

                          Angel
                          I believe the functions in question are ones to use when a browse or form is open.... beyond that I have no clue... if there is any documentation on them it will be under "What's new in Version 9" in the help section here: http://support.alphasoftware.com/Wha...V9/NewInV9.htm

                          (Under xBasic you will find the equivalent of the help file entries under <layout>.ServerSideQueryRun() and so forth)

                          If you want to execute a SQL query in Xbasic, it is more useful to do so against the database directly, such as sql_records_get() and so forth.

                          Comment


                          • #14
                            Re: SQL query - how do you use the result?

                            I had the same problem a few days ago...
                            the solution is very simple
                            1. use the SQL Genie to create the statement (OK you have done this)
                            2. use the results to create a passive table which you would be able to use to show your data!!
                            3.the next problem that you solve will be the refresh the data to that passive table (that actually re-runs your SQL statement) -- use refresh passive table before opening your form - browser

                            hope this will help you!!

                            Comment


                            • #15
                              Re: SQL query - how do you use the result?

                              Originally posted by Karaiskakis View Post
                              I had the same problem a few days ago...
                              the solution is very simple
                              1. use the SQL Genie to create the statement (OK you have done this)
                              2. use the results to create a passive table which you would be able to use to show your data!!
                              3.the next problem that you solve will be the refresh the data to that passive table (that actually re-runs your SQL statement) -- use refresh passive table before opening your form - browser

                              hope this will help you!!
                              That was a goal from the goal keepper!!!!

                              It works fine with Passive table.

                              Thanks a lot, Mario.

                              Comment

                              Working...
                              X