Hoe to link to SQL statements?

Hi
I'm new to the BIP. I have two SQL queries. One which is supposed to group details by station. Second one is the details that display date, readings, consignments and so on. This one contains some nested sub-queries. If I use these as two separate data sets, is it possible to join them?
Thanks and kind regards,
Aparna

Hi
We have written a bkend procedure to get the results and populate the data in Oracle Reports. I am trying to reproduce the same report using BI Publisher.
In the bkend procedure we have two cursors.
Here are both the queries:
CURSOR c_weighbridges
IS
SELECT DISTINCT static_scale_readings.fk_weighbridge_station,
weighbridge_stations.code, weighbridge_stations.NAME
FROM static_scale_readings, weighbridge_stations
WHERE static_scale_readings.fk_weighbridge_station =
weighbridge_stations.d_pk
AND static_scale_readings.status IN
('COMPLIANT', 'NON-COMPLIANT')
AND TRUNC (static_scale_readings.ss_record_date) BETWEEN p_d1 AND p_d2
AND weighbridge_stations.code BETWEEN p_s1 AND p_s2
ORDER BY fk_weighbridge_station;
This populates a c_rec
The second cursor references the c_rec:
CURSOR c_overload_details
IS
SELECT static_scale_readings.d_pk,
static_scale_readings.ss_reading_no,
trunc(static_scale_readings.ss_record_date) ss_record_date,
static_scale_readings.horse_registration_no,
static_scale_readings.fk_consignment_type,
consignments.description,
transport_operators_v.name,
--static_scale_readings.drv_surname||' '||static_scale_readings.drv_first_names drv_name,
SUM(static_scale_rd_dt.overload) EXCESS,
(select LOCATIONS.LOCATION_NAME
from SS_VEH_DRV_TRIP_DT,LOCATIONS
where SS_VEH_DRV_TRIP_DT.FK_SS_READING =STATIC_SCALE_READINGS.D_PK
and SS_VEH_DRV_TRIP_DT.FK_LOC_FROM =LOCATIONS.D_PK
and SS_VEH_DRV_TRIP_DT.trip_sequence in (select min(SS_VEH_DRV_TRIP_DT.trip_sequence)
from SS_VEH_DRV_TRIP_DT
where SS_VEH_DRV_TRIP_DT.FK_SS_READING =STATIC_SCALE_READINGS.D_PK)) LOC_FROM,
(select LOCATIONS.LOCATION_NAME
from SS_VEH_DRV_TRIP_DT,LOCATIONS
where SS_VEH_DRV_TRIP_DT.FK_SS_READING =STATIC_SCALE_READINGS.D_PK
and SS_VEH_DRV_TRIP_DT.FK_LOC_TO =LOCATIONS.D_PK
and SS_VEH_DRV_TRIP_DT.trip_sequence in (select max(SS_VEH_DRV_TRIP_DT.trip_sequence)
from SS_VEH_DRV_TRIP_DT
where SS_VEH_DRV_TRIP_DT.FK_SS_READING =STATIC_SCALE_READINGS.D_PK)) LOC_TOFROM static_scale_readings, consignments,static_scale_rd_dt,transport_operators_v
WHERE trunc(SS_RECORD_DATE) BETWEEN p_d1 AND p_d2
AND fk_weighbridge_station = c_rec.fk_weighbridge_station
AND static_scale_readings.fk_consignment_type = consignments.d_pk
AND static_scale_readings.d_pk = static_scale_rd_dt.fk_ss_reading
AND static_scale_readings.status = 'NON-COMPLIANT'
AND static_scale_readings.ik_transport_operator = transport_operators_v.d_pk
GROUP BY static_scale_readings.d_pk,
static_scale_readings.ss_reading_no,
trunc(static_scale_readings.ss_record_date) ,
static_scale_readings.horse_registration_no,
static_scale_readings.fk_consignment_type,
consignments.description,
transport_operators_v.name
ORDER BY SS_RECORD_DATE;
If I have to use these queries in BIP, how to go ahead?
I have worked on Discoverer and find it much easier to build a data model as Discoverer seems much user friendly. The groupings, aggregation is much easier.
Or may be I'm missing some steps here in BIP. Can you please point me to some good document to follow?
Thanks and kind regards,
Aparna

