Preprocess Query on a View

Any help would be fab...
In my project I have built a SqL view that combines a number tables for an MI report which I have imported into Lightswitch. This new Lightswitch table (view) has no additional relationships as all Foreign keys on related tables are already consumed by existing
collections (and therefore hidden within EF).
I need to run this table through a query pre-process to restrict the number of rows returned as it is on one side of a many-to-many relationship
[Property]<-----[Properties_In_Region]----->[Region]
I have been trying many ways to setup the pre-process all to no avail. Manual linq joins do not seem to be supported so I reverted to writing an initial query to return the associative table (Properties_In_Region) to then join to the query. I noticed however
that the initial query needed t be  IEnumerable, however I cant seem to get the syntax even for that...my code is.....
partial void Q_V_MI_People_Projects_PreprocessQuery(long? Person_Region_ID, long? Property_Region_ID, ref IQueryable<V_MI_People_Project> query)
IEnumerable<Region_Ass_SiteProperty> Properties_In_Region = DataWorkspace.POL_PSOData.Region_Ass_SiteProperties.Where(a => a.Region.ID == Property_Region_ID);
query = from MI in query
join PR in Properties_In_Region
on MI.Property_ID equals PR.Region.ID
select MI;
This is the only combination (with an IEnumerable type)  that I can get anywhere close to the query working. However even with this option the line starting with IEnumerable failes with a conversion error...one that I cant seem to fix.
I assume that this should be easy, but no matter what I try there seems to be a conversion error, something of the syntax:
Cannot implicitly convert type 'Microsoft.LightSwitch.IDataServiceQueryable<LightSwitchApplication.Region_Ass_SiteProperty>' to 'System.Collections.Generic.IEnumerable<LightSwitchApplication.Region_Ass_SiteProperty>'. An explicit conversion exists
(are you missing a cast?)
Regional_Assignments = from RS in DataWorkspace.POL_PSOData.Region_Ass_SiteProperties
where RS.Region.ID == Property_Region_ID
select RS;
query= from MI in query
join PR in Regional_Assignments
on MI.Property_ID equals PR.Region.ID
select MI;
I also tried to do it via a Contains (IN) clause, but the syntax for a .contains does now appear....SQL was so much easier :)
I also tried this combination but the Join fails  
Does anyone have a suggestions?
Thanks

Hi,
May be I'm not sure what you want to achieve. I use the prerocess query in this way
partial void Q_V_MI_People_Projects_PreprocessQuery(long? Person_Region_ID, long? Property_Region_ID, ref IQueryable<V_MI_People_Project> query)
query = query.where(x => x.PropertyID == PropertyRegionID and x.whateverID == Person_RegioID)
I'm sorry if the code is not exactly right, because I'm developing in VB. But in VB I will do it in this way
Hope this helps and Kind Regards
Thomas

