With dynamic CreateViewObject How To "Navigate N rows at a time using DataTags" fails
I have worked with the example on this link:
http://otn.oracle.com/docs/products/jdev/howtos/jsp/traverse_n.ht
ml
It works fine in case I am using the View Object created in the
Package as the example is using.
However, this sample does not navigate; through record as
expected and keep displaying same records, when I create dynamic
view using CreateViewObject tag like this:
<jbo:CreateViewObject appid="TravelPkgModule" name="test">
select vc_comp_code,vc_voucher_no from hd_travel_voucher
</jbo:CreateViewObject
Help me in navigating with dynamic view objects.
moreover,
suppose total records in a set are = 100
and range size = 10
on first click on next set, records from 1 to 10 are displayed.
on second click on next set, records from 11 to 20 are displayed.
on third or N'th click on next set, records from 11 to 20 are
displayed and not from 21 onwards are displayed.
Code attached.
<%@ page errorPage="errorpage.jsp"
contentType="text/html;charset=WINDOWS-1252"
import="java.util.*,java.text.*" %>
<%@ page contentType="text/html;charset=WINDOWS-1252"%>
<HTML>
<BODY>
<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
<jbo:ApplicationModule
configname="TravelPkg.TravelPkgModule.TravelPkgModuleLocal"
id="TravelPkgModule" username="ebiz" password="ebiz" />
<jbo:DataSource id="Qvoucher" appid="TravelPkgModule"
viewobject="HdTravelVoucherView" rangesize="2">
</jbo:DataSource>
<%
%>
Next Set
Previous Set
<table border="1">
<%
oracle.jbo.RowSet rs = Qvoucher.getRowSet(); // see if we have
a navigation command
if(request.getParameter("nav") != null)
String sNavigation = request.getParameter("nav");
if(sNavigation.equalsIgnoreCase("nextset"))
%>kiran = <%
rs.scrollRange(rs.getRangeSize());
else
rs.scrollRange(-rs.getRangeSize());
oracle.jbo.Row rows[] = rs.getAllRowsInRange();
for(int i = 0; i < rows.length; i++)
rs.setCurrentRow(rows);%>
<tr><td>
<jbo:ShowValue datasource="Qvoucher"
dataitem="VcEmpCode"></jbo:ShowValue></td>
<td><jbo:ShowValue datasource="Qvoucher"
dataitem="VcVoucherNo"></jbo:ShowValue></td>
<% }%>
LENGHT = <%=rows.length%>
</table></BODY></HTML>
<jbo:ReleasePageResources releasemode="Reserved" />
Similar Messages
-
Problem with - "Navigate N rows at a time using DataTags"
I have worked with the example on this link:
http://otn.oracle.com/docs/products/jdev/howtos/jsp/traverse_n.ht
ml
It works fine in case I am using the View Object created in the
Package as the example is using.
However, this sample does not navigate; through record as
expected and keep displaying same records, when I create dynamic
view using CreateViewObject tag like this:
<jbo:CreateViewObject appid="TravelPkgModule" name="test">
select vc_comp_code,vc_voucher_no from hd_travel_voucher
</jbo:CreateViewObject
Help me in navigating with dynamic view objects.moreover,
suppose total records in a set are = 100
and range size = 10
on first click on next set, records from 1 to 10 are displayed.
on second click on next set, records from 11 to 20 are displayed.
on third or N'th click on next set, records from 11 to 20 are
displayed and not from 21 onwards are displayed.
Code attached.
<%@ page errorPage="errorpage.jsp"
contentType="text/html;charset=WINDOWS-1252"
import="java.util.*,java.text.*" %>
<%@ page contentType="text/html;charset=WINDOWS-1252"%>
<HTML>
<BODY>
<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
<jbo:ApplicationModule
configname="TravelPkg.TravelPkgModule.TravelPkgModuleLocal"
id="TravelPkgModule" username="ebiz" password="ebiz" />
<jbo:DataSource id="Qvoucher" appid="TravelPkgModule"
viewobject="HdTravelVoucherView" rangesize="2">
</jbo:DataSource>
<%
%>
Next Set
Previous Set
<table border="1">
<%
oracle.jbo.RowSet rs = Qvoucher.getRowSet(); // see if we have
a navigation command
if(request.getParameter("nav") != null)
String sNavigation = request.getParameter("nav");
if(sNavigation.equalsIgnoreCase("nextset"))
%>kiran = <%
rs.scrollRange(rs.getRangeSize());
else
rs.scrollRange(-rs.getRangeSize());
oracle.jbo.Row rows[] = rs.getAllRowsInRange();
for(int i = 0; i < rows.length; i++)
rs.setCurrentRow(rows);%>
<tr><td>
<jbo:ShowValue datasource="Qvoucher"
dataitem="VcEmpCode"></jbo:ShowValue></td>
<td><jbo:ShowValue datasource="Qvoucher"
dataitem="VcVoucherNo"></jbo:ShowValue></td>
<% }%>
LENGHT = <%=rows.length%>
</table></BODY></HTML>
<jbo:ReleasePageResources releasemode="Reserved" /> -
How to update multiple rows in one query using php
i am new to this can any one help me how to update multiple rows at a time i am doing an school attendance page
Often the situation is such that you have multiple courses across a range of dates.So students may take more than one course, and you need to track attendance for each course date. The following graphic demonstrates this:
In such a situation, you need four database tables as follows:
students (student_id, student_name, etc.)
courses (course_id, course_name, etc.)
students_courses (student_id, course_id)
attendance (student_id, course_id, dater)
A fifth table may also be needed to define the dates of courses, but you may also be able to build this array programmatically by using PHP's robust date functions, which can give you, for instance, all the Tuesdays and Thursdays between a start date and end date.
The students_courses table simply keeps track of which students are taking which courses, so it has just two columns for the primary keys of both of the main tables. The attendance table is similar, but it also includes a date field. The following view of the attendance table demonstrates this:
So if David's solution does cover your needs, consider yourself lucky, because this could quickly grow from a beginner-appropriate project to a moderately advanced one. -
How can I change the file download time using Adobe Send? Adobe SendNow had a lot more options.I don't see nay with Adobe Send.
There isn't a feature in Adobe Send for setting and end-date for a file's availability. At any time, you can Unshare the file, however.
-
TS4268 how to change apple id on face time using macbook air
how to change apple id on face time using macbook air
coolguy1981 wrote:
How can u format the hard drive since I am using the MBA. Formatting will delete also the recovery space and how to start with new installation? This is not going to work.
No, that's not true. This is one of the 'benefits' of Lion (if you want to see it that way). The OS is on a separate partition and you can reinstall the OS without another physical drive.
What you do is reboot the computer while holding down the 'option' key. From the list of disks that show up (you can release the 'option' key now), choose 'Recovery HD'.
When you get to what looks like a Desktop, choose 'Reinstall OS X Lion'. Shortly after this, you will get asked for your Apple ID. Put your own Apple ID in the box and everything should proceed smoothly from there. -
How to run multi reports at a time using button
dear all
i have a button on form, that call a report abc.rep. when i press the button report is displayed. now i want to show another view of that report when i press button second time. but it doesn't appear. when i close the first report that it gets run.
how can i run same report multiple time using this button.
regards.
Asif iqbal
Software Engineer
(Karachi, Pakistan).HI
Call you report using this code then you can run more then 1 report at the same time
declare
AppID PLS_INTEGER;
begin
AppID := DDE.App_Begin('RWRUN60 module=d:\reports\LEDGER_NEW.Rep userid='||:global.the_username||'/'||:global.the_password||'@'||:global.the_Connect||' maximize=yes user_id='||:global.the_username||' user_password='||:global.the_password||' user_connect='||:global.the_connect, DDE.App_Mode_Maximized);
end;
Rizwan
www.rizwanshafiq.blogspot.com -
How to get multiple rows at one time in a table?
hi
I have a JTable bound with ViewObject and i use multiple selection mode setting to get selection row.
My question is when i select more then one row at one time i only can get those index from JTable but can't get those rows from ViewObject.is it possible to get rows from ViewObject? or how to use JTable row index to get row from ViewObject?repost
-
How to display the rows number of times by giving the column values?
Hi All,
I want to display the rows number of times as the value exists in num column in the below query
with t AS
( SELECT 'venkatesh' NAME, 'hyd' LOC, 2 NUM FROM DUAL
UNION ALL
SELECT 'prasad' NAME, 'hyd' LOC, 3 NUM FROM DUAL
UNION ALL
SELECT 'krishna' NAME, 'hyd' LOC, 1 NUM FROM DUAL )
SELECT T.* FROM T
CONNECT BY ROWNUM <= NUM
Expected output:
venkatesh hyd 2
venkatesh hyd 2
prasad hyd 3
prasad hyd 3
prasad hyd 3
krishna hyd 1Edited by: Nag Aswadhati on Nov 1, 2012 12:34 AMNag Aswadhati wrote:
Hi All,
I want to display the rows number of times as the value exists in num column in the below query
Expected output:
venkatesh hyd 2
venkatesh hyd 2
prasad hyd 3
prasad hyd 3
prasad hyd 3
krishna hyd 1Using Connect By:-
with t AS
( SELECT 'venkatesh' NAME, 'hyd' LOC, 2 NUM FROM DUAL
UNION ALL
SELECT 'prasad' NAME, 'hyd' LOC, 3 NUM FROM DUAL
UNION ALL
select 'krishna' name, 'hyd' loc, 1 num from dual )
select t.name, t.loc
from t
connect by level <= num
and name = prior name
and (prior sys_guid() is not null);
NAME LOC
krishna hyd
prasad hyd
prasad hyd
prasad hyd
venkatesh hyd
venkatesh hyd
6 rows selected -
How to fetch n rows at a time?
I know that I can use the rownum function to return n rows at a time, but the rownum function will be applied after all rows are returned by the query, which is bad for performance since my table has lot of rows. What I need is really to fetch n rows at a time from the DB.
RegardsI am not sure what you mean by "the rownum function will be applied after all rows are returned by the query", but that appears to be an incorrect statement. If you have a ROWNUM limit in a query, Oracle knows that it only has to fetch the first M rows.
If you are looking for an ability to page through query results, there is an AskTom thread on pagination in SQL.
This would only be appropriate, though, if you expect that users will only ever want the first few pages of results (i.e. users of Google aren't going to look through every page of results for generic search terms, they are going to look at page 1, maybe page 2 and page 3, and then stop). If the application is going to process all the rows that the query returns, you'd need some other construct and we would need some additional requirements. Your client application can probably fetch N rows at a time. If the client is PL/SQL, a BULK COLLECT with a LIMIT clause may also be appropriate.
Justin -
How to fix the row-height in excel using ole2
hi
I want to fix row height in excel using ole2.
i wrote the below code but no effect. please help me.
Arg := ole2.create_arglist;
ole2.add_arg(Arg,1);
rrow := ole2.get_obj_property(WorkSheet,'Rows',Arg);
ole2.destroy_arglist(arg);
ole2.set_property(rrow,'Height',50);
kanishIt's solved
ole2.set_property(rrow,'RowHeight',30);
kanish -
Multi-dimensional array with dynamic size - how to?
Hi
I have a CONSTANT number of buckets. Each of them has to take a VARIOUS number of data series. The data series have one VARIOUS length per bucket. I'd like to index the buckets like an array to loop over them.
So basically I need something like a multidimensional array with constant first dimension (bucket index), but dynamic second (data series index within bucket) and third (data point index within data series) dimension. What's the best way to do so?
I should also remark that data series can get really big.
Thanks in advance and best regards,
MichaelHi Michael,
the usual way is to use an array of cluster.
Put your "2nd" and "3rd" data into a cluster and then make an 1D array of that cluster...
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome -
How to select a row for update values, Using CTEs or suitable method
HI All,
I have a table as claim_data as below.
claim_id
amount change_monthkey
created_monthkey
ord
54511
300 201304
201304
1
54511
0 201305
201304
2
120301
250 201502
201502
1
120624
150 201502
201502
1
120624
0 201503
201502
2
I want to isolate rows which appear in the table and do a update using below query ( This query is already in a procedure, so I just looking for a suitable way to modify it to support my task )
In the above e.g. ONLY row containing claim_id = 120301 needs to update (amount as updated_amount)
I use following query, but it update other rows as well, I want a suitable query only to capture rows of nature claim_id = 120301 and do this update? Is there any functions that I could use to facilitate my task??
select
a.claim_id
, a.Created_MonthKey
, a.Change_MonthKey
, a.amount - ISNULL(b.amount,0.00) as amount_movement
,a.amount as updated_amount --- >> I need help here??
FROM claim_data a
LEFT JOIN claim_data b
ON a.claim_id = b.claim_id
AND b.Ord = a.Ord - 1
Thanks
MiraPlease follow basic Netiquette and post the DDL we need to answer this. Follow industry and ANSI/ISO standards in your datC1. You should follow ISO-11179 rules for naming data elements. You do not know this IT standard.
You should follow ISO-8601 rules for displaying temporal datC1. We need to know the data types, keys and constraints on the table. Avoid dialect in favor of ANSI/ISO Standard SQL.
And you need to read and download the PDF for:
https://www.simple-talk.com/books/sql-books/119-sql-code-smells/
>> I have a table AS claim_data AS below. <<
Thanks to your lack of netiquette, we have no name, no DDL, no keys and have to re-type the raw data into SQL, guess at everything! Does your boss treat you with the same contempt?
Think about how silly “_data” is AS an attribute property! What tables do you have without an data in them? You had to give this meta-data in 1970's operating systems, FORTRAN compilers, etc. but we do not do this today. I see you use “A”, “B”, etc for table
aliases This is the name of the disk or tape drive in a 1970 computer! In SQL we use helpful, meaningful table aliases so code is easier to maintain. I see you also use the old punch card trick of putting a comma at the front of each line of code.
The column named “ord” is a mathematical fiction for ordinal sets. I think you meant to use it as a non-relational sequential number to let you keep writing 1970's COBOL is T-SQL. We have not used the old Sybase ISNULL() since we got COALESCE() in SQL-92. They
are actually different.
First, let's post what you should have posted if you followed forum rules:
CREATE TABLE Claims
(claim_id CHAR(5) NOT NULL,
claim_amount DECIMAL (8,2) NOT NULL
CHECK (claim_amount >= 0.00),
change_month_name CHAR(10) NOT NULL
REFERENCES Month_Period(month_name),
creation_month_name CHAR(10) NOT NULL
REFERENCES Month_Period(month_name),
ord INTEGER NOT NULL, -- NO!! Awful design!
PRIMARY KEY (claim_id, ord)); --required by definition
Since SQL is a database language, we prefer to do look ups and not calculations. They can be optimized while temporal math messes up optimization. A useful idiom is a report period calendar that everyone uses so there is no way to get disagreements in the DML.
The report period table gives a name to a range of dates that is common to the entire enterprise.
CREATE TABLE Month_Periods
(month_name CHAR(10) NOT NULL PRIMARY KEY
CHECK (month_name LIKE '[12][0-9][0-9][0-9]-[01][0-9]-00'),
month_start_date DATE NOT NULL,
month_end_date DATE NOT NULL,
CONSTRAINT date_ordering
CHECK (month_start_date <= month_end_date),
etc);
These report periods can overlap or have gaps. I like the MySQL convention of using double zeroes for months and years, That is 'yyyy-mm-00' for a month within a year and 'yyyy-00-00' for the whole year. The advantages are that it will sort with the ISO-8601
data format required by Standard SQL and it is language independent. It has been proposed for the Standard, but is not yet part of it. The regular expression pattern for validation is simple.
INSERT INTO Claims -- a mess!
VALUES
('054511', 300.00, '2013-04-00', '2013-04-00', 1)
('054511', 0.00, '2013-05-00', '2013-04-00', 2),
('120301', 250.00, '2015-02-00', '2015-02-00', 1),
('120624', 150.00, '2015-02-00', '2015-02-00', 1),
('120624', 0.00, '2015-03-00', '2015-02-00', 2);
Now, throw this mess out. It looks like your repeat the claim creation date over and over and over. It looks like you crammed a claim creation and a claim history together in one table.
>> I want to isolate rows which appear in the table and do a update using below query (This query is already in a procedure, so I just looking for a suitable way to modify it to support my task).
In the above e.g. ONLY row containing claim_id = '120301' needs to update (amount AS updated_amount)
>> I use following query, but it update other rows as well, I want a suitable query only to capture rows of nature claim_id = '120301' and do this update? <<
No. SQL is set oriented so an update applies to the whole table. You can filter out rows in a WHERE clause.
CREATE TABLE Claims
(claim_id CHAR(5) NOT NULL PRIMARY KEY,
claim_amount DECIMAL (8,2) NOT NULL
CHECK (claim_amount >= 0.00),
claim_creation_month_name CHAR(10) NOT NULL
REFERENCES Month_Period(month_name));
See how this works?
INSERT INTO Claims -- a mess!
VALUES
('054511', 300.00, '2013-04-00'),
('120301', 250.00, '2015-02-00'),
('120624', 150.00, '2015-02-00');
Normalize the table:
CREATE TABLE Claim_Changes
(claim_id CHAR(5) NOT NULL
REFERENCES Claims(claim_id)
ON DELETE CASCADE,
change_month_name CHAR(10) NOT NULL
REFERENCES Month_Period(month_name),
PRIMARY KEY (claim_id, change_month_name),
change_amount DECIMAL (8,2) NOT NULL
CHECK (change_amount >= 0.00)
INSERT INTO Claims_Changes
VALUES
('054511', 0.00, '2013-05-00'),
('120624', 0.00, '2015-03-00');
Now you just add another change row to the history. There is no update. If you want to the delta and so forth, use LAG() and other window functions.
--CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
in Sets / Trees and Hierarchies in SQL -
How to set current row in table after use tab key on inputText
Hello all,
My first post .., I'm newbie in ADF and I will try to explain my problem.
For the moment we use ADF 11g (11.1.1.4), in a jsff page I have a table with an inputText column.
On the valueChangeListener of the inputText, I invoke a method in a viewScope bean which call an EJB method, make some services in the EJB on the line modified. After that I refresh the VO and the table (because others values on the line have been modified) and reset the focus on the same inputText modified by the user with javaScript because focus was lost after refresh.
So far, everything works fine.
When I use the arrow keys to change the selected row in the table, it's work fine (focus is still in the next or previous inputText), but if user try to use tab key to change the current line, the inputText on the next line have the focus but the current row of the table is not changed (I think it's normal).
My question : how can I change the current row after tab key pressed in this case ?
I don't know if it's really clear, not easy to explain, don't hesitate to ask more details.
Thanks in advance.Frank Nimphius wrote:
Hi,
My question : how can I change the current row after tab key pressed in this case ?
Use a client event to listen for the keyboard entry and intercept the tab. The use af:serverListener to call the server to set the rowKey on the table and issue a PPR for the table to re-paint
See sample 11 on http://www.oracle.com/technetwork/developer-tools/adf/learnmore/index-101235.html#CodeCornerSamples
to learn about how to use the client listener and server listener
FrankHi,
Thanks a lot for your advices, I used the client and server listener
I used this code on the method call in order to change the selection after key tab pressed, I don't know if it can be easier, but it works.
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("START changeSelectedRow");
RowKeySet oldRowKeySet = myTable.getSelectedRowKeys(); // get oldRowKeySet
if (oldRowKeySet == null) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("oldRowKeySet is null");
return;
RowKeySetImpl newRowKeySet = new RowKeySetImpl(); // The new RowKeySet use to change the selectedRow
DCIteratorBinding bindingIterator = ADFUtils.findIterator(MY_ITERATOR);
bindingIterator.setRangeSize(-1);
// set the new index of the current row.
int index = bindingIterator.getCurrentRowIndexInRange();
if (index < bindingIterator.getAllRowsInRange().length - 1) {
index++;
bindingIterator.setCurrentRowIndexInRange(index);
// get the current row after changed the index
Row currentRow = bindingIterator.getCurrentRow();
if (currentRow != null) {
ArrayList nextLst = new ArrayList(1);
nextLst.add(currentRow.getKey());
newRowKeySet.add(nextLst);
// set the new selectedRow
myTable.setSelectedRowKeys(newRowKeySet);
SelectionEvent selectionEvent = new SelectionEvent(oldRowKeySet, newRowKeySet, myTable);
selectionEvent.queue();
AdfFacesContext.getCurrentInstance().addPartialTarget(myTable);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("END changeSelectedRow");
Best Regards
Benjamin -
How to insert 10 rows at a time in the oracle
how ti insert r update 10 query at a time in the oracle
You can do a small test to find it out.
SQL> set serveroutput on
SQL> drop table t
2 /
Table dropped.
SQL> drop table s
2 /
Table dropped.
SQL> create table s(no integer, name varchar2(4000))
2 /
Table created.
SQL> create table t(no integer, name varchar2(4000))
2 /
Table created.
SQL> insert into s
2 select level, rpad('*',4000,'*')
3 from dual
4 connect by level <= 10000
5 /
10000 rows created.
SQL> commit
2 /
Commit complete.
SQL> declare
2 ltime integer;
3 begin
4 ltime := dbms_utility.get_time;
5
6 for i in (select * from s)
7 loop
8 insert into t(no, name) values(i.no,i.name);
9 end loop;
10
11 ltime := dbms_utility.get_time - ltime;
12
13 dbms_output.put_line('Exec Time:'||ltime/100||' Seconds...');
14 commit;
15 end;
16 /
Exec Time:17.22 Seconds...
PL/SQL procedure successfully completed.
SQL> truncate table t
2 /
Table truncated.
SQL> declare
2 type my_type is table of s%rowtype;
3 lType my_type;
4 ltime integer;
5 begin
6 ltime := dbms_utility.get_time;
7
8 select * bulk collect into lType from s;
9
10 forall i in 1..lType.count
11 insert into t values lType(i);
12
13 ltime := dbms_utility.get_time - ltime;
14
15 dbms_output.put_line('Exec Time:'||ltime/100||' Seconds...');
16
17 commit;
18 end;
19 /
Exec Time:6.27 Seconds...
PL/SQL procedure successfully completed.
SQL> truncate table t
2 /
Table truncated.
SQL> declare
2 ltime integer;
3 begin
4 ltime := dbms_utility.get_time;
5
6 insert into t select * from s;
7
8 ltime := dbms_utility.get_time - ltime;
9
10 dbms_output.put_line('Exec Time:'||ltime/100||' Seconds...');
11
12 commit;
13 end;
14 /
Exec Time:3.26 Seconds...
PL/SQL procedure successfully completed.Thanks,
Karthick. -
How to hide a row in BI Publisher using conditional formatting
Hi,
I am using BI Publisher 11.1.1.5.0.
I need to hide entire row based on the condition (if sal > 0 then hide entire row), please can you help on how can I achieve this?
thanksHi,
I've found the solution in
Report Designer's Guide for Oracle Business Intelligence Publisher Release 11g (11.1.1) Part No. E13881-02 - Section Conditional Formatting.
thanks
Maybe you are looking for
-
Question about the format of an external drive.....
Ok quick question... my external is formatted mac OS extended journaled. I need to create a new partition in FAT so that it can be read when I use bootcamp. However when I use disk utility to create a partition it says it would have to format the who
-
Hi everybody, Currently trying to compile/build the existing Plugin code (C++) with InDesign CS4 SDK on my Mac OS X 10.5 machine but getting following strange errors. /Volumes/MAC Extended/Inbetween Extended/Visual Studio/Adobe InDesign CS4 SDK/sou
-
E51 (or any S60v3 phone) multiple typing languages...
Hello all. In my very (very!) old Nokia phone, when I was typing text, I was able to switch between English, English T9, Hebrew and Hebrew T9 using thw # key. In my new E51, I can't find how to do that... When I change the language options to Hebrew,
-
Pantone Swatch values vs. Pantone+ Color Bridge Coated Book values
I'm working with a set of Pantone colors. Why don't the Pantone's CMYK/RGB values in Illustrator CC match the values given in the Pantone Plus Color Bridge Book?
-
Image difference between Organizer & Editor in Elements 6
I am using the tryout version of Elements 6 and find that the image in the Editor is much darker & more contrasty than in the Organizer, making the levels histogram difficult to use. I still have Elements 3 installed & find that there is no differenc