Similar Messages

  • Passing plsql parm to a sql statement in the procedure  database link name

    Would like to pass a parm that is the database link name to a stored procedure.  I defined this as below. var1 is the name of the db link that I would like to pass
    create or replace procedure   proc1  (var1 in varchar2) as
    cursor c1 is
    select num,name,city from emp@var1;
    However, this is getting a plsql error in the above code   as bad bind variable, db link name expected.
    Is there a method to pass a variable within a stored proc into a SQL statement that has a cursor ..
    thanks

    Hi,
    Database links have to be hard-coded.  If you really need to specify the database link at run-time, then you need Dyanmic SQL.
    Why do you need to do this?   How many databases are involved?  Do you have new database links all the time?  The more you can say about your business requirements, the more helpful we can be.
    Are there only a couple of possible database links?  If so,  you might consider hard-coding each of them, and branching to the appropriate one in your code.
    is the real variable here the environment (Development, Test, Production) that you're in?  For example, do you need to use one database link in Development, a different one in Test, and a third in Production, but you don't want to change the code when you move from one environment to another?  If so, you can try conditional comilation.

  • Create a link in a table calls sql statement

    Hello,
    I'm very new to htmldb but need to complete a project within a tight timeline. I created a sql report in a region. On each row, I have an on/off link, which used to trigger a sql statement. It turns a flag on and off in a table. Key needs to be passed with the link to be used in sql. How do I passed the key in the link and how can I call the sql statement? Where can I put the sql statement? Can someone give me some tips?
    Your help is greatly appreciated!
    Jun

    if you take a look at the "Understanding URL Syntax" section in chapter 6 of our User Guide, you'll see that you can set item values in html db via the URL by passing name/value pairs through the url. to see it in action, use our "Report with links to form on a table (2 Pages)" wizard to generate a form and a report on some table of yours. when you run that report page and click an edit link on it, you'll see how it passes its values to the form page using our URL syntax. in your case you'd want to create an item like MY_PROD_KEY_ITEM and set its value via your link. you'd then run your pl/sql block referring to the value of that item. when doing so, you'd probably want to use the bind variable syntax that's also explained in chapter 6, "Referencing Session State".
    --raj                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • How to see all sql statements on sql commands under history link

    Hi All,
    How to see the all the sql history on sql commands tab.
    I want see all sql statements.
    Where to set if we need to store more sql statments in history.
    We are using Apex3.2 and 10g database(EE).
    Thanks,
    Nr

    I just checked the source code of the SQL commands history region and that report fetches a maximum of 1000 records. I don't know if you change the setting somewhere in the builder, but seeing the code it looks as though 1000 is hard-coded in the report definition(apex 4.0).
    If you need to see all the command history,you can query the original table: APEX_040000.WWV_FLOW_SW_SQL_CMDS
    Note that is an internal table used by apex and hence you might not find any documentation about it(google got me one valid hit: Identifying Inactive Workspaces which seem to confirm the table's use).
    Anyway, here's what you need to do, ask your dba to grant your workspace user select access on this table
    Connect as dba user and run
    GRANT SELECT ON APEX_040000.wwv_flow_sw_sql_cmds to '<WORKSPACE SCHEMA>'Now you can run the following command from your workspace to see the entire command history using
    select * from APEX_040000.WWV_FLOW_SW_SQL_CMDS where parsed_schema = '<WORKSPACE SCHEMA>';You might want to revoke the grant once you have seen the data/taken out an export due to security issues.

  • How to use a Sybase table in Oracle SQL statement?

    How to use a Sybase table in Oracle SQL statement?
    Sybase version : 11.9.2.4
    Oracle version : 10.2.05
    Thanks.

    user12088323 wrote:
    How to use a Sybase table in Oracle SQL statement?
    Sybase version : 11.9.2.4
    Oracle version : 10.2.05
    Thanks.Any Oracle client connected to the Oracle database can access Sybase data through the <font style="background-color: #FFFFCC">Database Gateway for Sybase</font> (it requires an additional license) or the <font style="background-color: #FFFFCC">Database gateway for ODBC</font> (it's free).
    The Oracle client and the Oracle database can reside on different machines. The gateway accepts connections only from the Oracle database.
    A connection to the gateway is established through a database link when it is first used in an Oracle session. In this context, a connection refers to the connection between the Oracle database and the gateway. The connection remains established until the Oracle session ends. Another session or user can access the same database link and get a distinct connection to the gateway and Sybase database.
    Database links are active for the duration of a gateway session. If you want to close a database link during a session, you can do so with the ALTER SESSION statement.
    To access the Sybase server, you must create a <font style="background-color: #FFFFCC">database link</font>. A public database link is the most common of database links.
    SQL> CREATE PUBLIC DATABASE LINK dblink CONNECT TO
    2  "user" IDENTIFIED BY "password" USING 'tns_name_entry';
    --dblink is the complete database link name.
    --tns_name_entry specifies the Oracle Net connect descriptor specified in the tnsnames.ora file that identifies the gatewayAfter the database link is created you can verify the connection to the Sybase database, as follows:
    SQL> SELECT * FROM DUAL@dblink;
    Configuring Oracle Database Gateway for Sybase
    <font style="background-color: #FFFFCC">{message:id=10649126}</font>

  • SQL Statements in ABAP and meaning

    Hello Friends,
    Please, can anybody provide me a documentation on the different ABAP SQL statements and there usage/meanings.
    Thanks,
    Shreekant

    hi,
    goto abapdocu->abap Database access->open Sql you will get examples.
    for documnetation got se38->specify the command and press F1.
    SELECT:
    Put the curson on that word and press F1 . You can see the whole documentation for select statements.
    SELECT result
    FROM source
    INTO|APPENDING target
    [[FOR ALL ENTRIES IN itab] WHERE sql_cond]
    Effect
    SELECT is an Open-SQL-statement for reading data from one or several database tables into data objects.
    The select statement reads a result set (whose structure is determined in result ) from the database tables specified in source, and assigns the data from the result set to the data objects specified in target. You can restrict the result set using the WHERE addition. The addition GROUP BY compresses several database rows into a single row of the result set. The addition HAVING restricts the compressed rows. The addition ORDER BY sorts the result set.
    The data objects specified in target must match the result set result. This means that the result set is either assigned to the data objects in one step, or by row, or by packets of rows. In the second and third case, the SELECT statement opens a loop, which which must be closed using ENDSELECT. For every loop pass, the SELECT-statement assigns a row or a packet of rows to the data objects specified in target. If the last row was assigned or if the result set is empty, then SELECT branches to ENDSELECT . A database cursor is opened implicitly to process a SELECT-loop, and is closed again when the loop is ended. You can end the loop using the statements from section leave loops.
    Up to the INTO resp. APPENDING addition, the entries in the SELECTstatement define which data should be read by the database in which form. This requirement is translated in the database interface for the database system´s programming interface and is then passed to the database system. The data are read in packets by the database and are transported to the application server by the database server. On the application server, the data are transferred to the ABAP program´s data objects in accordance with the data specified in the INTO and APPENDING additions.
    System Fields
    The SELECT statement sets the values of the system fields sy-subrc and sy-dbcnt.
    sy-subrc Relevance
    0 The SELECT statement sets sy-subrc to 0 for every pass by value to an ABAP data object. The ENDSELECT statement sets sy-subrc to 0 if at least one row was transferred in the SELECT loop.
    4 The SELECT statement sets sy-subrc to 4 if the result set is empty, that is, if no data was found in the database.
    8 The SELECT statement sets sy-subrc to 8 if the FOR UPDATE addition is used in result, without the primary key being specified fully after WHERE.
    After every value that is transferred to an ABAP data object, the SELECT statement sets sy-dbcnt to the number of rows that were transferred. If the result set is empty, sy-dbcnt is set to 0.
    Notes
    Outside classes, you do not need to specify the target area with INTO or APPENDING if a single database table or a single view is specified statically after FROM, and a table work area dbtab was declared with the TABLES statement for the corresponding database table or view. In this case, the system supplements the SELECT-statement implicitly with the addition INTO dbtab.
    Although the WHERE-condition is optional, you should always specify it for performance reasons, and the result set should not be restricted on the application server.
    SELECT-loops can be nested. For performance reasons, you should check whether a join or a sub-query would be more effective.
    Within a SELECT-loop you cannot execute any statements that lead to a database commit and consequently cause the corresponding database cursor to close.
    SELECT - result
    Syntax
    ... lines columns ... .
    Effect The data in result defines whether the resulting set consists of multiple rows (table-like structure) or a single row ( flat structure). It specifies the columns to be read and defines their names in the resulting set. Note that column names from the database table can be changed. For single columns, aggregate expressions can be used to specify aggregates. Identical rows in the resulting set can be excluded, and individual rows can be protected from parallel changes by another program.
    The data in result consists of data for the rows lines and for the columns columns.
    SELECT - lines
    Syntax
    ... { SINGLE }
    | { { } } ... .
    Alternatives:
    1. ... SINGLE
    2. ... { }
    Effect
    The data in lines specifies that the resulting set has either multiple lines or a single line.
    Alternative 1
    ... SINGLE
    Effect
    If SINGLE is specified, the resulting set has a single line. If the remaining additions to the SELECT command select more than one line from the database, the first line that is found is entered into the resulting set. The data objects specified after INTO may not be internal tables, and the APPENDING addition may not be used.
    An exclusive lock can be set for this line using the FOR UPDATE addition when a single line is being read with SINGLE. The SELECT command is used in this case only if all primary key fields in logical expressions linked by AND are checked to make sure they are the same in the WHERE condition. Otherwise, the resulting set is empty and sy-subrc is set to 8. If the lock causes a deadlock, an exception occurs. If the FOR UPDATE addition is used, the SELECT command circumvents SAP buffering.
    Note
    When SINGLE is being specified, the lines to be read should be clearly specified in the WHERE condition, for the sake of efficiency. When the data is read from a database table, the system does this by specifying comparison values for the primary key.
    Alternative 2
    Effect
    If SINGLE is not specified and if columns does not contain only aggregate expressions, the resulting set has multiple lines. All database lines that are selected by the remaining additions of the SELECT command are included in the resulting list. If the ORDER BY addition is not used, the order of the lines in the resulting list is not defined and, if the same SELECT command is executed multiple times, the order may be different each time. A data object specified after INTO can be an internal table and the APPENDING addition can be used. If no internal table is specified after INTO or APPENDING, the SELECT command triggers a loop that has to be closed using ENDSELECT.
    If multiple lines are read without SINGLE, the DISTINCT addition can be used to exclude duplicate lines from the resulting list. If DISTINCT is used, the SELECT command circumvents SAP buffering. DISTINCT cannot be used in the following situations:
    If a column specified in columns has the type STRING, RAWSTRING, LCHAR or LRAW
    If the system tries to access pool or cluster tables and single columns are specified in columns.
    Note
    When specifying DISTINCT, note that you have to carry out sort operations in the database system for this.
    SELECT - columns
    Syntax
    | { {col1|aggregate( col1 )}
    {col2|aggregate( col2 )} ... }
    | (column_syntax) ... .
    Alternatives:
    1. ... *
    2. ... {col1|aggregate( col1 )}
    {col2|aggregate( col2 )} ...
    3. ... (column_syntax)
    Effect
    The input in columns determines which columns are used to build the resulting set.
    Alternative 1
    Effect
    If * is specified, the resulting set is built based on all columns in the database tables or views specified after FROM, in the order given there. The columns in the resulting set take on the name and data type from the database tables or views. Only one data object can be specified after INTO.
    Note
    If multiple database tables are specified after FROM, you cannot prevent multiple columns from getting the same name when you specify *.
    Alternative 2
    ... {col1|aggregate( col1 )}
    {col2|aggregate( col2 )} ...
    Effect
    A list of column labels col1 col2 ... is specified in order to build the resulting list from individual columns. An individual column can be specified directly or as an argument of an aggregate function aggregate. The order in which the column labels are specified is up to you and defines the order of the columns in the resulting list. Only if a column of the type LCHAR or LRAW is listed does the corresponding length field also have to be specified directly before it. An individual column can be specified multiple times.
    The addition AS can be used to define an alternative column name a1 a2 ... with a maximum of fourteen digits in the resulting set for every column label col1 col2 .... The system uses the alternative column name in the additions INTO|APPENDING CORRESPONDING FIELDS and ORDER BY. .
    http://help.sap.com/saphelp_nw04/helpdata/en/62/10a423384746e8bf5f15ccdd36e8b1/content.htm

  • HOW do I create a href to an sql statement?

    Answer to query:
    “You sould create a href to an sql statement ( create new user / passwd : and insert in a table (C_user,C_PASSWD), to have a list of users registred at your application)
    A htp page can manage this
    you should create roles that be granted to users,
    1- create &user dientified by &passwd;
    2- create role1....;
    3- grant &role1 to &user1;
    :user will be added by user if he chooses registration href.
    then he must add information in order to continue registration or push OK to confirm registration and let oracle grant previleges to the new user, a trigger can insert the new informations to the user_table_traces.”
    MY QUESTION:
    HOW do I create a href to an sql statement?
    Thank You

    Hello,
    I have an application written in PL/SQL that sits on top of an Oracle database. I want to know how add a password/login feature to the application. In other words the user can go to a certain URL to access and use the application. However when the user clicks on a certain link that is restricted, then the webpage displays fields so that the user has to enter a username and password. In order to access restricted features of the application such as ADD, UPDATE and DELETE.
    Thanks

  • Trace is still getting generated even after disabling the profile option Initialization SQL Statement - Custom

    Hi All,
    we have a problem with profile option "Initialization SQL Statement - Custom". we have set this at user level. after some time, we have cleared the profile option value for this user.
    But we can still see the generated trace files are getting updated. we did checked this trc files from path returned from below query.
    select name, value
    from   v$parameter
    where  name like 'user_dump_dest';
    Please help us on how to resolve this issue. we are using Oracle Apps R 12.1.2 version.
    Thanks in advance
    Raghava

    Before logging out we suspect that he closed the browser instead of logout link.
    What if you make the user logout, can you reproduce the issue then?
    We have verified the profile options for this user and found that value is cleared for profile Initialization SQL Statement - Custom.
    How do you know that the files were generated for this user and because of this profile option? Have you verified profile options for all users at all level?
    Thanks,
    Hussein

  • Update SQL statement in JDBC sender (system fields)

    All,
      Is it possible to update more than 1 field via the update sql statement ?
      Also, is it possible to use system fields ? 
      Something like this
      UPDATE database.table SET processed='Y', date = sy-datum
    Regards, Michel

    Hi
    use sysdate as suggested above
    Check your  generated SQL query format is correct
    At runtime you can find the genereated sql statements by doing configuraitons in Receiver JDBC adapter.
    In the JDBC Receiver adapter you have the Advanced Properties .
    Over there enter the following
    left column logSQLStatement
    right column true
    To see the query created ..
    Login to adapter monitoring ..select the relevant jdbc adapter.
    Now when any message is processed by the jdbc adapter in adapter monitoring at that time you will see a message link. When you click on that link a new window will open. In that window if you click on page down you will get to see the sql statement generated by the jdbc adapter.

  • Creating a DataTable from the results of SQL statement

    I am relatively new to VB 2005, ADO and Oracle db. I have perfected an SQL statement that joins 6 tables in an Oracle 10i database and the resulting set retunrs the correct data. I am having difficulty creating and inserting this resulting set into a datatable that could be used in my application. Could someone detail the steps needed to create and fill this table

    http://download.oracle.com/docs/cd/A91202_01/901_doc/appdev.901/a89856/06_ora.htm#1604
    The link above points to Oracle's documentation on using cursor variables. In a nutshell, you want to create a package that defines the cursor type and contains the procedure to open the cursor.
    create package my_package as
    type my_cursor_type is ref cursor;
    procedure my_procedure (out_cursor out my_cursor_type);
    end;
    create package body my_package as
    procedure my_procedure (out_cursor out my_cursor_type) is
    begin
         open my_cursor for
              select ...;
    end;
    end;Now you need to set up your .NET application to read the data.
    OracleConnection con = new OracleConnection("User Id=myuser;Password=mypassword;Data Source=mydatabase");
    OracleParameter[] parms = new OracleParameter[1];
    parms[0] = new OracleParameter("table1_cursor", OracleDbType.RefCursor, ParameterDirection.Output);
    OracleCommand cmd = new OracleCommand("my_package.my_procedure", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddRange(parms);
    DataTable myTable = new DataTable();
    OracleDataAdapter da = new OracleDataAdapter(cmd);
    da.Fill(myTable);

  • SQL Statement in Webi 3.x and Webi 4.x

    Hello experts,
    I am facing with a problem regarding an SQL Statement written in Query Panel as a Custom SQL. The bellow statement is executed in Webi 3.x but not in Webi 4.x.. Webi 4.x does not recognize the statement from line 4 (SELECT within a SELECT), but in Webi 3.x everything is OK.
    Have you faced with a similar problem ?
    Thank's a lot for your answers.
    1 SELECT
    2   a.doc_id,
    3   a.doc_type,
    4   (SELECT b.doc_date FROM test b WHERE b.doc_type = 'I' and b.doc_id = a.doc_ref_id)
    5 FROM
    6   test a
    7 WHERE
    8   a.doc_type = 'F'

    Thank you very much for your answer. Very very interesting these links. I will read because I am very curious to find out the answer.
    In the meanwhile, I solved the problem in the following manner:
    SELECT
    a.doc_id,
    a.doc_type,
    b.doc_date
    FROM
    test a,
    (SELECT * FROM test WHERE doc_type = 'I') b
    WHERE
    a.doc_ref_id = b.doc_id and a.doc_type = 'F'
    All the best,
        Marius

  • Oracle 7 - Maximum SQL statement length

    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96536/ch44.htm#288033
    Like above, maximum SQL Statement Length is clearly defined on the "Reference" document of Oracle 8, 9, and 10.
    But I could not find it for Oracle 7.
    Can someone help me?

    This info is available in the Oracle 7 Server Reference. It can be found via http://otn.oracle.com/documentation. Look at the "Previously Released Oracle Documentation" to access it. It's a pdf. Here's a direct link: http://download-uk.oracle.com/docs/pdf/A32589_1.pdf. The details can be found in chapter 5.
    It comes down to this: 64k.
    MHE

  • Conditional display of a column link in sql updateable report

    Hi There,
    I've attempted to look thru the Apex forum about using an Authorization Scheme in an SQL Query (Updateble Report) where I can conditionaly enable (display) a column link based upon a value in the report but alas I cannot find a solution.
    What I have is a SQL Query (updateable report). What I want to achieve is dependant on the value of one of the columns in the report query conditionaly display a column link for the row being displayed. For example if the report dispayed the data from emp, dept only display a column link for rows where the deptno = 100 otherwise don't display the column link. Is this possible to achieve?
    I've tried to define in the authorizatuon scheme in the where clause of an SQL Statement to reference the report column as #deptno# but this doesn't work.
    TIA

    Boketi,
    I was unsuccessful yesterday in demoing what I believe you want to achieve. It appears that an authorization scheme will not process row by row within a standard report so as to allow a conditional display of a link or any other column attribute. You can conditionally display a column by the use of a page item but this method appears to be all or nothing.
    I was successful when I coded the return of the empno via a Case statement but the Link still appeared even though there was no value (empno) to link with. So essence the link to you to a blank for with no PK to read the database by.
    SELECT CASE WHEN deptno = 10 THEN empno ELSE NULL END empno,
           ename,
           job,
           hiredate,
           sal,
           comm,
           deptno,
           phone_nbr
    FROM   empJeff

  • Setting the sql statement

    http://www.egbolig.dk/drift_bo_syd.rpt (HERE IS THE REPORT)
    We are using SAP Crystal Report .NET Runtime files (http://scn.sap.com/docs/DOC-7824 newest version 13.0.9.1312) in our web asp.net application. Everything have been working fine, but we have can into problems when showing the certain kinda reports.
    In our code get the reports sql statement using getSQLStatement.
    Dim gp As New GroupPath() Dim sql As String = report.ReportClientDocument.RowsetController.GetSQLStatement(gp)
    This will get the sql, and we use this sql (getSqlStatement) and attach a sql WHERE clause from the code to only get a certain number of records.
    The report Drift_bo_syd.rpt has 5 tables, and the following sql statement. 
    Database/Show Sql Statement
    SELECT "rekvstam"."Sel", "rekvstam"."Afd", "rekvstam"."Levadresse", "rekvstam"."Rekvisition", "rekvstam"."Lejemaal", "rekvstam"."Lejer", "rekvstam"."Udfoertaf", "rekvstam"."Udfoertdato", "rekvstam"."Krit", "Selskab"."Adresse", "Selskab"."Postby", "Selskab"."Tlf", "Selskab"."Fax", "rekvstam"."Kontor", "rekvstam"."Hjemme", "rekvstam"."Rekvdato", "rekvstam"."Aftale", "rekvstam"."InitialRet", "rekvstam"."Arbejde", "kreditor"."Att", "rekvstam"."Konto", "Selskab"."Navn", "Selskab"."Email", "Interessentadresse"."Navn", "Interessentadresse"."Adresse", "Interessentadresse"."Postby", "Interessentadresse"."Email1", "Interessentadresse"."Telefon_Fax", "Interessentadresse"."Type", "Interessentadresse"."Tlf1", "rekvstam"."tlfLejer", "kreditor"."Kred", "Interessentadresse"."Interessentnr" FROM  (("Rekvstam" "rekvstam" INNER JOIN "Selskab" "Selskab" ON "rekvstam"."Sel"="Selskab"."Sel") LEFT OUTER JOIN "Kreditor" "kreditor" ON "rekvstam"."Kred"="kreditor"."Kred") INNER JOIN "Interessentadresse" "Interessentadresse" ON "kreditor"."Interessentnr"="Interessentadresse"."Interessentnr" WHERE  "Interessentadresse"."Type"='K' 
    But if we run the report from our asp.net code, we get the following error: 
    Cannot determine the queries necessary to get data for this report. Failed to retrieve data from the database. Error in File Drift_Bo_Syd {97FED382-1BAC-4DB1-970F-9E098ECE28F1}.rpt: Failed to retrieve data from the database.
    After a long time searching for a solution, we found out that if we place the column kred from the kreditor table on the report, the report will work. (field explorer / database fields / kreditor (table) / kred (column)
    Very important is that the field "kreditor.kred" is a primary key of the table kreditor, and also used in the linking.!
    (We can get the report to work if we call the sql statement with the "kreditor"."kred" in the SELECT statement.
    SELECT "kreditor"."kred", "rekvstam"."Sel", "rekvstam"."Afd", "rekvstam"."Levadresse", "rekvstam"."Rekvisition", "rekvstam"."Lejemaal", "rekvstam"."Lejer", "rekvstam"."Udfoertaf", "rekvstam"."Udfoertdato", "rekvstam"."Krit", "Selskab"."Adresse", "Selskab"."Postby", "Selskab"."Tlf", "Selskab"."Fax", "rekvstam"."Kontor", "rekvstam"."Hjemme", "rekvstam"."Rekvdato", "rekvstam"."Aftale", "rekvstam"."InitialRet", "rekvstam"."Arbejde", "kreditor"."Att", "rekvstam"."Konto", "Selskab"."Navn", "Selskab"."Email", "Interessentadresse"."Navn", "Interessentadresse"."Adresse", "Interessentadresse"."Postby", "Interessentadresse"."Email1", "Interessentadresse"."Telefon_Fax", "Interessentadresse"."Type", "Interessentadresse"."Tlf1", "rekvstam"."tlfLejer", "kreditor"."Kred", "Interessentadresse"."Interessentnr" FROM  (("Rekvstam" "rekvstam" INNER JOIN "Selskab" "Selskab" ON "rekvstam"."Sel"="Selskab"."Sel") LEFT OUTER JOIN "Kreditor" "kreditor" ON "rekvstam"."Kred"="kreditor"."Kred") INNER JOIN "Interessentadresse" "Interessentadresse" ON "kreditor"."Interessentnr"="Interessentadresse"."Interessentnr" WHERE  "Interessentadresse"."Type"='K'
    But it should not be necessary to include this field (which is the primary key and used in linking the report) in the sql statement,
    BECAUSE it is not used in the report. So maybe this is a bug?
    It has not been necessary in RDC Crystal Report or RAS Crystal Report in a classic asp envoriment.
    Here is the code we use to set the reports SQL Statement)
    Try
    Dim conn As New SqlConnection(connString)
    conn.Open()
    Dim sd As New SqlDataAdapter(New SqlCommand(nySQL, conn))
    Dim ds As New Data.DataSet()
    Dim navn As String = report.Database.Tables.Item(0).Name
    sd.Fill(ds, navn)
    report.SetDataSource(ds)
    conn.Close()
    Catch ex As Exception
    Throw
    End Try

    Hi Jan
    I understand your problem completely but we have asked  R&D to be able to edit the SQL and they explained due to how the report Engine works it's simply not possible anymore. It would take a complete rewrite in all of our DB drivers and query dll's to be able to allow it. They did that in CR 9 when they rewrote the DB drivers and removed the SQL part of the code into separate dll's and that is when the ability was removed, it's been that way ever since.
    One possibility is to get the SQL from the Report and then connect to your DB using a .NET and if the results from the SQL is less than 5K rows and not too many columns you could then set the Report data source to a Dataset.
    As long as all of the field names are the same CR will run the report using this work flow.
    For data larger than 5K rows, limit is due to memory resources, you could save the DS to an XML file and then set the reports data source to the XML file. We've seen 100meg XML's used so the amount of data should not be a problem, but of course there are limits to everything so test...
    This should not affect performance much.
    So the work flow would be:
    Load the report
    Get the SQL Statement
    Paste it into a Dataset Query
    Something like this should get you started:
    //string connString = "Provider=SQLOLEDB;Data Source=MySQLServer;Database=xtreme;User ID=sa;Password=pw";
    string connString = "Provider=SQLNCLI10;Server=MySQLServer;Database=xtreme;User ID=sa;Password=pw";
    Detail"".""Quantity"" FROM   ""xtreme"".""dbo"".""Orders Detail"" ""Orders Detail""";
    string sqlString = @"SELECT top 10*  FROM  ""xtreme"".""dbo"".""Financials"" ""Financials""";
    System.Data.OleDb.OleDbConnection oleConn = new System.Data.OleDb.OleDbConnection(connString);
    System.Data.OleDb.OleDbCommand cmd = oleConn.CreateCommand();
    cmd.CommandText = sqlString;
    System.Data.DataSet ds = new System.Data.DataSet();
    OleDbDataAdapter oleAdapter = new OleDbDataAdapter(sqlString, oleConn);
    //OleDbDataAdapter oleAdapter2 = new OleDbDataAdapter(sqlString2, oleConn);
    DataTable dt1 = new DataTable("Financials");
    //DataTable dt2 = new DataTable("Orders Detail");
    oleAdapter.Fill(dt1);
    //oleAdapter2.Fill(dt2);
    ds.Tables.Add(dt1);
    //ds.Tables.Add(dt2);
    ds.WriteXml("c:\\reports\\sc2.xml", XmlWriteMode.WriteSchema);
    // as long as the field names match exactly Cr has no problems setting report to a DS.
    try
        rpt.SetDataSource(ds.Tables[0]); // incremtent [0] for more than 1 table.
        rpt.SetDataSource(ds);
    catch (Exception ex)
        MessageBox.Show("ERROR: Schema Mismatch. Error reported by CR: " + ex.Message);
    //Now check for subreport and set to same DS
    foreach (CrystalDecisions.CrystalReports.Engine.Section section in rpt.ReportDefinition.Sections)
        foreach (CrystalDecisions.CrystalReports.Engine.ReportObject reportObject in section.ReportObjects)
            if (reportObject.Kind == ReportObjectKind.SubreportObject)
                CrystalDecisions.CrystalReports.Engine.SubreportObject subReport = (CrystalDecisions.CrystalReports.Engine.SubreportObject)reportObject;
                CrystalDecisions.CrystalReports.Engine.ReportDocument subDocument = subReport.OpenSubreport(subReport.SubreportName);
                subDocument.SetDataSource(ds);
    And for XML it would use this part, not above I am saving the data and structure in the XML file so it should match what is in the report:
    foreach (CrystalDecisions.CrystalReports.Engine.Table rptTable in rpt.Database.Tables)
        try
            rptTable.Location = btrDataFile.ToString(); // @"D:\Atest\" + rptTable.Location + ".xml";
        catch (Exception ex)
            MessageBox.Show("ERROR: " + ex.Message);
    Only issue you may run into is sometimes XML does not have a direct field type and your original data source but you'll get an error if that happens which could be trapped and handled.
    If you have a report that only uses 2 tables I do have code that will convert it to use a Command Object. That is the limit the engine is capable of, there is a lot of logic to be able to do this in CRD and the SDK so that is all we could get for now.
    I hope that helps
    Don

  • Writing mulitple sql statements in 1 stored procedure

    Hi all, can i know how to create mulitple sql statements in 1 stored procedure??
    Eg the first sql statement will generate few results and my second sql statement will based on the first statement result to execute its second results and my third sql statements will on the second results to generate the final results which will be passed back to jsp pages as a resultset??
    For the time being, i only know how to create a single sql statement in one stored procedure..i had surf through the oracle website but cant find any solution. Can anyone help me?? Samples or links to any website will do.. Thanks alot...

    Hi Irene,
    If I understand your question correctly, then I have already written
    a similar (PL/SQL) stored procedure without any problems.
    However, I do think your question is more suited to the following
    forum:
    http://forums.oracle.com/forums/forum.jsp?id=478021
    I also think it will help others to answer your question if you
    include the following information:
    1. Version of Oracle you are using.
    2. The error message you are getting.
    3. The part of your code that is causing the problem.
    Also, have you looked at the following web sites?
    http://asktom.oracle.com
    http://metalink.oracle.com
    Good Luck,
    Avi.

Maybe you are looking for

  • PT880 New system won't boot to any drive

    I am putting together a new system: Case:  Aspire X-Superalien Power Supply:  500w (came w/case) which says:                        AC INPUT:  115V/230V~  10/5A   50-60HZ                        DC OUTPUT:  +3.3V     +5V     +12V     -5V     -12V    

  • Using the RB_Split feature in Interface Determination

    hi, I have a 1:N file to IDOC Scenario where I need to do multi-mapping using RB_Split in Interface Determination instead of using CCBPM. I had done the repository part, but during interface determination, after I select the RB_SPLIT feature, I get "

  • Pinch and Zoom PDFs for phones and tablets

    Hi, I can pinch and zoom PDF files on my phone / tablet. However when doing this I would like the document to automatically reformat to fit the screen horizontally. This would enable me to read a PDF enlarged to a text size comfortable to me AND only

  • Full screen mode - Issue with Aperture freezing

    Hi I have an issue with Aperture 3 freezing if I send an image to a plug-in or external editor while in full screen dual display mode. I have to exit full screen mode first and then send to photoshop/external plugin. It is not a huge deal and a simpl

  • Sequence and sequence files advice

    I am embarking on a project to test two way radios using around 50 tests (receiever and transmitter). It seems each test should be in its own sequence but should each sequence be in its own sequence file? - or should they all be in just a few files?