ODI 10g delete conditional row Using KM

Hi I will add new step to ODI 10g IKM control append
I want to delete from target some columns where is being on source.I will capture updating or new rows then I will delete this rows from target according to UK of Target end of this I will insert.I wrote new step like this:I selected UK rows on target
delete from <%=odiRef.getTable("L","TARG_NAME","A")%> T WHERE (<%=odiRef.getTargetColList("", "[COL_NAME]", ", ", "\n", "UK")%> )
IN
SELECT ---Which method can ı use here?
FROM <%=odiRef.getFrom()%>
WHERE (1=1) AND
<%=snpRef.getJoin()%>
<%=snpRef.getFilter()%>
<%=snpRef.getJrnFilter()%>
<%=snpRef.getGrpBy()%>
<%=snpRef.getHaving()%>
/*commit*/
I have two source S1 and S2
For example my target table is like this:
Target
Asset_id(UK)---it comes from source table. S1.ROW_ID--->T.ASSET_ID
root_asset_id(UK)it comes from source table of S2.PROD_ID-->T.ROOt_ASSET_ID
cre_dt(NOT UK)
etc
Now I want to compare like this :
Delete from target T where (T.ASSET_ID,T.ROOT_ASSET _ID) IN
(SELECT S1.ROW_ID,S2.PROD_ID
FROM SOURCE S1 SOURCE S2)
How can I modify ?
Could anyone help me?
Best Regards,
Thanks