Similar Messages

  • Select query in materialized view with two dblinks

    Hi All,
    We have oracle 10g On windows.
    We are trying to create materialized view. Scenario is we have base table on other database and we are creating mview on different database.
    Basa database have two schema's and i am selecting records from that two schema's using two private db links.
    But when i am tryin gto create mview its not getting created. After 15 hrs. its still showing creation command and not finished.
    Query is :-
    Is it good practice to have two db links in select query of materialized view.

    Billy  Verreynne  wrote:
    Chanchal Wankhade wrote:
    Is it good practice to have two db links in select query of materialized view.Same db link being used twice, or two different db links?
    If the former, you ideally want the local Oracle db to send the join to the remote database, and for the remote database to drive the join between those 2 tables. There is a hint (<i>driving_site</i>) that can be used - or the join query can be defined on the remote database as a view, and the local materialised view can then use that remote view.
    If you have 2 different db links and joining across these - usually a bad idea to perform distributed database joins. There are lots of limitations as to how the tables can be joined. Worse case, full table scans of both remote tables, pulling all the rows from the 2 remote database tables to the local database, and joining these on the local database.
    I have seen some severe performance issues in the past as a result of distributed joins. I'll rather use 2 materialised views for pulling both distributed tables's data locally, and then do the join on local data (using indexes, partition pruning, etc)Hi Billy,
    My scenario is i have two database database A and database B. Database A is having two schema's SCOTT AND HR. SCOTT schema have select privileges on HR schema.
    DB LINK is between Database B to Database A. name is db.link.B.A.oracle.com.
    What if i priovide while creating materialized view, the schema name before the table name in database B for this particuler table so it will pick up the table from that schema using same DB LINK(db.link.B.A.oracle.com.) that i am using to fetch records from SCOTT schema.
    Above schnario is like two base schema's and one db link using two schema.

  • Query SharePoint List View

    As per http://msdn.microsoft.com/en-us/library/ms434064.aspx if we use
    list.GetItems(query, view.ID.ToString("B").ToUpper());
    properties of the view that is specified by the viewName parameter override the properties that are specified in the query object that is passed through the query parameter. For example, if the query
    object includes a tag that specifies only items containing a particular column value, while the view specifies to return all items, this method retrieves all of the items
    So is there any way to query a sharepoint list view (not All Items) using CAML query?
    I this retrieving view in a data table and query it later, which is an option but might give a performance degradation.
    Regards, Aj (http://www.aj-sharepoint.blogspot.com/) MCTS

    Hello,
    Did you try with SPView.Query method? If not then this can be query to specific view.
    http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spview.query.aspx
    Hemendra:Yesterday is just a memory,Tomorrow we may never see
    Please remember to mark the replies as answers if they help and unmark them if they provide no help

  • Snowflake dimension: named query vs. database view

    A test question features a Product table with a Product Size code; Product Size description is taken from ProductSize table. As far as I can tell, the question asks me to choose between (a) setting up a database view joining Product and ProductSize, and
    (b) doing the join in a data-source-view named query. I don't see a clear winner. (My thinking is as follows.  Yes, he view would speed up the processing, even if not materialized. On the other hand, with a small dataset, the performance gain would be
    minor in absolute terms. Do I want to have an extra database object in the picture?) Yet the question's author does. Can anyone advise please?  

    Hi Demyan,
    According to your description, you want to know which is better, using named query in datasource view or using database view, right?
    Based on my research, there is no performance differences between using named query in datasource view and using database view because they both result in SQL query being sent to the source system. Here is a blog which discuss this issue.
    Consistency: If you already have logic in database views, I would continue to use them. As long as you know that you go to one spot to view/change the logic. Putting the logic in 2 different spots could lead to confusion.
    Security Permissions: often you may not have permission to alter the source databases, in this case you have no choice but to setup named queries in the dsv.
    Reference
    http://geekswithblogs.net/darrengosbell/archive/2006/09/05/90278.aspx
    http://bennyaustin.wordpress.com/2013/07/16/dbview/
    Regards,
    Charlie Liao
    TechNet Community Support

  • Changing the query on a view object

    I have a view object right now, based on an entity. It is the default view object, so that means the query in the view object is straight forward, it grabs all of the attributes from the table. And there is no WHERE clause.
    In reality I only want to show a finite set of rows from my table. Every time a record is changed/edited in this entity and committed, a new row in the database is created with the same information (I'm using CreateWithParams) except for a few columns.
    I actually don't really have update on this table, just creation of new rows. But to the user, I want it to 'look' like they are editing something in the table.
    Example:
    12, 11:32,Thompson, 60 (the user edits this information in an adf table, and a new row is created in the db)
    12, 11:55, Thompson, 75
    I have a timestamp (see above) field in the database that is used as part of my primary key, so that I know which record is the latest.
    When the VO query is run, I want the user to only see the latest row from the db.
    12, 11:55, Thompson, 75
    So...
    I went to my VO, and I changed the WHERE query to add this:
    where t1.TimeStamp = (Select MAX(t2.TimeStamp) FROM rcl.x t2 where t1.uid = t2.uid);
    Now, this isn't a mysql/sql question. There's actually a better query that I'd rather run, but the VO editor doesn't allow me to change the query itself....
    When I save the new WHERE to my VO, run my page again, I get the expected result (showing me only the latest records).
    However, when I try and sort on the table in which my data is displayed, I am now getting ORDER BY errors.
    I don't want my VO to be read-only sql based. I want to be able to update my table, so I have my VO running off of the entity.
    Why doesn't the VO allow me to change the query itself? (Like do a subquery, instead of having my where clause do the work)
    Why are order by errors being thrown when I sort on my adf table after changing the where clause in my view?
    Hopefully I wasn't too convoluted in the explanation of my problem..
    Thanks in advance,
    Joel

    HI Joe,
    Regarding your problem you can do one of the following tasks:
    1- easily to tuning on your view object, I mean in the tuning page of the view you can set that only return 1 record or 2-3 record fetch not all the record.
    in the order by you will order by the timestamp field and descending.
    2- you can order by the timestamp descending and in the where clause only set the rownum<2 (will return the last record) you can also set rownum<5 and get the 4 last record etc.
    3-editing the view query in the expert mode is not advised at all because of many consequences that you will face.
    4- maybe it is not bat that you add a readonly view for the table you mentioned and every time you unpdate the entity just re-execute the read-only view.( this method maybe is good maybe is not it depends on your business logic)
    Regards.
    Edited by: Amir Khanof on Sep 3, 2010 11:11 PM

  • Running a query in a View Designer results in an error, but running the same query in a Query window works

    Hi everyone,
    Just as my title says, I have a query which I've written in a query window and it works perfectly.
    But when I try to add the query code into the view designer, it throws a Syntax error.
    Error in ON clause near '('.Unable to parse query text.
    Also, when running the query from the view designer (pressing red exclamation mark) I get a different error.
    SQL Execution Error.Executed SQL statement: SELECT Sku, ParentSku, UPC, ...Error Source: .Net SqlClient Data ProviderError Message: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
    Has anyone else experienced this and is there any workaround?
    I have tried to create the view with T-SQL (CREATE VIEW etc.), but when opening it in the view designer I get the error from the 1st image.
    Thank you,
    Radu

    Hi Radu,
    Yes, I have faced similar issue. I had a View and it was working totally fine but when once I opened it in via right click - View Design, it was giving parse error.
    Cause is that Query designer parse and executes the query without error but the way View designer works, it can't parse it.
    Later I ignored View desinger and just used T-SQL like CREATE/ALTER view.
    Workaround is to do right click on View - Script View as - CREATE To/ ATER To.
    Regarding Timeout error, again the issue with View designer which couldn't execute query in there and ended up with timeout error.
    If your SELECT query and SELECT * FROM YourView works fine in Query designer, you are good to go.
    Similar threads:
    View with errors still saved, and still works...
    Parsing error when creating view
    -Vaibhav Chaudhari

  • Select query written on view giving dump

    Hi All,
    I have written the following query on COAS view in my code:
          SELECT aufnr bukrs INTO TABLE gt_aufnr
            FROM coas
              WHERE
                    aufnr IN r_aufrm AND
                    auart IN s_auart AND
                    autyp = c_autyp_01 AND
                    kokrs = c_kokrs_mbca.
    When records in range r_aufrm are too many like 6000 or so it gives me a run time error on this query - DBIF_RSQL_INVALID_RSQL. Error description says size of select query is large.
    Question : Is this bug coming because I am using the view. If i select the records on table AUFK (only table on which the view is created), will it rectify the problem?? I am asking this because it's in production and I cant make any change and test then and there.
    Note: the range r_aufrm contains two types of records for AUFNR - 1. with sign GE and others with sign LE. So I cannot use for all entries. If I still can, please tell me how?
    Thanks a looot!
    Waiting for the response,
    Navita

    Thanks All!!
    I think, this range limit has caused the problem. Range limit is 999 records.
    Just one question I have. At runtime when I check the number of entries in r_aufrm in the query, I get 6000 entries. So, does it allow 6000 records to enter the range variable even if it has a limit of 999. Is it the case that, in select query only it will throw a dump if records in range exceed 999??
    SELECT aufnr bukrs INTO TABLE gt_aufnr
    FROM coas
    WHERE
    aufnr IN r_aufrm AND
    auart IN s_auart AND
    autyp = c_autyp_01 AND
    kokrs = c_kokrs_mbca.
    Please clear my doubt.
    Thanks a lot for ur help!!!!
    Navita

  • Query on Materialized view and materialized view log

    I am creating a materialized view something like this.but getting following error:
    ERROR at line 1:
    ORA-12032: cannot use rowid column from materialized view log on "SCOTT"."EMP"
    SQL> create snapshot log on scott.emp;
    Materialized view log created.
    SQL> create materialized view scott_emp refresh fast on demand as select deptno,sum(sal) sum_sal from scott.emp group by deptno;
    ERROR at line 1:
    ORA-12032: cannot use rowid column from materialized view log on "SCOTT"."EMP"
    Note when i have my query in materialized view as "select * from emp;" in place of
    "select deptno,sum(sal) sum_sal from scott.emp group by deptno;" This code works fine.
    How do i have a materialized with with a group by clause.
    Thanks in Advance

    Got the answer myself.
    I wasnt adding all the required columns.
    CREATE MATERIALIZED VIEW LOG ON scott.emp
    WITH SEQUENCE, ROWID (<all the required columns>)
    INCLUDING NEW VALUES;
    Anyways,
    Thanks guys...

  • Encapsulating a query in a view with "parameters"

    I have a complex query using analytic functions and an inline view, something like:
    select * from (
    select a, b, c, row_number() over (partition by x, order by y) rn
    where b like 'XXX%'
    where rn = 1;
    (The actual query is a little more complex, but that's the idea). This query performs very well.
    As the query is of some general use, I'd like to package it up. However, the 'XXX%' pattern will vary with each use.
    If I try to make a view v which is the query minus the XXX% where clause, the optimiser cannot merge the where clause and the view in a query like
    select * from v where b like 'XXX%'
    This doesn't surprise me too much - merging like that is going to be hard (if indeed it's possible at all!) As a result, the query using the view is significantly slower.
    Is there any way of making my original query reusable? For PL/SQL, I can use a function returning a REF CURSOR and taking the pattern as a parameter - but I need to use this from SQL.
    I could write a pipelined function and then do select * from table(my_fn('XXX%')). However, this is in 8i, where I don't have that option. Also, for a pipelined function, I'd need to define a record type and an associated table type - what seems like quite a lot of code for what is conceptually pretty simple.
    Have I missed any obvious options? I can live with the pipelined function and "no way until 9i" - but only as a general answer. For my current specific issue, that's equivalent to "you can't do this".
    I thought of using SYS_CONTEXT, but if I understand correctly, I can only use that in PL/SQL, as I can't set the context outside of an authorised package. Is that right, or is there a way I could use contexts? (Hmm, I need to be able to use the query from SQ, but I could probably execute a PL/SQL procedure before running the query, to set things up - does that help?)
    Thanks for any suggestions.
    Paul.

    SYS_CONTEXT would work, as would package global variables.
    I once wrote an example about this (though with TABLE function but for your case the principle stays the same) which you may find here:
    Re: TABLE FUNCTION - Using database view - send parameters to the function.
    hth, michael

  • Can I write a SELECT query on maintenance view?

    Hi,
    Can we write a select query on maint. view? If not what are the views on which we can write the select queries?

    hi,
    you can write select query for maintenance view, database view and projection view but not helpview as it is only intended for f4 help.
    reward if helpful
    prasanth

  • Need help with SQL Query with Inline View + Group by

    Hello Gurus,
    I would really appreciate your time and effort regarding this query. I have the following data set.
    Reference_No---Check_Number---Check_Date--------Description-------------------------------Invoice_Number----------Invoice_Type---Paid_Amount-----Vendor_Number
    1234567----------11223-------------- 7/5/2008----------paid for cleaning----------------------44345563------------------I-----------------*20.00*-------------19
    1234567----------11223--------------7/5/2008-----------Adjustment for bad quality---------44345563------------------A-----------------10.00------------19
    7654321----------11223--------------7/5/2008-----------Adjustment from last billing cycle-----23543556-------------------A--------------------50.00--------------19
    4653456----------11223--------------7/5/2008-----------paid for cleaning------------------------35654765--------------------I---------------------30.00-------------19
    Please Ignore '----', added it for clarity
    I am trying to write a query to aggregate paid_amount based on Reference_No, Check_Number, Payment_Date, Invoice_Number, Invoice_Type, Vendor_Number and display description with Invoice_type 'I' when there are multiple records with the same Reference_No, Check_Number, Payment_Date, Invoice_Number, Invoice_Type, Vendor_Number. When there are no multiple records I want to display the respective Description.
    The query should return the following data set
    Reference_No---Check_Number---Check_Date--------Description-------------------------------Invoice_Number----------Invoice_Type---Paid_Amount-----Vendor_Number
    1234567----------11223-------------- 7/5/2008----------paid for cleaning----------------------44345563------------------I-----------------*10.00*------------19
    7654321----------11223--------------7/5/2008-----------Adjustment from last billing cycle-----23543556-------------------A--------------------50.00--------------19
    4653456----------11223--------------7/5/2008-----------paid for cleaning------------------------35654765-------------------I---------------------30.00--------------19
    The following is my query. I am kind of lost.
    select B.Description, A.sequence_id,A.check_date, A.check_number, A.invoice_number, A.amount, A.vendor_number
    from (
    select sequence_id,check_date, check_number, invoice_number, sum(paid_amount) amount, vendor_number
    from INVOICE
    group by sequence_id,check_date, check_number, invoice_number, vendor_number
    ) A, INVOICE B
    where A.sequence_id = B.sequence_id
    Thanks,
    Nick

    It looks like it is a duplicate thread - correct me if i'm wrong in this case ->
    Need help with SQL Query with Inline View + Group by
    Regards.
    Satyaki De.

  • Query's Quick Viewer Simulation.

    Hi everybody.
    I'm trying to do anything similar to the Query's Quick Viewer, but I don't know how exactly do the dragging simulation for make a field wider.
    Doen anyone knows how to do it?
    Cheers!!!

    HI,
    U can go through the transaction  SQVI.
    From there itself u can create any new quick viewer like that
    Thanks,
    Shankar

  • Different query for same view showing on different page as list view web part

    Hi all,
    If you have three pages and want to add Documents library as list view web part to these three pages with different query (Programmatically), Do you need to create three different views for Documents library or it is possible to have different query when
    I add the list view web part to the page?
    thanks and appreciate all kind of advice.

    When you add a List View Web Part to a page, SharePoint actually copies the selected view query into the Web Part itself. For example:
    You create a custom view on a list called "Mede71's View" and you configure it only show the Title column
    You add a List View Web Part to a page and update the settings to use the "Mede71's View"
    You go back to your list and change "Mede71's View" and add the "Modified Date" column
    Your List View Web Part will not reflect this change because in step 2 the Query from the view was copied into the List View Web Part
    When you programmatically add the List View Web Part, you can either assign it to an existing view or supply the query directly. If you want to instruct users to be able to add their own web parts pointing to those views in the future, I would recommend
    creating the views first.
    Dimitri Ayrapetov (MCSE: SharePoint)

  • Writing an sql script to query a calculation view  and an attribute view inside a calculation view

    Hi,
    I was trying to query a calculation view with sql , and as one of the input parameters i was trying to give a query over an attribute view
    So my sql will look like this
    SELECT * FROM "MyApp.calculation_views::GET_CHECKLIST_FOR_ACCOUNT"('PLACEHOLDER' = ('$$ACCOUNT_ID$$', '1','$$CHECKLIST_ID$$',' SELECT CHECKLIST_ID FROM "MyApp"."CHECKLIST_PRODUCTS" WHERE PRODUCT_ID = 5'));
    So as an input to $$CHECKLIST_ID$$   i wanted to give an id selected from checklist products table where products id is passed as an input
    but this is not working, i am getting syntax error at the $$CHECKLIST_ID$$ there i can only pass values like  $$CHECKLIST_ID$$, '1'
    Please help me to figure out which  is the correct syntax  i tried putting the sql statement to get the checklist_id in '' but it too didnot work

    I'm not sure you'll be able to do a SELECT subquery directly in the placeholder definition, but you can create another calc view (scripted) as a wrapper to your original calc view and use a scalar variable to pass the parameter over.
    Try this as the base code for your second calc view:
    var_id VARCHAR(10);
    BEGIN
         SELECT CHECKLIST_ID INTO :var_id FROM "MyApp"."CHECKLIST_PRODUCTS" WHERE PRODUCT_ID = 5;
         var_out = SELECT * FROM "MyApp.calculation_views::GET_CHECKLIST_FOR_ACCOUNT"
              (PLACEHOLDER."$$ACOUNT_ID" => 1, PLACEHOLDER."$$CHECKLIST_ID$$" => :var_id);
    END
    You could even create input parameters in the second Calc View for the Account Id & Product Id (which are currently hard coded in your code below).
    Best,
    Henrique.
    PS: avoid using SELECT * for the var_out in the scripted calc view. It's better, from a code maintenance perspective, to explicitly define the columns you're outputting.

  • HTML Client: post process a preprocess query?

    I am trying to set up a method for quoting jobs and keeping track of parts for the quote. Many quotes can have many parts, so I have a many to many relationship between Quotes and Parts via a table called QuoteParts.
    I am trying to design an Add Edit Quote screen with two tabs: one has the quote details and a list of parts for this quote. The other tab has a list of parts available to go on the quote. I have it set so when you tap the item in the list not added to the
    quote, it adds the QuotePart and the part moves from the list of available parts to the quote. 
    I am filtering the two lists using two preprocess queries. They both work fine when opening the screen, however when I add a new part, the part shows up in both lists. I'm assuming it's because the preprocess query didn't preprocess, since the data was added
    to the screen and has not been saved yet. If I save and reopen the screen, all shows up fine. 
    So on to my question: Is there any way to POST process a preprocess query?
    I got the idea of how to work with this via http://blogs.msdn.com/b/lightswitch/archive/2013/04/10/many-to-how-many-html-edition-heinrich-wendel.aspx

    Close, try this:
    myapp.BrowseParts.AddPart_execute = function (screen) {
    myapp.showAddEditPart(null, {
    beforeShown: function (newScreen) {
    var newPart = new myapp.Part();
    newPart.Hardware = screen.Hardware;
    newScreen.Part = newPart;
    }, afterClosed: function (newScreen, navigationAction) {
    if (navigationAction === msls.NavigateBackAction.commit) {
    // Save all changes to parts
    return myapp.activeDataWorkspace.ApplicationData.saveChanges().then(function () {
    // Refresh the Parts that other code does not reach
    screen.UsedParts.refresh();
    screen.UnusedParts.refresh();
    Be careful about creating global scope functions like you did: RefreshPartsLists.
    Cheers
    Dave
    Dave Baker | AIDE for LightSwitch | Xpert360 blog | twitter : @xpert360 | Xpert360 website | Opinions are my own. For better forums, remember to mark posts as helpful/answer.

Maybe you are looking for

  • Need a rolling count of rows from table using just SQL

    Oracle 11gR2 RHEL 6.4 Given the following table data: EMPLOYEE     HIRE_DATE     TERM_DATE     DEPT John Doe          01/01/13                                   101 Jane Smith       01/05/13                                   102 Bob Jones        02/0

  • H.323 and SCCP in CCME

    I try to make a Cisco Call Manager Express to work with H.323 and SCCP in the same time , each of them working good but they didn't work together . I mean that H.323 phone can to dial H.323 phone ,and SCCP phone can to dial SCCP phone , but H.323 pho

  • Unattended.xml : remove a child item containing a value

    Hi all, I have in a section :         <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xml

  • How to remove Business content objects that are not required?

    Hi all of you, I had extracted some of the objects from business content from FI such as General LEdger and Asset Accounting. After extracting it, my c drive is full and I am not able to open any other file. So I want to remove these FI objects that

  • Invisible classes :o?

    Well if you haven't, he's a guy (or company, i dont know really), that makes some pretty amazing XML galleries and stuff. The thing is, he uses classes he made for his work, but I have no idea where they are. They're not in the project....they're not