Deleting a row from a Procedure
Hi All
Can one of you tell me how to delete a row from a Procedure
It is created with
CREATE OR REPLACE PROCEDURE report.NAMEOFTABLE
(nPutId IN Report.ID%TYPE,
cArea IN Report.Area%TYPE,
cSubject IN Report.Subject%TYPE,
nUserId IN Report.EngineerID%TYPE,
cDesc IN Report.Description%TYPE,
cSide IN Report.SideEffects%TYPE,
cImpact IN Report.Impact%TYPE,
cNotes IN Report.Notes%TYPE,
nValid IN Report.Valid%TYPE) AS
-- Add or update Report
-- If nId < 1 then a record is added, otherwise updated.
BEGIN
IF nId < 1 THEN
INSERT INTO Report
(Area, Subject, EngineerID,
Description, SideEffects, Impact,
ReportNotes, Valid)
VALUES
(cArea, cSubject, nUserId, cDesc, cSide, cImpact, cNotes, nValid);
ELSE
UPDATE Report
SET ReportArea = cArea,
ReportSubject = cSubject,
ReportDescription = cDesc,
ReportSideEffects = cSide,
ReportImpact = cImpact,
ReportNotes = cNotes,
ReportValid = nValid
WHERE ReportID = nPutId;
END IF;
COMMIT;
END;
CREATE SYNONYM Admin.NAMEOFTABLE
Report.NAMEOFTABLE;
But I need to make 1 field of the impact and the sideEffect called the ImpactEffect
So how do i delete the field of Side effect and change the name of the Impact field.
Sould I make a new Procedure?
If you want to delete a row, you'd need a DELETE statement. It is not obvious to me, though, that you really want to delete a row. It sounds like you're trying to update a row, and there is an UPDATE statement in the procedure. Unfortunately, I'm very unsure exactly what you're trying to accomplish and how this procedure relates to that goal. Perhaps if you could post the starting state of the row, the procedure call you're trying to make, and the end state of that row, things might be much clearer.
As an aside, do you really have a schema and a table named REPORT? That seems rather confusing.
Justin
Similar Messages
-
Deleting a row from parent table
Dear Guru's
I am having two table with parent - child relationship. My problem is when I am deleting a row from parent table the curresponding child row from child table also should be deleted.
My Primary table 'Employee, EMPID Primary key
Child table 'Privilage' inthis EMPID referencing the EMPID of Employee table
My need is when I am deleting a row from parent table the curresponding child row from child table also should be deleted
I issued the SQL query like,
delete from employee where empid='12345' cascade constraints;
Then it showing me error like,
ERROR at line 1:
ORA-00933: SQL command not properly ended
Please resolve my issue , Its Top urgent
Thanks & Cheers
AntonyChoosing How Foreign Keys Enforce Referential Integrity
Oracle Database allows different types of referential integrity actions to be enforced, as specified with the definition of a FOREIGN KEY constraint:
Prevent Delete or Update of Parent Key The default setting prevents the deletion or update of a parent key if there is a row in the child table that references the key. For example:
CREATE TABLE Emp_tab (
FOREIGN KEY (Deptno) REFERENCES Dept_tab);Delete Child Rows When Parent Key Deleted The ON DELETE CASCADE action allows parent key data that is referenced from the child table to be deleted, but not updated. When data in the parent key is deleted, all rows in the child table that depend on the deleted parent key values are also deleted. To specify this referential action, include the ON DELETE CASCADE option in the definition of the FOREIGN KEY constraint. For example:
CREATE TABLE Emp_tab (
FOREIGN KEY (Deptno) REFERENCES Dept_tab
ON DELETE CASCADE); Set Foreign Keys to Null When Parent Key Deleted The ON DELETE SET NULL action allows data that references the parent key to be deleted, but not updated. When referenced data in the parent key is deleted, all rows in the child table that depend on those parent key values have their foreign keys set to null. To specify this referential action, include the ON DELETE SET NULL option in the definition of the FOREIGN KEY constraint. For example:
CREATE TABLE Emp_tab (
FOREIGN KEY (Deptno) REFERENCES Dept_tab
ON DELETE SET NULL);
SQL> conn scott/tiger
Connected.
SQL> create table ppk ( no number primary key);
Table created.
SQL> begin for inn in 1..10 loop insert into ppk values (inn); end loop; end;
PL/SQL procedure successfully completed.
SQL> create table ffk ( no number references ppk(no));
Table created.
SQL> begin for inn in 1..10 loop insert into ffk values (inn); end loop; end;
PL/SQL procedure successfully completed.
SQL> drop table ppk cascade constraints;
Table dropped.Message was edited by:
user52
Message was edited by:
user52
Message was edited by:
user52 -
Deleting a row from a table containing CLOB as one of the columns
When i delete a row from a table which contains a CLOB (internal clob) i.e. CLOB or BLOB column, Will the CLOB data will also be deleted ? I understand that what exactly stored in the CLOB column is the clob locator which points to the actual data.
So, when I delete this row, the clob locator will be deleted, but will the actual data what this locator is pointing to is also deleted ??? if not what is the process to delete the data the locator is pointing to when the row containing the locator is deleted ? If this is not happening then the actual data might become an orphan data which nobody has access to, will automatic garbage cleaning occurs on a frequent intravels to delete unaddressed data residing on the database server ?
Thanks in advance for the help, can email me at [email protected] alternatively.
Regards,
Srinivasa C.Michael,
Thanks very much for your inputs, here are the results i got when i tried the way you explained in your answer, the TRUNCATE command made the actual size back to normal, but the delete is not the same, so, how can i delete the data that a particular clob locator may point to ?
truncate would delete all the rows of the table, which might not serve my purpose, i would like to delete a row and also it's associated clob data from the database! is there anyway to do this ?
is there any limitation on the ool_sample size? i am basically a c++ programmer, i am looking for some function like FREE which would free the allocated memory to the clob once the locator is deleted.
your help is greatly appreciated - Thanks!
:-) Srini.
==========================
My Results:
==========================
SQL> create table sample (
2 id integer primary key,
3 the_data CLOB default empty_clob() )
4 lob (the_data) store as ool_sample;
Table created.
SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
2 from user_segments
3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
4 group by segment_name;
SEGMENT_NAME
SOTRAGE_CONSUMED
OOL_SAMPLE
20K
SAMPLE
10K
SQL> select count(*) from sample;
COUNT(*)
0
SQL> begin
2 for i in 1..1000
3 loop
4 insert into sample values (i, RPAD('some data', 4000) );
5 end loop;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
2 from user_segments
3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
4 group by segment_name;
SEGMENT_NAME
SOTRAGE_CONSUMED
OOL_SAMPLE
6420K
SAMPLE
70K
SQL> delete sample;
1000 rows deleted.
SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
2 from user_segments
3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
4 group by segment_name;
SEGMENT_NAME
SOTRAGE_CONSUMED
OOL_SAMPLE
6420K
SAMPLE
70K
SQL> commit;
Commit complete.
SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
2 from user_segments
3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
4 group by segment_name;
SEGMENT_NAME
SOTRAGE_CONSUMED
OOL_SAMPLE
6420K
SAMPLE
70K
SQL> begin
2 for i in 1..1000
3 loop
4 insert into sample values (i, rpad('some data', 4000));
5 end loop;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
2 from user_segments
3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
4 group by segment_name;
SEGMENT_NAME
SOTRAGE_CONSUMED
OOL_SAMPLE
9616K
SAMPLE
70K
SQL> truncate table sample;
Table truncated.
SQL> select segment_name, round(sum(bytes)/1024, 2) || 'K' as sotrage_consumed
2 from user_segments
3 where segment_name in ('SAMPLE', 'OOL_SAMPLE')
4 group by segment_name;
SEGMENT_NAME
SOTRAGE_CONSUMED
OOL_SAMPLE
20K
SAMPLE
10K -
HOW TO DELETE THE ROW FROM DATABASE
hI,
Iam pasting my code below.My problem isi retrieve rows from database and display them in jsp page in rows.For each row there is delete hyperlink.Now when i click that link i should only delete the row corresponding to that delete link temporarily but it should not delete the row from database now.It should only delete the row from database when i click the save button.How can i do this can any one give some code.
thanks
naveen
[email protected]
<%@ page language="java" import="Utils.*,java.sql.*,SQLCon.ConnectionPool,java.util.Vector,java.util.StringTokenizer" %>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Item Details</title>
<script>
function submitPage()
document.details.action = "itemdetails.jsp" ;
document.details.submit();
</script>
</head>
<body>
<form name="details" action="itemdetails.jsp" method="post">
<%
ConnectionPool pool;
Connection con = null;
Statement st;
ResultSet rs =null;
%>
<table border="0" cellpadding="0" cellspacing="0" width="328">
<tr>
<td width="323" colspan="4"><b>Reference No :</b> <input type="text" name="txt_refno" size="14">
<input type="submit" value="search" name="search" ></td>
</tr>
<tr>
<td width="81" bgcolor="#000099"><font color="#FFFFFF"><b>Item Code</b></font></td>
<td width="81" bgcolor="#000099"><font color="#FFFFFF"><b>Item No</b></font></td>
<td width="81" bgcolor="#000099"><font color="#FFFFFF"><b>Amount </b></font></td>
<td width="80" bgcolor="#000099"> </td>
</tr>
<%
pool= new ConnectionPool();
Utils utils = new Utils();
double total =0.00;
String search =utils.returnString(request.getParameter("search"));
if(search.equals("search"))
try
String ref_no =utils.returnString(request.getParameter("txt_refno"));
String strSQL="select * from ref_table where refno='" + ref_no + "' ";
con = pool.getConnection();
st=con.createStatement();
rs = st.executeQuery(strSQL);
while(rs.next())
String itemcode=rs.getString(2);
int item_no=rs.getInt(3);
double amount= rs.getDouble(4);
total= total + amount;
%>
<tr>
<td width="81"><input type=hidden name=hitem value=<%=itemcode%>><%=itemcode%></td>
<td width="81"><input type=hidden name=hitemno value=<%=item_no%>><%=item_no%></td>
<td width="81"><input type=hidden name=hamount value=<%=amount%>><%=amount%></td>
<td width="80"><a href="delete</td>
</tr>
<%
}catch(Exception e){}
finally {
if (con != null) pool.returnConnection(con);
%>
<tr>
<td width="323" colspan="4">
<p align="right"><b>Total:</b><input type="text" name="txt_total" size="10" value="<%=total%>"></td>
</tr>
<tr>
<td width="323" colspan="4">
<input type="button" value="save" name="save"></td>
</tr>
</table>
</form>
</body>
</html>You mean when you click on the hyperlink you want that row to disappear from the page, but not delete the row from the database until a commit/submit button is pressed?
Personally, I think I'd prefer that you have a delete checkbox next to every row and NOT remove them from the display if I was a user. You give your users a chance to change their mind about their choice, and when they're done they can see exactly which rows will be deleted before they commit.
You know your problem, of course, so you might have a good reason for designing it this way. But I'd prefer not removing them from the display. JMO - MOD -
How to delete multiple rows from ADF table
How to delete multiple rows from ADF table
Hi,
best practices when deleting multiple rows is to do this on the business service, not the view layer for performance reasons. When you selected the rows to delete and press submit, then in a managed bean you access thetable instance (put a reference to a managed bean from the table "binding" property") and call getSeletedRowKeys. In JDeveloper 11g, ADF Faces returns the RowKeySet as a Set of List, where each list conatins the server side row key (e.g. oracle.jbo.Key) if you use ADF BC. Then you create a List (ArrayList) with this keys in it and call a method exposed on the business service (through a method activity in ADF) and pass the list as an argument. On the server side you then access the View Object that holds the data and find the row to delte by the keys in the list
Example 134 here: http://blogs.oracle.com/smuenchadf/examples/#134 provides you with the code
Frank -
Deleting a row from a table control through right-clic​k menu
I have a table control. I want to delete a row from it when a user right clicks on a particular row and selects "Delete row" menu item. I have managed the creation of menu item but have not been able to delete the row which is right clicked and the menu item "Delete row" is selected. Guidance required! Thanks!
smercurio_fc wrote:
It's irrelevant whether the table is a control or indicator. See attached VI.
Hi smercurio,
please see the attached picture. In my previous post i mean the different in the menu. The red marked function is not available, if the table is an indicator. LV8.5!
Mike
Message Edited by MikeS81 on 04-18-2008 05:19 PM
Attachments:
Unbenannt.PNG 22 KB -
Deleting a row from a Row Repeater
Hi All,
How could i delete a row from a row repeater??????
I am using REMOVE_ELEMENT method from IF_WD_CONTEXT_NODE interface... Is this the correct way!!!!!!.
Is there anyother way to do the same?????
Best Regards.
Shafiq Ahmed Khan.Hi
first u get the index from the context element. with the help of the index u can get that particular element using get element.
then u remove the element .
check this code.
CALL METHOD context_element->get_index
receiving
my_index = lv_index.
CALL METHOD lo_nd_rcf_edu_det->get_element
EXPORTING
index = lv_index
receiving
node_element = lo_el_rcf_edu_det .
CALL METHOD lo_nd_rcf_edu_det->remove_element
EXPORTING
element = lo_el_rcf_edu_det
receiving
has_been_removed =
Declare a parameter context_element in the method of type if_wd_context_element
regards
chythanya -
Deleting a row from matrix by context menu
Hi all
does anyone know how can i cause right click on mouse button. on a certain row within a matrix to show a context menu with the option to delete the row. and when pressing the menu item handling the event of deleting the row from the matrix?
appreciate the help
YoavHi Yoav,
Simply, 'context menu' have to be handled with 'menu event' object.
It can be done by 'flushToDataSource' method and some tricks.
Basically, method delete the row without any clause of addon code.
But it's only can be done in display side.
If you're using DBDataSource, you have to flush to the datasource.
I mean, you have to update datasource with the data displayed in the matrix.
and then, delete the last row of the datasource.
FlushToDataSource doesn't affect to the number of rows in the datasource.
You have to delete a row with a method of DBDatasource.. I can't remember the name.
If, the matrix uses userdatasource, you don't need to delete a row in datasource.
Because userdatasource doesn't have a concept of 'row', actually.
Hope this helpful for you.
Regards,
Hyunil Choi -
I am trying to delete a row from a JTable whenever the button on the last column is pressed. I know to do this, I can use the removeRow(int) method of the tableModel. But the odd thing is when I try to get a handle to the TableModel from the JTable to use that function, i.e. table.getModel().removeRow(int) it doesn't work. But if I explicitly pass in the tableModel into my class it does work. Here's the code below:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.UIManager;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableCellEditor;
import javax.swing.AbstractCellEditor;
import javax.swing.table.DefaultTableModel;
public class tester4 extends JFrame
protected final int BUTTON_COL = 2;
private TableCellRenderer defaultRenderer;
private TableCellEditor defaultEditor;
private JTable workingTable;
private String[] transactionCols = {"Qty", "Product", "Cancel"};
private Object[][] data = {{5, "prod1", "Cancel"},
{6, "prod2", "Cancel"},
{7, "prod3", "Cancel"}};
public tester4()
workingTable = new JTable(tableModel);
workingTable.setName("Working Table");
defaultRenderer = workingTable.getDefaultRenderer(JButton.class);
defaultEditor = workingTable.getDefaultEditor(Object.class);
StatusTableRenderer testRenderer = new StatusTableRenderer(defaultRenderer, defaultEditor, workingTable, tableModel);
workingTable.setDefaultRenderer(Object.class, testRenderer);
workingTable.setDefaultEditor(Object.class, testRenderer);
JScrollPane scrollPane = new JScrollPane( workingTable );
getContentPane().add( scrollPane );
private DefaultTableModel tableModel = new DefaultTableModel(data, transactionCols){
// Only allow button column to be editable, if there is an actual
// button in that row
public boolean isCellEditable(int row, int col){
return (col == BUTTON_COL && data[row][col] != "") ? true : false;
// Overriden getColumnClass method that will return the object
// class type of the first instance of the data type otherwise
// returns the Object.class
public Class getColumnClass(int column){
for (int row = 0; row < getRowCount(); row++){
Object o = getValueAt(row, column);
if (o != null){ return o.getClass(); }
return Object.class;
public static void main(String[] args)
tester4 frame = new tester4();
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.pack();
frame.setVisible(true);
public class StatusTableRenderer extends AbstractCellEditor
implements TableCellRenderer,
TableCellEditor,
ActionListener{
private TableCellRenderer defaultRenderer;
private TableCellEditor defaultEditor;
private JButton cancelButton;
private JButton editButton;
private String text;
private int buttonColumn;
private int selectedRow;
private JTable table;
private DefaultTableModel tableModel;
public StatusTableRenderer(TableCellRenderer renderer,
TableCellEditor editor,
JTable table,
DefaultTableModel tableModel){
defaultRenderer = renderer;
defaultEditor = editor;
this.table = table;
this.tableModel = tableModel;
buttonColumn = table.getColumnCount() - 1;
cancelButton = new JButton();
editButton = new JButton();
editButton.setFocusPainted(true);
editButton.addActionListener(this);
public StatusTableRenderer(TableCellRenderer renderer,
TableCellEditor editor,
JTable table,
DefaultTableModel tableModel,
int _buttonColumn){
this(renderer, editor, table, tableModel);
buttonColumn = _buttonColumn;
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (column == buttonColumn){
if (hasFocus){
cancelButton.setForeground(table.getForeground());
cancelButton.setBackground(UIManager.getColor("Button.background"));
else if (isSelected){
cancelButton.setForeground(table.getSelectionForeground());
cancelButton.setBackground(table.getSelectionBackground());
else{
cancelButton.setForeground(table.getForeground());
cancelButton.setBackground(UIManager.getColor("Button.background"));
cancelButton.setText( (value == null) ? "" : value.toString() );
return cancelButton;
return defaultRenderer.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column){
if (column == buttonColumn){
text = ((value == null) ? "": value.toString());
editButton.setText(text);
selectedRow = row;
return editButton;
return defaultEditor.getTableCellEditorComponent(
table, value, isSelected, row, column);
public Object getCellEditorValue()
return text;
public void actionPerformed(ActionEvent e)
fireEditingStopped();
// This works
tableModel.removeRow(selectedRow);
// This does not work
// table.getModel().removeRow(selectedRow);
}Take a look at the actionPerfformed method. One way of doing it works, one doesn't. Just trying to understand why me getting a handle to the tableModel through the table doesn't work.
Message was edited by:
deadseasquirrelsIt gives me a run-time error Well then your question should be "why do I get this run-time error" and then you would quote the error. Be more descriptive. "It doesn't work" is not descriptive.
table.getModel().removeRow(selectedRow);I don't use JDK1.5 either. But if you are saying that the above line compiles cleanly with JDK1.5 (because of the auto-boxing feature, or whatever its called), then I see no reason why the code wouldn't work since it recognizes the class as a DefaultTableModel.
Presumably you commented out the other line so you don't try to delete the row twice. Otherwise you might be getting a indexing error. -
Deleting a row from a database...
Here is the method I am calling to delete a row from a database. I keep getting this error, but I am not sure why.
Error: "Too few parameters. Expected 1."
//To delete a row
public void removeRow(String x, String y) {
try {
Statement stmt = con.createStatement();
//delete row with same x and y
//first is a string and second is a number
String query = "DELETE * FROM table WHERE first = '" +x+ "' AND " +
"second = " +Integer.parseInt(y);
int result = stmt.executeUpdate(query); //runs delete query, ERROR HERE *************
System.out.println("Test"); //debug statement, never gets here
//deletion confirmation message
JOptionPane.showMessageDialog(null, "Row deleted",
"Delete Reservation", JOptionPane.INFORMATION_MESSAGE);
catch (Exception e) { System.out.println(e); }Additionally, in the future you might want to use:
catch(SQLException sqlx) {
System.out.println( sqlx.getSQLState()
+"\t"+sqlx.getMessage()
+"\t"+sqlx.getErrorCode() );... It'll help with diagnostics.
☺Bill -
Deleting a row from a table using jsp
Given a table in a jsp, can an user click on a row of that table and retrieve the information so that the program can delete a record from a database table?
most of the tables that I have seen are static, the user cannot interact with them(specially when the user wants to delete several records from a database table).
Can anyone suggests a good book or way of deleting a row from table using jsp.eg use a column in the table that has a radio button or check box,
on submit, get all the rows that are checked, using the row as an index into your db store, get the key and use the key to issue the sql delete command. -
Deleting a row from a Parent VO gives NullPointerException
I am using JDev 11.1.1.2.0
Deleting a row from a Parent VO gives NullPointerException raised from oracle.jbo.server.EntityImpl.vetoRemoveWithDetails(EntityImpl.java:8214)
Here is my implementation:
There are two Entity Objects(Named "Parent" and "Child").
Both EO are NOT based on a database table. (These are populated from a method in the AM, the method calls a database API that returns an nested array and this array is used to populate the Parent and Child entities)
All attributes in these entity objects are Non-persistent.
The View Object "ParentEv" is based on "Parent" EO
The View Object "ChildEv" is based on "Child" EO
The View Objects "ParentEv" and "ChildEv" are linked by a view link.
The Entities "Parent" and"Child" are linked by Entity Association ( as "Composition Association" with "Implement Cascade Delete" checked.)
I am programatically deleting and populating the View Objects ParentEv and ChildEv from a method in the AM.
The first time I execute the method in BC Tester, it works fine.
The second time I execute the method it works fine.
But on third execution, it gives the below error which seems to be NullPointerException raised from oracle.jbo.server.EntityImpl.vetoRemoveWithDetails(EntityImpl.java:8214)
I am able to reproduce this in a test case scenario. It always works the first 2 times and fails when the method to delete and populate the VOs is executed a 3rd time.
If we base the "Parent" and "Child" entities on some dummy database views, it works fine, the problem only occurs when the Entities are NOT based on any table.
Can someone advise on what could be causing this issue?
Thanks,
Mitesh.Here's the method that I use in my test case to populate the VOs.
* This method populates the VOs ParentEv and ChildEv.
* These VOs are based on EOs Paren and Child, respectively.
* Before populating the VOs I am deleting any existing rows.
* The first two times this method is executed, it works fine.
* The third time this method executes it gives a nullpointerexception raised from
* oracle.jbo.server.EntityImpl.vetoRemoveWithDetails(EntityImpl.java:8214)
public void populateMethod(){
int rowCount = getParentEv().getRowCount();
for (int i = 0; i < rowCount; i++) {
Row row = getParentEv().last();
if(row!=null)
row.remove();
rowCount = getChildEv().getRowCount();
for (int i = 0; i < rowCount; i++) {
Row row = getChildEv().last();
if(row!=null)
row.remove();
int k = 0;
for (int i = 1; i < 5; i++) {
ParentEvRowImpl parentEvRow = (ParentEvRowImpl)getParentEv().createRow();
parentEvRow.setParentPk("Parent " + i);
parentEvRow.setParentDesc("Parent Desc " + i);
getParentEv().insertRow(parentEvRow);
for (int j = 1; j < 5; j++) {
k++;
ChildEvRowImpl childEvRow = (ChildEvRowImpl)getChildEv().createRow();
childEvRow.setChildPk("Child " + k);
childEvRow.setChildDesc("Child Desc " + k);
getChildEv().insertRow(childEvRow);
}==============================================================================
Here is the Parent.xml for the Parent EO:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Entity SYSTEM "jbo_03_01.dtd">
<!---->
<Entity
xmlns="http://xmlns.oracle.com/bc4j"
Name="Parent"
Version="11.1.1.55.36"
AliasName="Parent"
BindingStyle="OracleName"
UseGlueCode="false"
RowClass="oracle.jbo.server.EntityImpl"
DefClass="oracle.jbo.server.EntityDefImpl"
CollClass="oracle.jbo.server.EntityCache">
<DesignTime>
<AttrArray Name="_publishEvents"/>
</DesignTime>
<Attribute
Name="ParentPk"
IsQueriable="false"
IsPersistent="false"
ColumnName="PARENTPK"
SQLType="VARCHAR"
Type="java.lang.String"
ColumnType="$none$"
PrimaryKey="true"/>
<Attribute
Name="ParentDesc"
IsQueriable="false"
IsPersistent="false"
ColumnName="$none$"
SQLType="VARCHAR"
Type="java.lang.String"
ColumnType="$none$"/>
<AccessorAttribute
Name="Child"
Association="model.eo.ea.ChildParentAssoc"
AssociationEnd="model.eo.ea.ChildParentAssoc.Child"
AssociationOtherEnd="model.eo.ea.ChildParentAssoc.Parent"
Type="oracle.jbo.RowIterator"
IsUpdateable="false"/>
</Entity>==============================================================================
Here is the Child.xml for the Child EO:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Entity SYSTEM "jbo_03_01.dtd">
<!---->
<Entity
xmlns="http://xmlns.oracle.com/bc4j"
Name="Child"
Version="11.1.1.55.36"
AliasName="Child"
BindingStyle="OracleName"
UseGlueCode="false">
<DesignTime>
<AttrArray Name="_publishEvents"/>
</DesignTime>
<Attribute
Name="ChildPk"
IsUpdateable="while_insert"
IsQueriable="false"
IsPersistent="false"
IsNotNull="true"
ColumnName="CHILDPK"
SQLType="VARCHAR"
Type="java.lang.String"
ColumnType="$none$"
PrimaryKey="true"/>
<Attribute
Name="ChildDesc"
IsQueriable="false"
IsPersistent="false"
ColumnName="$none$"
SQLType="VARCHAR"
Type="java.lang.String"
ColumnType="$none$"/>
<Attribute
Name="ParentPk"
IsQueriable="false"
IsPersistent="false"
IsNotNull="true"
ColumnName="$none$"
SQLType="VARCHAR"
Type="java.lang.String"
ColumnType="$none$"/>
</Entity>==============================================================================
Here is the ChildParentAssoc.xml for the Association between Parent and Child EOs:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Association SYSTEM "jbo_03_01.dtd">
<!---->
<Association
xmlns="http://xmlns.oracle.com/bc4j"
Name="ChildParentAssoc"
Version="11.1.1.55.36">
<DesignTime>
<Attr Name="_isCodegen" Value="true"/>
</DesignTime>
<AssociationEnd
Name="Parent"
Cardinality="1"
Source="true"
Owner="model.eo.Parent"
DeleteContainee="true"
LockLevel="NONE"
ExposedAccessor="false">
<DesignTime>
<Attr Name="_aggregation" Value="0"/>
<Attr Name="_finderName" Value="Parent"/>
<Attr Name="_isUpdateable" Value="true"/>
<Attr Name="_minCardinality" Value="1"/>
</DesignTime>
<AttrArray Name="Attributes">
<Item Value="model.eo.Parent.ParentPk"/>
</AttrArray>
</AssociationEnd>
<AssociationEnd
Name="Child"
Cardinality="-1"
Owner="model.eo.Child"
HasOwner="true">
<DesignTime>
<Attr Name="_aggregation" Value="0"/>
<Attr Name="_finderName" Value="Child"/>
<Attr Name="_isUpdateable" Value="true"/>
</DesignTime>
<AttrArray Name="Attributes">
<Item Value="model.eo.Child.ParentPk"/>
</AttrArray>
</AssociationEnd>
</Association>==============================================================================
Here is the ParentEv.xml for the ParentEv VO:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
<!---->
<ViewObject
xmlns="http://xmlns.oracle.com/bc4j"
Name="ParentEv"
Version="11.1.1.55.36"
BindingStyle="OracleName"
CustomQuery="true"
RowClass="model.vo.ev.ParentEvRowImpl"
ComponentClass="model.vo.ev.ParentEvImpl"
PageIterMode="Full"
UseGlueCode="false">
<DesignTime>
<Attr Name="_codeGenFlag2" Value="Access|Coll"/>
<Attr Name="_isExpertMode" Value="true"/>
<Attr Name="_isCodegen" Value="true"/>
</DesignTime>
<EntityUsage
Name="Parent"
Entity="model.eo.Parent"/>
<ViewAttribute
Name="ParentDesc"
IsSelected="false"
IsQueriable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="255"
EntityAttrName="ParentDesc"
EntityUsage="Parent"
AliasName="PARENTDESC"/>
<ViewAttribute
Name="ParentPk"
IsQueriable="false"
IsPersistent="false"
PrecisionRule="true"
EntityAttrName="ParentPk"
EntityUsage="Parent"/>
<ViewLinkAccessor
Name="ChildEv"
ViewLink="model.vo.vl.ChildEvParentEvVl"
Type="oracle.jbo.RowIterator"
IsUpdateable="false"/>
</ViewObject>==============================================================================
Here is the ChildEv.xml for the ChildEv VO:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
<!---->
<ViewObject
xmlns="http://xmlns.oracle.com/bc4j"
Name="ChildEv"
Version="11.1.1.55.36"
BindingStyle="OracleName"
CustomQuery="true"
RowClass="model.vo.ev.ChildEvRowImpl"
ComponentClass="model.vo.ev.ChildEvImpl"
PageIterMode="Full"
UseGlueCode="false">
<DesignTime>
<Attr Name="_codeGenFlag2" Value="Access|Coll"/>
<Attr Name="_isExpertMode" Value="true"/>
<Attr Name="_isCodegen" Value="true"/>
</DesignTime>
<EntityUsage
Name="Child"
Entity="model.eo.Child"/>
<ViewAttribute
Name="ChildDesc"
IsSelected="false"
IsQueriable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="255"
EntityAttrName="ChildDesc"
EntityUsage="Child"
AliasName="CHILDDESC"/>
<ViewAttribute
Name="ChildPk"
IsUpdateable="while_insert"
IsQueriable="false"
IsPersistent="false"
IsNotNull="true"
PrecisionRule="true"
EntityAttrName="ChildPk"
EntityUsage="Child"/>
<ViewAttribute
Name="ParentPk"
IsQueriable="false"
IsPersistent="false"
IsNotNull="true"
PrecisionRule="true"
EntityAttrName="ParentPk"
EntityUsage="Child"/>
</ViewObject>==============================================================================
Here is the ChildEvParentEvVl.xml for the view link between ParentEv and ChildEv VOs:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ViewLink SYSTEM "jbo_03_01.dtd">
<!---->
<ViewLink
xmlns="http://xmlns.oracle.com/bc4j"
Name="ChildEvParentEvVl"
Version="11.1.1.55.36">
<DesignTime>
<Attr Name="_isCodegen" Value="true"/>
</DesignTime>
<ViewLinkDefEnd
Name="ParentEv"
Cardinality="1"
Owner="model.vo.ev.ParentEv"
Source="true">
<DesignTime>
<Attr Name="_finderName" Value="ParentEv"/>
<Attr Name="_isUpdateable" Value="true"/>
</DesignTime>
<AttrArray Name="Attributes">
<Item Value="model.vo.ev.ParentEv.ParentPk"/>
</AttrArray>
</ViewLinkDefEnd>
<ViewLinkDefEnd
Name="ChildEv"
Cardinality="-1"
Owner="model.vo.ev.ChildEv">
<DesignTime>
<Attr Name="_finderName" Value="ChildEv"/>
<Attr Name="_isUpdateable" Value="true"/>
</DesignTime>
<AttrArray Name="Attributes">
<Item Value="model.vo.ev.ChildEv.ParentPk"/>
</AttrArray>
</ViewLinkDefEnd>
</ViewLink> -
Issue while deleting a row from a table
Dear friends,
i am getting an issue while deleting a row from a table, pls check screen shots , the first screen shot is my table contents
when i delete 2 row , the second row is deleting properly like below screen shot
but i want like below screen shot , Col1 contents should be like pic 1 . could any one pls let me know how to solve this issue.
Thanks
VijayaHi vijaya,
please try this code, it will help you.
DATA : it_rows TYPE wdr_context_element_set,
wa_rows LIKE LINE OF it_rows.
DATA lo_nd_table TYPE REF TO if_wd_context_node.
DATA lt_table TYPE wd_this->elements_table.
DATA lo_el_table TYPE REF TO if_wd_context_element.
DATA ls_vbap TYPE wd_this->element_table.
DATA: ld_index TYPE i.
data value TYPE sy-index.
* navigate from <CONTEXT> to <table> via lead selection
lo_nd_table= wd_context->get_child_node( name = wd_this->wdctx_table ).
* @TODO handle non existant child
* IF lo_nd_table IS INITIAL.
* ENDIF.
* get element via lead selection
* alternative access via index
* lo_el_table = lo_nd_table->get_element( index = 1 ).
* @TODO handle not set lead selection
IF lo_el_table IS INITIAL.
ENDIF.
* navigate from <CONTEXT> to <table> via lead selection
lo_nd_table = wd_context->get_child_node( name = wd_this->wdctx_table ).
* @TODO handle non existant child
* IF lo_nd_table IS INITIAL.
* ENDIF.
lo_nd_table->get_static_attributes_table( IMPORTING table = lt_table ).
* @TODO handle non existant child
* IF lo_nd_table IS INITIAL.
* ENDIF.
** @TODO compute values
** e.g. call a model function
* navigate from <CONTEXT> to <table> via lead selection
lo_nd_table = wd_context->get_child_node( name = wd_this->wdctx_table ).
* @TODO handle non existant child
* IF lo_nd_table IS INITIAL.
* ENDIF.
** @TODO compute values
** e.g. call a model function
it_rows = lo_nd_table>get_selected_elements( ).
CALL METHOD lo_nd_table->GET_LEAD_SELECTION_INDEX
RECEIVING
INDEX = value .
LOOP AT it_rows INTO wa_rows.
CALL METHOD wa_rows->get_static_attributes
IMPORTING
static_attributes = ls_table.
READ TABLE lt_table INTO ls_table WITH KEY col1 = ls_table-col1.
ld_index = value.
ENDLOOP.
CLEAR : ls_table-col2,
ls_table-col2.
MODIFY lt_table INDEX ld_index FROM ls_table.
lo_nd_table->bind_table( new_items = lt_table set_initial_elements = abap_true ). -
Best practice for deleting multiple rows from a table , using creator
Hi
Thank you for reading my post.
what is best practive for deleting multiple rows from a table using rowSet ?
for example how i can execute something like
delete from table1 where field1= ? and field2 =?
Thank youHi,
Please go through the AppModel application which is available at: http://developers.sun.com/prodtech/javatools/jscreator/reference/codesamples/sampleapps.html
The OnePage Table Based example shows exactly how to use deleting multiple rows from a datatable...
Hope this helps.
Thanks,
RK. -
How To Delete a Row From a TableView !!!!
Hi,
Does any know how to delete a row from a table view model.
I have a TableViewModel being displayed, when the user select the particular row and click delete i want that particular row to be deleted.
Any Suggestions How.
Thanks,
Emmanuel.If u want to delete single row, then set the property of TableView - selectionMode="SINGLESELECT". Select the radio button and click on delete button. In the main program, you can get the row value like...
public void onDeleteButtonClicked(Event event) throws PageException {
TableView table = (TableView) this.getComponentByName ("idTableView");
DefaultTableViewModel dmodel = myBean.beanModel;
String pid = "", row_selected;
// Get the first visible row
int firstVisibleRow = table.getVisibleFirstRow();
// Get the last visible row
int lastVisibleRow = table.getVisibleLastRow();
for (int i = firstVisibleRow; i <= lastVisibleRow; i++) {
if (table.isRowSelected(i)) {
row_selected = i;
pid = dmodel.getValueAt(i, 1).toString();
"i" will give you the row no, pid has the value of the row at first column.
Hope this helps.
Thanks,
Praveen
Maybe you are looking for
-
Problem with selecting text in a PDF document
I'm having a problem with Acrobat 9 and Reader 9. PDF document that has copying and selecting permissions granted, when I highlight text for copying, some of it gets highlighted and some doesn't. Put the same document on several computers in the of
-
How to synch ipad, iphone4s, macbook pro "message"
"messages" doesnt show up on my list on MacBook Pro to synch with ipad and iphone. Why? and what can I do? thanks
-
Search option in masthead design
Hi all. How can we place the toolarea search option in masthead design so that the search option works well ? I want to place this in place of branding image.
-
Hi Dear Friends, In steel (Pipe) industry, I have a raw material (HR Coil) of size: 3 mm thickness, 510 mm width, X mm length & 5100 kg in weight, from which I want to make semi finished product (Slitted Coil). From this HR Coil I want to make 5 Slit
-
I have an illustrator CS5 document, and somehow a few images were embedded, rather than linked to. I need them to be linked and not embedded. How can I change them?