Tell me if I'm wrong : you want to delete in Target the data that are in source.
And insert only source records that were not in your target.
And keep in target data that are not in source.
If so, you can do it like this :
1) Use a copy of "IKM incremental update".
Edit the step "flag row for update"
Rename it to "flag row for delete"
update     <%=snpRef.getTable("L", "INT_NAME", "W")%>
set     IND_UPDATE = 'D'
where     (<%=snpRef.getColList("","[COL_NAME]", ", ", "", "(UK)")%>)
     in (
     select     <%=snpRef.getColList("","[COL_NAME]", ", ", "", "(UK)")%>
     from     <%=snpRef.getTable("L", "TARG_NAME", "A")%>
==> each row of your I$ table that ARE in your target table are now flagged as "D" for "deleted".
it means that each row of your target table that are in source will be flagged as D in your I$ table.
2) Then create a new step "delete row in target" like this :
delete from <%=snpRef.getTable("L","TARG_NAME","A")%> T
where (<%=snpRef.getColList("", "\tT.[COL_NAME]", ",", "", "UK")%>) IN      
(     select <%=snpRef.getColList("", "\t\tS.[COL_NAME]", ",\n", "", "UK")%>
     from <%=snpRef.getTable("L", "INT_NAME", "W")%> S
     where IND_UPDATE = 'D'
==> each row flagged as D will be deleted in the target table

Similar Messages

  • How I can delete a row using a simple query?

    SZSLIFE_SPRIDEN_PIDM     SZSLIFE_SGBSTDN_TERM_CODE_EFF     SZSLIFE_SLRRASG_BLDG_CODE     SZSLIFE_SLRRASG_ROOM_NUMBER     SZSLIFE_SLRRASG_BEGIN_DATE     SZSLIFE_SLRRASG_END_DATE
    48547     199890                    
    48547     199990                    
    48547     199990     BLU     205     09/03/1999     12/23/1999
    48547     200010                    
    48547     200010     BLU     205     01/25/2000     05/25/2000
    48547     200090                    
    48547     200090     MOR     406     09/03/2000     12/23/2000
    48547     200110                    
    48547     200110     MOR     406     01/25/2001     05/25/2001
    48547     200190                    
    48547     200210                    
    48547     200290                    
    48547     200310                    
    48547     200390                    
    48547     200410                    
    48547     200610                    
    Here is what a simple question is probably for some of you; I can not get this to work. I need to delete all the rows that are duplicate like row #2 with the same SZSLIFE_SGBSTDN_TERM_CODE_EFF but with not
    SZSLIFE_SLRRASG_BLDG_CODE and SZSLIFE_SLRRASG_ROOM_NUMBER     
    I need to write a code where it counts the SZSLIFE_SGBSTDN_TERM_CODE_EFF and if it have the same (2 times.
    I need to delete the row without SZSLIFE_SLRRASG_BLDG_CODE and SZSLIFE_SLRRASG_ROOM_NUMBER
    The SZSLIFE_SLRRASG_BLDG_CODE NEEDS to be not null, because I do an insert in this table I need to be able to insert null values.
    How I can use a simple query where I can delete all the duplicate records without bldg_code and room number…
    Here is the table description
    SZSLIFE_SPRIDEN_PIDM NUMBER(8)
    SZSLIFE_SPRIDEN_ID VARCHAR2(10)
    SZSLIFE_SPRIDEN_LAST_NAME VARCHAR2(60)
    SZSLIFE_SPRIDEN_FIRST_NAME VARCHAR2(60)
    SZSLIFE_SPRIDEN_MI VARCHAR2(15)
    SZSLIFE_SGBSTDN_TERM_CODE_EFF VARCHAR2(6)
    SZSLIFE_SGBSTDN_STST_CODE VARCHAR2(2)
    SZSLIFE_STVSTST_DESC VARCHAR2(30)
    SZSLIFE_SGBSTDN_STYP_CODE VARCHAR2(2)
    SZSLIFE_STVSTYP_DESC VARCHAR2(30)
    SZSLIFE_SGBSTDN_LEVL_CODE VARCHAR2(2)
    SZSLIFE_STVLEVL_DESC VARCHAR2(30)
    SZSLIFE_SGBSTDN_RESD_CODE VARCHAR2(10)
    SZSLIFE_STVRESD_DESC VARCHAR2(40)
    SZSLIFE_SLRRASG_BLDG_CODE VARCHAR2(10)
    SZSLIFE_SLRRASG_ROOM_NUMBER VARCHAR2(10)
    SZSLIFE_SLRRASG_BEGIN_DATE VARCHAR2(12)
    SZSLIFE_SLRRASG_END_DATE VARCHAR2(12)
    SLRRASG_ASCD_CODE VARCHAR2(2)
    I will appreciate any help!
    SLRRASG_ROLL_IND VARCHAR2(2)

    Thank you very much Sandeep, this works!
    1 DELETE SZSLIFE_TEMP2
    2 WHERE
    3 SZSLIFE_SGBSTDN_TERM_CODE_EFF
    4 IN
    5 (SELECT SZSLIFE_SGBSTDN_TERM_CODE_EFF
    6 FROM SZSLIFE_TEMP2
    7 GROUP BY
    8 SZSLIFE_SGBSTDN_TERM_CODE_EFF
    9 HAVING COUNT(*) > 1)
    10 AND
    11* SZSLIFE_SLRRASG_BLDG_CODE = ' '
    12 /
    4 rows deleted.
    The only thing here is that the SZSLIFE_SLRRASG_BLDG_CODE can not be defined as a a NULL, so I can not use
    where SZSLIFE_SLRRASG_BLDG_CODE is null
    Here is how those two columns are define:
    SZSLIFE_SLRRASG_BLDG_CODE VARCHAR2(10)
    SZSLIFE_SLRRASG_ROOM_NUMBER VARCHAR2(10)
    So,
    my question is it will be safe to do SZSLIFE_SLRRASG_BLDG_CODE = ' ' ?
    Again, it works, it deleted the rfows that I wanted...
    Thank you very much!!!
    Rogelio

  • Unable to delete a row using checkbox on report region

    hmm..this used to work, and unfortunatly this is code unfamiliar to me. We have a report region containing a list of records. The last column is a row selector, and is a check box. Several rows may be checked and then a delete button pressed.
    we receive the following error: ORA-20001: Error in multi row delete operation: row= 394878, ORA-01403: no data found,
    multi row operation failed
    however, the key that it references 394878 is not that of the record I had checked, rather it is the first record in the report.
    so...not able to delete, and it is trying to delete the wrong record. Any ideas. thanks

    Check the table name in your MRD process and make sure it's the right one. Also ensure the "checked" value of the checkbox is correct (i.e.: is the checkbox based on the correct key column from the report?).

  • Delete grid row using button in row

    I want to create a grid, with each row containing several
    textInputs and one delete button.
    I will have another button that will add rows to the grid.
    I can't find out how to tie the button in each row to delete
    that row...
    Alos, what is the best way to add a row to the grid ?
    Please advise
    Thanks.

    Hi,
    Why don't you use the function "excel inplace" in the ALV?  With the ALV you have some buttons "SORT/TOTAL/FILTER... and you have PRINT and EXCEL INPLACE"?
    Do you use the method   call method g_grid->set_table_for_first_display in order to display your data alv?
    Best regards

  • Delete datagridview row using right click context menu does not behave like the delete key

    I have a datagridview with editing enabled. If I click the row header and press the delete key, the row is removed no questions asked. I don't recall doing any coding to make this happen but I couldn't do copy and paste using keys so I created a context
    menu with copy, paste, & delete.  The delete option calls
    dgvVX130.Rows.RemoveAt(dgvVX130.SelectedRows[0].Index);
    The row is removed but the problem is this fires other events like RowValidating which fails.  I presume because the row is no longer there.
    The delete keypress is definitely a lot cleaner so my question is 3fold. 
    1) Why doesn't Rows.RemoveAt behave like the delete key? 
    2) Is it possible to issue a delete keypress to do the same thing?
    3)  Is it possible to suppress the RowValidating event or other events when Rows.RemoveAt is fired?

    Interesting.  My delete key does not fire the row validating event.  When I use the delete key I click on the row header which does fire the row validating event and then I press the delete key.  Row is deleted and no event fires.  Works
    just the way I want it to.  I wish my context menu delete worked that way.  I wouldn't know what chunk of code I can provide to show the Row Validating NOT firing when delete key is pressed but here is the context menu code that does fire Row Validating.
    private void cmsEditItemClick(object sender, ToolStripItemClickedEventArgs e)
    ToolStripItem item = e.ClickedItem;
    switch (item.Text)
    case "Copy":
    if (dgvVX130.GetCellCount(DataGridViewElementStates.Selected) > 0)
    try
    // Add the selection to the clipboard.
    Clipboard.SetDataObject(
    dgvVX130.GetClipboardContent());
    // Replace the text box contents with the clipboard text.
    catch (System.Runtime.InteropServices.ExternalException)
    MessageBox.Show("The Clipboard could not be accessed. Please try again.");
    break;
    case "Paste":
    if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) == true)
    ClipboardUtils.PasteFromClipboard(dgvVX130);
    dgvVX130.NotifyCurrentCellDirty(true);
    dgvVX130.EndEdit();
    dgvVX130.NotifyCurrentCellDirty(false);
    bindingSource1_PositionChanged(this, e);
    break;
    case "Delete":
    dgvVX130.Rows.RemoveAt(dgvVX130.SelectedRows[0].Index);
    break;
    default:
    //code
    break;
    private void dgvVX130CellContentClick(object sender, DataGridViewCellEventArgs e)
    //dgvVX130.IsUserSelectionEnabled = true;
    dgvVX130.BeginEdit(false);
    ((TextBox)dgvVX130.EditingControl).SelectionStart = 0;
    //((TextBox)dgvVX130.EditingControl).SelectionLength = 3;
    public class ClipboardUtils
    public static void PasteFromClipboard(DataGridView grid)
    try
    char[] rowSplitter = { '\r', '\n' };
    char[] columnSplitter = { '\t' };
    // Get the text from Clipboard
    IDataObject dataInClipboard = Clipboard.GetDataObject();
    string stringInClipboard = (string)dataInClipboard.GetData(DataFormats.StringFormat);
    // split into rows
    string[] rowInClipboard = stringInClipboard.Split(rowSplitter, StringSplitOptions.RemoveEmptyEntries);
    // get current cell
    int currentRow = grid.SelectedCells[0].RowIndex;
    int currentColumn = grid.SelectedCells[0].ColumnIndex;
    // get 1st cell in selected area
    for (int i = 1; i < grid.SelectedCells.Count; i++)
    if (currentRow > grid.SelectedCells[i].RowIndex)
    currentRow = grid.SelectedCells[i].RowIndex;
    if (currentColumn > grid.SelectedCells[i].ColumnIndex)
    currentColumn = grid.SelectedCells[i].ColumnIndex;
    // add more rows if need to paste data
    /* if (grid.Rows.Count < rowInClipboard.Length + currentRow)
    grid.Rows.Add(rowInClipboard.Length + currentRow - grid.Rows.Count); */
    // paste
    for (int iRow = 0; iRow < rowInClipboard.Length; iRow++)
    if (iRow + currentRow < grid.Rows.Count)
    string[] cellsInRow = rowInClipboard[iRow].Split(columnSplitter);
    for (int iCol = 0; iCol < cellsInRow.Length; iCol++)
    if (grid.ColumnCount > currentColumn + iCol)
    DataGridViewCell currentCell = grid.Rows[currentRow + iRow].Cells[currentColumn + iCol];
    if (!currentCell.ReadOnly) // H.NH added to avoid Read only case.
    if (cellsInRow[iCol] == "")
    if (grid.Columns[iCol].ValueType.Name == "String")
    currentCell.Value = null;
    else
    currentCell.Value = DBNull.Value;
    else
    currentCell.Value = cellsInRow[iCol];
    switch (iCol)
    case 3:
    currentCell.Value += "_ChangeColumnName";
    break;
    case 2:
    currentCell.Value = grid.Rows[iRow].Cells[iCol].Value;
    break;
    else break;
    catch (Exception e)
    MessageBox.Show("Sorry, can not paste from the clipboard.\nError: " + e.Message, "Paste Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

  • How to delete matrix row using rightclick ?

    Hi all ,
    I have UDO form .when i right click on a matrix  then contextual menu appears only(Copy,Remove,Cancel) not appears  (DELETE ROW ) .plz help how to contextual menu appears with (Delete Row) and which event fire when i click delete row.
    thanks in advance
    Surajit

    Hi,
    Menu Event..
    If (pVal.MenuUID = "OnlyOnRCDE") And (pVal.BeforeAction = False) Then
                Try
                    Dim oMenuItem As SAPbouiCOM.MenuItem
                    Dim oMenus As SAPbouiCOM.Menus
                    Dim omat As SAPbouiCOM.Matrix
                    Dim GCols As SAPbouiCOM.Columns
                    Dim i As Integer
                    pmat = pcFrm.Items.Item("5").Specific
                    GCols = pmat.Columns
                    pcFrm.DataSources.DBDataSources.Item(1).Clear()
                    pmat = pcFrm.Items.Item(selItem).Specific
                    For i = 1 To pmat.RowCount
                        If pmat.IsRowSelected(i) = True Then
                            pmat.DeleteRow(i)
                            Exit For
                        End If
                    Next
                Catch ex As Exception
                    SBO_Application.MessageBox(ex.Message)
                End Try
            End If
    Right Click Event
    If eventInfo.FormUID = "AAAAAAAAAAAAAAA" Then
                If (eventInfo.BeforeAction = True) Then
                    Dim omat As SAPbouiCOM.Matrix
                    Dim GCols As SAPbouiCOM.Columns
                    pmat = pcFrm.Items.Item("5").Specific
                    GCols = pmat.Columns
                    pcFrm.DataSources.DBDataSources.Item(1).Clear()
                    Try
                        selItem = eventInfo.ItemUID
                        Dim oCreationPackage As SAPbouiCOM.MenuCreationParams
                        oCreationPackage = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_MenuCreationParams)
                        oCreationPackage.Type = SAPbouiCOM.BoMenuType.mt_STRING
                        oCreationPackage.UniqueID = "OnlyOnRCDE"
                        oCreationPackage.String = "Delete Row"
                        oCreationPackage.Enabled = True
                        oMenuItem = SBO_Application.Menus.Item("1280") 'Data'
                        oMenus = oMenuItem.SubMenus
                        oMenus.AddEx(oCreationPackage)
                    Catch ex As Exception
                        MessageBox.Show(ex.Message)
                    End Try
                Else
                    Try
                        SBO_Application.Menus.RemoveEx("OnlyOnRCDE")
                    Catch ex As Exception
                        MessageBox.Show(ex.Message)
                    End Try
                End If
            End If
    Regards,
    Siva

  • How to Add and delete a row while using Abstract Table Model

    Hi,
    I need to do the following functionalities in JTable.I've done tht but a small problem.
    1. Adding a row (Using addRow() method from DefaultTableModel).
    2. Deleting a row(Using setRowCount() method from Default Table Model).
    3. Sorting the table based on the selection of column(Using TableSorter which is using AbstracTableModel).
    As the sorting is mandatory i've to change my model to Abtract Table Model
    The problem is this Abstract Table Model doesn't have any methods to Add a row or deleting a row (setRowCount()).If anybody has written any utility method for this using Abstract Table Model help me.

    Using TableSorter which is using AbstracTableModel).If your talking about the TableSorter class from the Swing tutorial, then you create the TableSorter class by passing it a TableModel. There is no reason you can't use the DefaltTableModel.
    I changed the code in TableSorterDemo as follows:
            String[] columnNames = {"First Name",
                                            "Last Name",
                                            "Sport",
                                            "# of Years",
                                            "Vegetarian"};
            Object[][] data = {
                {"Mary", "Campione",
                 "Snowboarding", new BigDecimal(1), new Boolean(false)},
                {"Alison", "Huml",
                 "Rowing", new BigDecimal(3), new Boolean(true)},
                {"Kathy", "Walrath",
                 "Knitting", new BigDecimal(2), new Boolean(false)},
                {"Sharon", "Zakhour",
                 "Speed reading", new BigDecimal(20), new Boolean(true)},
                {"Philip", "Milne",
                 "Pool", new BigDecimal(10), new Boolean(false)}
              DefaultTableModel model = new DefaultTableModel(data, columnNames)
                   public Class getColumnClass(int c)
                        return getValueAt(0, c).getClass();
            TableSorter sorter = new TableSorter(model);
    //        TableSorter sorter = new TableSorter(new MyTableModel()); //ADDED THIS

  • ODI 10G Using ODI sequences row by row

    Hi everyone,
    I have source as FILE system(All_files.txt) it has just one column :example1.txt,example2.txt etc..
    My source table like this:
    FLAT_FILE(FILE):
    FILE_NAME String(100)
    TARGET(Oracle)----->HR.TMP_ALL_FILES
    FILE_NAME(:FILE_NAME(VARCHAR2 100))
    LOAD_ID(NUMBER)-->ODI_SEQ_NEXTVAL
    CRE_DT(SYSDATE)
    Now I am using odi seq is called ODI_SEQ that I mapped into LOAD_ID.But I want to get row by row sequences like:1,2,3,4.....
    My target must be like this:
    example1.txt 1 sysdate
    example2.txt 2 sysdate
    example3.txt 3 sydate.
    How Can ı get row by row using ODI sequence?
    Edited by: aetl on Dec 17, 2012 12:30 AM

    Hi aetl,
    I might be wrong but I think that if you use a set-based IKM (like IKM SQL Control Append), the value will only change for the next set.
    You can use an Oracle Sequence instead, this will change row-by-row.
    Regards,
    JeromeFr

  • Delete a row from a data object using an AQ-driven EMS

    Hello, technetwork.
    I need to show the contents of a table that changes frequently (inserts, updates and deletes) at ORDBMS 10g in my BAM dashboard.
    What i have done is:
    - Create two different queue tables, queues.
    - Create two triggers: one for "AFTER insert or UPDATE" and the other for "BEFORE DELETE".
    - Create two EMS, one configured to Upsert operations and the other to Delete.
    - The Upsert EMS works, but the Delete EMS does not.
    - Both EMS Metrics say that they work fine and commit the messages i send to the ADC.
    - Testing showed records are populated and updated in the ADC but never deleted.
    There is a detailed user case for "Creating an EMS Against Oracle Streams AQ JMS Provider" in the Fusion Midleware Developer's Guide for SOA Suite, but it deals only with Upserts. I am using the last versions of SOA suite and Weblogic. The official support has no information either.
    I hope writing a web service client isn't the only way to delete a row from a data object. Am i missing something? Any help will be much appreciated.
    My EMS config:
    Initial Context Factory: weblogic.jndi.WLInitialContextFactory.
    JNDI Service Provider URL: t3://<spam>:80.
    Topic/Queue Connection Factory Name: jms/BAMAQTopicCF.
    Topic/Queue Name: jms/ProdGlobalBAMD_flx.
    JNDI Username: .
    JNDI Password: .
    JMS Message Type: TextMessage.
    Durable Subscriber Name (Optional): BAM_ProdGlobalBAMD.
    Message Selector (Optional): .
    Data Object Name: /bam/ProdGlobalBAM_flx.
    Operation: Delete.
    Batching: No.
    Transaction: No.
    Start when BAM Server starts: No.
    JMS Username (Optional): .
    JMS Password (Optional): .
    XML Formatting
    Pre-Processing
    Message Specification
    Message Element Name: row
    Column Value
    Element Tag
    Attribute
    Source to Data Object Field Mapping
    Key Tag name Data Object Field
    . BARCODE. BarCode.
    Added my EMS config

    Ram_J2EE_JSF wrote:
    How to accomplish this using JavaScript?Using Javascript? Well, you know, Javascript runs at the client side and intercepts on the HTML DOM tree only. The JSF code is completely irrelevant. Open your JSF page in your favourite webbrowser and view the generated HTML source. Finally just base your Javascript function on it.

  • How to delete a row of table in Word using powershell.

    I want to search for a word which is present in Table. If that word is present than I want to delete that row from table.
    Can anybody help me with that. The script I am using is:
    $objWord = New-Object -ComObject word.application
    $objWord.Visible = $True
    $objDoc = $objWord.Documents.Open("C:\temp\Recipe.docx")
    $FindText = "DP1"
    $objSelection.Find.Execute($FindText)
    $objWord.Table.Cells.EntireRow.Delete()
    $objDoc.SaveAs("C:\Temp\P.docx")
    $Doc.Close()

    Maybe try this:
    $objWord = New-Object -ComObject word.application
    $objWord.Visible = $True
    $objWord.Documents.Open("C:\temp\Recipe.docx")
    $FindText = "DP1"
    $objWord.Selection.Find.Execute($FindText) | Out-Null
    $objWord.Selection.SelectRow()
    $objWord.Selection.Cells.Delete()
    $objWord.Documents.SaveAs("C:\Temp\P.docx")
    $objWord.Close()
    $objWord.Quit()
    [System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$objWord) | Out-Null
    This definitely assumes the text you're trying to find only exists in a table, per your specified requirements.  If it exists anywhere else, or in multiple tables, the code above is inadequate.
    I hope this post has helped!

  • How to delete the row from the ADF table using popup box

    Hi,
    I have one requirement like need to delete a record from the table, but that time need to show one popup window for confirmation of the deletion. I am using Delete buttom from the vo operations. I am able to delete the row with out popup but when i used the popup that time deletion is not happening.
    Can any one help me in this.
    Regards,

    Issue was resolved.

  • Deleting a row from a JTable using AbstractTableModel

    Hi,
    Can someone please help me on how should i go about deleting a row in a jtable using the AbstractTableModel. Here i know how to delete it by using vector as one of the elements in the table. But i want to know how to delete it using an Object[][] as the row field.
    Thanks for the help

    Hi,
    I'm in desperate position for this please help

  • 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 JTable using a custom TableModel

    Before I waste any of your time I would like to go ahead and just say that I have searched through the forum using "delete row from Jtable" as the search keywords and while I have found very closely related issues, they have not solved my problem. I have found code postings by carmickr and his arguments as to why we should use DefaultTableModel instead of having created our own custom TableModel, and while I do agree, I just am not quite confident enough in applying it to my scenario. See I am reading from a file a bunch of Contractor objects and I am stuffing it into an arraylist which I am using in the following code posting to populate my TableModel which the JTable object in the gui then uses.
    My problem is that everything works except when I delete and when I delete I understand that the index is changing because I just removed a row from the arraylist object. Suppose I have 33 rows displaying in the GUI. Now after I delete say row #23, the delete function works and dutifuly the row disappears from the table, but if I try to delete a row say...the last row, it does not work and throws me an IndexOutOfBoundsException which totally makes sense. My question is how do I go about fixing it? Do I have to do something with the setRowCount method?
    Any help is appreciated.
    Cheers,
    Surya
    * ContractorTableModel.java
    * Created on January 12, 2006, 11:59 PM
    package code.suncertify.gui;
    import java.util.ArrayList;
    import java.util.logging.Logger;
    import javax.swing.table.AbstractTableModel;
    import code.suncertify.db.Contractor;
    * @author Surya De
    * @version 1.0
    public class ContractorTableModel extends AbstractTableModel {
         * The Logger instance. All log messages from this class are routed through
         * this member. The Logger namespace is <code>sampleproject.gui</code>.
        private Logger log = Logger.getLogger("code.gui");
         * An array of <code>String</code> objects representing the table headers.
        private String [] headerNames = {"Record Number", "Contractor Name",
        "Location", "Specialties","Size", "Rate",
        "Owner"};
         * Holds all Contractor instances displayed in the main table.
        private ArrayList <Object> contractorRecords = new ArrayList<Object>(5);
         * Returns the column count of the table.
         * @return An integer indicating the number or columns in the table.
        public int getColumnCount() {
            return this.headerNames.length;
         * Returns the number of rows in the table.
         * @return An integer indicating the number of rows in the table.
        public int getRowCount() {
            return this.contractorRecords.size();
         * Gets a value from a specified index in the table.
         * @param row An integer representing the row index.
         * @param column An integer representing the column index.
         * @return The object located at the specified row and column.
        public Object getValueAt(int row, int column) {
            Object [] temp = (Object[]) this.contractorRecords.get(row);
            return temp[column];
         * Sets the cell value at a specified index.
         * @param obj The object that is placed in the table cell.
         * @param row The row index.
         * @param column The column index.
        public void setValueAt(Object obj, int row, int column) {
            Object [] temp = (Object []) this.contractorRecords.get(row);
            temp [column] = obj;
         * Returns the name of a column at a given column index.
         * @param column The specified column index.
         * @return A String containing the column name.
        public String getColumnName(int column) {
            return headerNames[column];
         * Given a row and column index, indicates if a table cell can be edited.
         * @param row Specified row index.
         * @param column Specified column index.
         * @return A boolean indicating if a cell is editable.
        public boolean isCellEditable(int row, int column) {
            return false;
         * Adds a row of Contractor data to the table.
         * @param specialty
         * @param recNo The record number of the row in question.
         * @param name The name of the contractor.
         * @param location Where the contractor is located
         * @param size Number of workers for the contractor
         * @param rate The contractor specific charge rate
         * @param owner Name of owner
        public void addContractorRecord(int recNo, String name,
                String location, String specialty,
                int size, float rate, String owner) {
            Object [] temp = {new Integer(recNo), name,
            location, specialty, new Integer(size),
            new Float(rate), owner};
            this.contractorRecords.add(temp);
            fireTableDataChanged();
         * Adds a Contractor object to the table.
         * @param contractor The Contractor object to add to the table.
        public void addContractorRecord(Contractor contractor) {
            Object [] temp = {new Integer(contractor.getRecordNumber()),
            contractor.getName(), contractor.getLocation(),
            contractor.getSpecialties(), new Integer(contractor.getSize()),
            new Float(contractor.getRate()), contractor.getCustomerID()};
            this.contractorRecords.add(temp);
            fireTableDataChanged();
         * Deletes a row of Contractor data to the table.
         * @FIXME Now that I deleted a row then I will have to reset the internal structure so that I can delete again
         * @param recNo The record number of the row in question.
        public void deleteContractorRecord(int recNo) {
            contractorRecords.remove(recNo - 1);
            fireTableRowsDeleted(recNo -1, recNo - 1);
    }

    Wow that was a very quick response. Thanks camickr. I am only trying to delete a single row. I do not know how to go about posting a test program for the code I have posted above because honestly the gui itself is 800 lines of code, and then the file reading class is quite funky in itself. I can maybe email you the entire Netbeans project including code so if you are using Netbeans 5 RC2 you can run the code and see for yourself, but that would not be considerate of me.
    See I am trying to delete any row at any time...but only one at a time not multiple rows...so if a user decides to delete row 23 and then tries to delete the last row which happens to be row 33 in my case, my setup should be smart enough to still allow to delete the row.

  • Add Column Delete  in report, How to delete row using this delete Option

    Hi Friends,
    i have a report ,iwant to add an option DELETE in last column.When i click on DElete then respective id sholund be deleted.
    My Table Is
    CREATE TABLE  "DUMY_FILE"
       (     "ID" NUMBER,
         "NAME" VARCHAR2(500),
         "FILE_OBJ_ID" NUMBER,
         "MIME_TYPE" CLOB,
         "DOC_SIZE" NUMBER,
         "BLOB_CONTENT" BLOB,
         "DESCRIPTION" VARCHAR2(500),
         "UPLOAD_DATE" CHAR(25)
    How can i do this.
    Thanks
    Edited by: 805629 on Nov 16, 2010 11:51 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Trent,
    Thanks for you suggestions. .. Let me explain my problem a little better ...
    I have a report that lists fields associated with a report ... I have a delete icon which deletes a row and removes it from the underlying table ... however, I am trying to implement a Before header process which runs a pl/sql process that checks if the selected field is the last field in the report ... if so, I want a confirmation dialog to pop up ... if they click cancel .. then the deletion is aborted, else the field is deleted (which triggers other status changes).
    Based on this logic if there is a way to implement this based on your suggestion I would appreciate it ...
    Here is the process I was trying to use .... but the I have a few issues with this approach
    declare
    -- cursor to check if this is the last field
    cursor fld_cnt is
    select count(*) from prm_ptnr_rpt_fields
    where report_uid = :P22_REPORT_UID;
    num_flds number;
    msg varchar2(300);
    begin
    open fld_cnt;
    fetch fld_cnt into num_flds;
    If num_flds > 1 then
    delete from prm_ptnr_rpt_fields
    where report_uid = :P22_REPORT_UID
    and field_user_key = :P9_DELETED_FLD;
    commit;
    :P9_DELETED_FLD := NULL;
    msg := :P9_FIELD_NAME || ' Field Excluded From Report' ;
    apex_application.g_print_success_message := msg;
    else
    htp.p('<script type="text/javascript">');
    htp.p('
    var r=confirm("This is the last field included in this report .. \n Deleting it will Inactivate the report and remove it from schedule (if scheduled) ...\n Do you want to proceed?");
    if (r==true)
    {      delete from prm_ptnr_rpt_fields 
    where report_uid = :P22_REPORT_UID
    and field_user_key = :P9_DELETED_FLD;
    :P9_DELETED_FLD := NULL;
    commit;
    msg := :P9_FIELD_NAME || ' Field Excluded From Report' ;
    update prm_ptnr_rpts
    set report_status = 'INCOMPLETE',
    active_report = 'N'
    where report_uid = :P22_REPORT_UID;
    msg := msg || ' and Report Status changed to INCOMPLETE';
    apex_application.g_print_success_message := msg;
    htp.p('}else {
    alert("Delete Action Aborted");
    htp.p('</script>');
    End if;
    Close fld_cnt;
    end;
    a) Even if I click cancel ... the field still gets deleted ...
    b) :P9_DELETED_FLD is the id for the selected field ... I am setting it on the link attributes which places it on the URL ... I would rather user javascript (but not exactly sure how).
    Thanks,
    Gerald
    Edited by: user5459177 on Feb 22, 2011 2:45 PM

Maybe you are looking for