Execute query with non database block
How to execute query with non database block when new form instance trigger.
Hi Kame,
Execute_Query not work with non database block. To do this Make a cursor and then assign values to non database block's items programmatically, see following example,
DECLARE
BEGIN
FOR i IN (SELECT col1, col2 FROM Table) LOOP
:block.item1 := i.col1;
:block.item2 := i.col2;
NEXT_RECORD;
END LOOP;
END;
Please mark if it help you or correct
Regards,
Danish
Similar Messages
-
Problem in Execute query on non-database block and database block together
Hi All,
In my form,i have
1. First block is Non-database block with one non-database item.
2. Second and third blocks are database blocks.
Now the problem is that i want to perform execute-query for all the blocks.
If the cursor is on the non-database item of 1st block and i clicks on the "Enter-query" then i am getting message " This function can not be performed here".
If i click on the item of the database block and then clicks on the "Enter-query" and then "execute-query" it's working fine.
But i don't want to do in this way.
My cursor will be on the First block only and then it should perform execute-query.
I am using this non-database item to copy value of this item to the item of the database block item.
I think i make you understand about my problem.
I am using forms 10g on Window xp.
Please help me.Hi!
Simply create a enter-query trigger on the non-database-block:
begin
go_block ( 'database_block' );
enter_query;
end;If your search criteria is in the non-database-item in the first block,
you actually do not need the enter_query build-in.
Just create a execute-query trigger on the first block like:
begin
go_block ( 'database_block' );
execute_query;
go_item ( :System.trigger_item );
end;And in a pre-query trigger on the database-block copy the
value of your seach item into the item you want to search for.
Regards -
Date query in non database block
Hi Experts
I am doing query in a database via a non data base block.The field in which i want to query is join(DD-MON-YYYY hh24:MI:SS) and my non database block is join.
I want that i shall give the date in the join field like DD-MON-YYYY format and the related datafrom the database will come out.
So In the KEY-EXEQRY i have written
IF :system.mode = 'ENTER-QUERY' THEN
IF :EMP.JOIN_DATE is not null then
TRUNC(:EMP.JOIN_DATE):=to_date(:EMP.JOIN,'DD-MON-YYYY');
END IF;
END IF;
EXECUTE_QUERY;
It is showing compilation error.
The construct is not allowed as the origin of an assignment
Can you please tell me what is wrong with it.
detail of join is -
data type -char
Regards
RajatTo restrict a query to something based on a non-database-block you need a different approach:
1. Do nothing in the KEX-EXEQRY-trigger
2. Create a PRE-QUERY-trigger with the following logic:
IF :CTRL.JOIN_DATE is not null then
SET_BLOCK_PROPERTY('EMP', ONETIME_WHERE, 'TRUNC(JOIN_DATE)=TRUNC(:CTRL.JOIN_DATE)');
END IF;I assumed the following:
- CTRL is the name of your non-database-block and EMP is your database-block
- There is an item JOIN_DATE of datatype DATE in your CTRL-block
- There is a database-column named JOIN_DATE in yourt EMP-table.
- You are using Forms 10g, if not use DEFAULT_WHERE instead of ONETIME_WHERE
If one of these is not TRUE, adjust the code i provided to match your object-names. -
Forms - query into non database Block
This is the data in the table. I am querying into a non database block.Have two lines of data
1. 1062|Sanitation and Cleaning|N|1025
2. 1063|Eyewash|N|1025
go_block('qc_procedures');
first_record;
loop
Open C3;
Fetch C3 into :qc_procedures.procedure_id,
:qc_procedures.procedure_desc,
:qc_procedures.optional,
:qc_procedures.procedure_type_id;
Exit when :system.last_record = 'TRUE';
next_record;
Close C3;
End loop;
I am only able to get the first line of dataI'm not quite sure if i understand your problem.
First, you didn't post the definition of your cursor C3.
Second, if you want to populate the block using the cursor, you should loop over the cursor and not over the block, something like
Open C3;
first_record;
loop
Fetch C3 into :qc_procedures.procedure_id,
:qc_procedures.procedure_desc,
:qc_procedures.optional,
:qc_procedures.procedure_type_id;
Exit when C3%NOTFOUND;
next_record;
Close C3;Third, it would be much easier to base your block on a table or on your query (using FROM-clause-query), then there would be no need for any code. -
Hi all,
I want to do the following in my workbook.
For a = 1 to 3
select case a
case 1:
Callback "ZMSPMSM01_5011'
case 2:
Callback "ZMSPMSM01_5012'
case 3:
Callback "ZMSPMSM01_5013'
end select
zFormat
Next a
I have custom code zFormat that applies custom formatting to the queries. That works.
The only problem is that I want to run query 1, apply the formatting, print. Then run query 2, apply the formatting, print, and so forth.
It currently works when I use the buttons, but I want to iterate through my queries without the necessity of buttons.
Please help.
Regards,
Johann
Ps. Points will definitely be awarded.Hi Kame,
Execute_Query not work with non database block. To do this Make a cursor and then assign values to non database block's items programmatically, see following example,
DECLARE
BEGIN
FOR i IN (SELECT col1, col2 FROM Table) LOOP
:block.item1 := i.col1;
:block.item2 := i.col2;
NEXT_RECORD;
END LOOP;
END;
Please mark if it help you or correct
Regards,
Danish -
Query a database block based on a non-database block
hi everybody
can anybody help me as how to query a database block based on a non-database block, without a master-detail relationship?
i have a block : date_input which contains a non-database item: start_date
another database block (event_block)containing details of an event
i have to input a date in the start_date and query the event_block
in wich trigger should i insert the code?
thanksIf you are trying to query your database block (event_block) using the value from start_date in your non-database block, then you can set the Where clause in the database block using:
SET_BLOCK_PROPERTY ('event_block', DEFAULT_WHERE, 'your where clause that includes start_date');
Place this statement in a trigger that is executed prior to the block being queried. -
HOW TO CREATE MULTIPLE RECORDS IN A NONE DATABASE BLOCK?
I have a Form where I have a none database block with unbound items. The block
has 10 records. In the when-new-block instance I run a query by which I would
like to fill up the block with data. The code fragment looks like the
following:
begin
declare
tmp_curr_rec_id number;
begin
-- a hibak kiolvasasa
for c_hibak in ( select h.*, h.rowid
from hibak h
where 1=1 -- WF - Ide kerul a szurofeltetel
order by bejelentes_datum asc
) loop
-- bemasoljuk az adatokat az unbound item-ekbe
:mc_adat.ub_azonosito := c_hibak.azonosito;
:mc_adat.ub_verzio_letrehozas_datum :=
c_hibak.verzio_letrehozas_datum;
:mc_adat.ub_bejelento := c_hibak.bejelento;
:mc_adat.ub_bejelentes_datum := c_hibak.bejelentes_datum;
:mc_adat.ub_wf_verzio_csomopont :=
c_hibak.wf_verzio_csomopont;
:mc_adat.ub_wf_utolso_esemeny_szoveg :=
c_hibak.wf_utolso_esemeny_szoveg;
:mc_adat.ub_hiba_leiras := c_hibak.hiba_leiras;
:mc_adat.ub_hiba_hely := c_hibak.hiba_hely;
:mc_adat.ub_rekord_jelleg := 'H';
:mc_adat.ub_rowid := c_hibak.rowid;
-- beallitjuk a rekordot-ot olyanra, mintha semmi nem valtozott
volna
-- nem szeretnenk a form bezaraskor mindenfele figyelmezteteseket
-- olvasni a kepernyon
tmp_curr_rec_id := get_block_property( :system.current_block,
current_record );
set_record_property( tmp_curr_rec_id, :system.current_block,
status, new_status );
create_record;
end loop;
end;
end;
The block's update allowed, insert allowed, delete allowed property is set to
true.
The result of the code above is that only the last record fetched shows up in
the block. The problem is - as I found out - is that aech record is fetched,
the values are copied to the block items, but the create_record built-in
command would not move the cursor to the next row.
Can some one please help me with this?
TIA,
Tamas SzecsyThe problem was with the following code segment:
tmp_curr_rec_id := get_block_property( :system.current_block, current_record );
set_record_property( tmp_curr_rec_id, :system.current_block, status, new_status );
After omitting these two lines, the code worked properly.
Thansk for all whoe replied.
Regards,
Tamas -
How to display records from a query into non-database field
Hi
I a have a problem:
I have a query with many tables and 6 column(select a,b,c,d,e,f from x,y,z,t,s,g where conditions) and I use 3 parameters.
I create 3 parameters :datai,:dataf and :partener and a button with a trigger when button is pressed.
Then a create a manualy block with six field non-database a1,b1,c1,d1,e1,f1.
Now I want to display all the records from my query into a1,b1,c1,d1,e1,f1 where a1=a,b1=b,etc. and all the records (if I have 20 record, it will display 20 records in non-database field) when I press the button.
How I made:
I create a cursor with query then
begin open cursor
loop
fetch cursor into :a1,:b1,:c1,:d1,:e1,:f1;
end loop;
close cursor;
end;
It display one record in a1,b1,c1 only and it have to display 100 records and are date for all the fields.
Can somebody help me in this problem?
Thanks.
Edited by: 928437 on Oct 1, 2012 2:55 AMCreating a view, and querying that into a database block is an excellent solution.
To use the non-database block:
You're missing the all-important Next_Record; command.
<pre> Begin
Go_block('X'); -- block X is the non-database block
Clear_Block(No_Validate);
open cursor X1;
loop
If :System.Record_status != 'NEW' then
Next_Record;
End if;
fetch X1 into :a1,:b1,:c1,:d1,:e1,:f1;
Exit when X1%NOTFOUND;
end loop;
close X1;
end;</pre> -
Enter_query for non-database block
Hi there,
I have a non-database block. When I click on enter query button from toolbar, i get"this function cannot be performed here' error. I want to bring up records based on certain math calculations. I was planning to write a pre-query trigger and add those to pre-query trigger. Will it work since it is a non-database block? Or should i create a button on form to get records populated?
ThanksYou won't be able to use the Query-Process-triggers PRE-QUERY and POST-QUERY on a non-database-block.
But... If you want to "simulate" the behaviour of querying, you can use the KEY-EXEQRY-trigger and put your logic there. This should also work with the standard forms-menus. To supress the error-message on entering query-mode you should additionally write as KEY-ENTQRY-trigger with code NULL; -
Ordering a non-database block....
Hi ,
Is it possible to order and how a non-database block according to user's willing...????
Thanks , a lot
SimonThat will work in sql*plus but to use it in a program you'll need to parameterise the Order By clause. That's why I wrote mine the way I did. It will work in sql*plus if you enter 'A' and 'B' (including the quotes) and it will work in a program if you replace the placeholders with variables.
SQL> WITH data AS(
2 SELECT 1 a, 9 b FROM dual UNION ALL
3 SELECT 1 a, 1 b FROM dual UNION ALL
4 SELECT 1 a, 8 b FROM dual UNION ALL
5 SELECT 1 a, 2 b FROM dual UNION ALL
6 SELECT 1 a, 7 b FROM dual UNION ALL
7 SELECT 2 a, 8 b FROM dual UNION ALL
8 SELECT 3 a, 7 b FROM dual UNION ALL
9 SELECT 4 a, 6 b FROM dual UNION ALL
10 SELECT 5 a, 5 b FROM dual UNION ALL
11 SELECT 6 a, 4 b FROM dual UNION ALL
12 SELECT 7 a, 3 b FROM dual UNION ALL
13 SELECT 8 a, 2 b FROM dual UNION ALL
14 SELECT 9 a, 1 b FROM dual
15 )
16 SELECT a, b FROM data
17 ORDER BY
18 Decode(&ordr1,'A',a,'B',b),
19 Decode(&ordr2,'A',a,'B',b)
20 ;
Enter value for ordr1: 'A'
old 18: Decode(&ordr1,'A',a,'B',b),
new 18: Decode('A','A',a,'B',b),
Enter value for ordr2: 'B'
old 19: Decode(&ordr2,'A',a,'B',b)
new 19: Decode('B','A',a,'B',b)
A B
1 1
1 2
1 7
1 8
1 9
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1
13 rows selected.
SQL> /
Enter value for ordr1: 'B'
old 18: Decode(&ordr1,'A',a,'B',b),
new 18: Decode('B','A',a,'B',b),
Enter value for ordr2: 'A'
old 19: Decode(&ordr2,'A',a,'B',b)
new 19: Decode('A','A',a,'B',b)
A B
1 1
9 1
1 2
8 2
7 3
6 4
5 5
4 6
1 7
3 7
1 8
2 8
1 9
13 rows selected.
SQL> var ordr1 varchar2(1);
SQL> var ordr2 varchar2(1);
SQL> exec :ordr1 := 'A';
PL/SQL procedure successfully completed.
SQL> exec :ordr2 := 'B';
PL/SQL procedure successfully completed.
SQL> WITH data AS(
2 SELECT 1 a, 9 b FROM dual UNION ALL
3 SELECT 1 a, 1 b FROM dual UNION ALL
4 SELECT 1 a, 8 b FROM dual UNION ALL
5 SELECT 1 a, 2 b FROM dual UNION ALL
6 SELECT 1 a, 7 b FROM dual UNION ALL
7 SELECT 2 a, 8 b FROM dual UNION ALL
8 SELECT 3 a, 7 b FROM dual UNION ALL
9 SELECT 4 a, 6 b FROM dual UNION ALL
10 SELECT 5 a, 5 b FROM dual UNION ALL
11 SELECT 6 a, 4 b FROM dual UNION ALL
12 SELECT 7 a, 3 b FROM dual UNION ALL
13 SELECT 8 a, 2 b FROM dual UNION ALL
14 SELECT 9 a, 1 b FROM dual
15 )
16 SELECT a, b FROM data
17 ORDER BY
18 Decode(:ordr1,'A',a,'B',b),
19 Decode(:ordr2,'A',a,'B',b)
20 ;
A B
1 1
1 2
1 7
1 8
1 9
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1
13 rows selected.
SQL> exec :ordr1 := 'B';
PL/SQL procedure successfully completed.
SQL> exec :ordr2 := 'A';
PL/SQL procedure successfully completed.
SQL> /
A B
1 1
9 1
1 2
8 2
7 3
6 4
5 5
4 6
1 7
3 7
1 8
2 8
1 9
13 rows selected.
SQL> -
Executing query with arguments- issue when parameter value contains '&'
My application inserts 'First name', last name' and last upd date to the table. it inserts all the data properly. Next level I access the information along with other tables using same arguments. But it is not fetching any data. I noticed it happens whenever the '&' is included in the parameter (first name). eg:
'Margaret & John'. From the logs I noticed that first name it is not taking what I passed. It just stripping the first name from '&' onwards and taking only 'Margaret'. Here is the example from the log. You could notice only 'Margaret' instead of 'Margaret & John' in place of first argument.
<2007-03-29 11:35:51,425> <DEBUG> <default.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.DBInteraction executeOutboundRead> Executing query with arguments [Margaret , Cohen, 2007-03-29T11:35:51-06:00]
Appreciate your help if you could give me a hint how to resolve this issue
Thanks
ReddyHi Reddy,
from the log it looks like the DbAdapter received the value as 'Margaret '. Because parameter binding is used by default, the database shouldn't try to interpret the & as it is inside a bind variable.
Could it be that the & is getting dropped somewhere else? Marc was suggesting you put that value inside a CDATA section or escape it. He probably showed that but when he hit Post Message it displayed the escaped & as &. I think we should find out where that & got dropped though. Normally BPEL will preserve it.
Thanks
Steve -
CANT execute query with parameter on user defined tables using query genera
Dear All,
I have problem when executing query with parameter on user defined tables using query generator.
It seems SBO cannot accept parameter to query user defined tables.
I've tried these:
SELECT T0.U_Status FROM [@ST_PR_H] T0 WHERE T0.U_Status = [%0] --- this FAIL
I try to pass the value directly without using parameter and It works
SELECT T0.U_Status FROM [@ST_PR_H] T0 WHERE T0.U_Status = 2 --- this SUCCESS
This one works
SELECT * FROM RDOC T0 WHERE T0.width =[%0] --- this SUCCESS
and this one works too
SELECT * FROM RDOC T0 WHERE T0.width = 595 --- this SUCCESS
Is there anyone can help me ....???
Thanks,
AlfaI generated this code using query wizard ....
SELECT T0.[U_Status] AS 'Document Status' FROM [dbo].[@ST_PR_H] T0 WHERE T0.[U_Status] = (N'2' )
and replaced the (N'2' ) with [%0]
SELECT T0.[U_Status] AS 'Document Status' FROM [dbo].[@ST_PR_H] T0 WHERE T0.[U_Status] = [%0]
and It worked ......
Thanks 4 all ..... -
Execute query with in workbook
How to execute query with in workbook??
Regards,
Vivek
Please search the forum
Edited by: Pravender on Apr 26, 2011 1:03 PMHi Vivek,
Click on Addin Tab in Analyzer, Select the workbook from open workbook icon.
Once the workbook opened, click on variables icon. Then variables popup screen will come. Input the variables and click ok.
Hope this will help you...
Thanks,
Chenna. -
ADF : Non Database Block Fields Validation
How should I add validation to "Non Database Block Fields"?
My question is based on this example:
see http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html
"24. Passing User-Entered Data in "Non Database Block Fields" to Stored Procedure/Function"
http://otn.oracle.com/products/jdev/tips/muench/stprocnondbblock/PassUserEnteredValuesToStoredProc.zip
Should I add the validation to an Entity Object (where no fields are 'linked' to database fields) on which I base the "NonDBBlock" View Object?
If this is "Entity Object abuse" (because no database involved, only validation), what would be a better approach?
many thanks
Jan Verveckenhi Steve
If all the attributes in my Entity Object are marked as not persistent, it makes sense this Entity Object doesn't "take part" in a transaction.
I would like to avoid the message box about Commit or Rollback when closing my Frame, because this use case isn't transaction related in any way.
It seems to work if I override the getPostState() method like this:
public byte getPostState()
return EntityImpl.STATUS_UNMODIFIED;
question :
Are there any side effects to this approach or is there another way to mark an Entity Object as "not in any transaction"?
thanks
Jan -
Sorting in Non-Database Block.
I have a form having a non-database block having different columns.
It is required that the user can sort the data by every columns while he is entering the data.
Please help me out.
ThanksI have a form having a non-database block having different columns.
It is required that the user can sort the data by every columns while he is entering the data.
Please help me out.
Thanks
Maybe you are looking for
-
ALSA - Master volume no longer having an effect on headphone volume
I use ALSA and have both my 'front' (speakers) and 'headphone' audio volume set to max. Then I control the two by adjusting the master volume. Since my last system update this worked fine however now when I change the master volume it only affects th
-
Dialog Box simulation without interrupting program flow
I'm developing data acquisition/control software and need to give the end user flexibility to change the file to which the acquired data is being saved during operations. In the past, users have been confused with a simple string control that specifi
-
I have 2 forms from1 and from2 when I run form1 and save the data then I called form2 call_form ('form2') now I want when form2 appear it show in front and form2 show in back.
-
Need help with calendar settings
-
At some stage today I did an update which has killed Mac Mail. I have read the forums, performed a combo update 10.6.8 with no result, I still get the error You have Mail version 4.5(1084/1085). It can't be used on OS X Version 10.6.8 ( Build 10K5489