Problem updating data block based on a view

Hi,
I have a data block that is based on a fairly complex view, which I want to make update-able. The default Forms behavior, of course, is to not allow this.
In an attempt to get around this, I defined an 'ON-LOCK' trigger, where I specified a single statement 'LOCK_RECORD;'. I also defined an ON-UPDATE trigger that will later call some stored PL/SQL procedures to effect the actual update (using INSTEAD-OF triggers and such). For now, I just display a message saying 'updation not currently supported'.
However, a problem occurs when I make a change to an item in the data block, don't attempt to save it, yet try to navigate to the next record. The form simply hangs and the only thing I can do is kill the process.
I'm deploying this form as within Oracle Apps 11i. I suspect this has something to do with the lock record but don't know how to get around this.
Does any one have any suggestions?
Thanks,
Niranjan Ramakrishnan

Your lock will be removed whenever the forms does a commit or rollback. In 'normal' forms processing the on-update trigger will fire as part of the commit form processing, which also includes a database commit which will remove any locks that have been taken out. Should the user clear the form a database rollback will be performed which will also remove any locks. You should not need to do any explicit removal of locks yourself.
I would not recommend not having any kind of lock processing, as Sudha says, as this could easily lead to changes to record's being lost. As long as the locking of table(s) is always done in the same order deadlocking should not occur.
You may make want to make the locking process a SELECT ... FOR UPDATE NOWAIT so if the record is already locked the user is informed and can try again later, rather than an unknown wait until the record becomes available.

Similar Messages

  • 9i Forms Challenge! Query records from a data block based on this view

    According to Oracle Support, it is not unusual that complicated views like the one shown below fail to work in Forms. They recommend that I "try using a When-validate trigger" to solve the problem. I would be grateful if someone could show me how. It would also be helpful if someone could explain why Forms would have a problem querying such a view in the first place.
    Thanks very much!
    CREATE TABLE t (
    id NUMBER,
    property VARCHAR2(2),
    val NUMBER
    INSERT INTO t VALUES ( 1, 'A', 10 );
    INSERT INTO t VALUES ( 1, 'B', 11 );
    INSERT INTO t VALUES ( 2, 'A', 12 );
    INSERT INTO t VALUES ( 2, 'B', 13 );
    INSERT INTO t VALUES ( 3, 'A', 14 );
    || This view produces an ORA-01403 no data found error
    || in Oracle Forms 9i.
    CREATE OR REPLACE VIEW t_v
    AS
    SELECT id,
    MAX( DECODE( property, 'A', val, NULL ) ) AS a_val,
    MAX( DECODE( property, 'B', val, NULL ) ) AS b_val
    FROM t
    GROUP BY id;

    Steve,
    Your suggestion to put the view definition into the tablename field of the forms properties sheet was fruitful.
    Instead of the ORA-01403 error (No data found), I get ORA-24347 (Warning of a NULL column in an aggregate function). This error led me to discover bug 2457121, filed 11-Jul-2002, through Metalink. This bug is reported to only be a problem in Forms 9.0.2.7. It is reported to be fixed in Forms version 9.0.2.12.
    Thanks for your interest and help.
    - Doug

  • Is it possible to delete data from a block based on a view?

    I have a data block based on a view. I have set the delete allowed property to 'yes' using the object navigator, have set the database permission to allow delete, done a search through all the code to see where the delete_allowed property on the block may be reset in some trigger yet cannot delete records from the block.
    Any ideas?

    There are at least two/three ways to do this...
    Put an on-delete trigger on the block of the view with code something like this...
    delete from mytable where mytable_id = :myblock.mytable_id;
    ...or...
    dont do the above and add an instead of trigger to the view in the database. The instead of trigger intercepts the delete statement that would fail and executes code that you write in the trigger to go delete in mytable "instead of" the view.
    ... or...
    if you want to base a block on a procedure.. See this thread... Notice the metalink id in the thread..
    Re: Data block based on a procedure..
    Message was edited by:
    Mark Reichman

  • Forms9i, data block based on stored procedures, refresh on update ?

    Hi,
    I am using
    Forms [32 Bit] Version 9.0.2.9.0 (Production)
    Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
         With the Partitioning, OLAP and Oracle Data Mining options
         JServer Release 9.2.0.5.0 - Production
    Oracle Toolkit Version 9.0.4.0.23 (Production)
    PL/SQL Version 9.0.1.3.1 (Production)
    Oracle Procedure Builder V9.0.2.0.7 Build #1022 - Production
    PL/SQL Editor (c) WinMain Software (www.winmain.com), v1.0 (Production)
    Oracle Query Builder 9.0.2.0.0 - Production
    Oracle Virtual Graphics System Version 9.0.1.5.0 (Production)
    Oracle Tools GUI Utilities Version 9.0.4.0.9 (Production)
    Oracle Multimedia Version 9.0.4.0.9 (Production)
    Oracle Tools Integration Version 9.0.2.0.0 (Production)
    Oracle Tools Common Area Version 9.0.1.0.0
    Oracle CORE     9.0.1.2.0     ProductionI have a module based on stored procedures. I have defined query, lock and update procedure. All of them are working as they should, I mean that when looking at the input and output from these procedures I don't see anything blatantly wrong.
    Now, when I update a table field in the form and call the update stored procedure, this procedure takes the updated values in considerations, updates some more fields, and remove some records.
    It is working as it should, except for two details :
    1- I don't see the values updated by the procedure in the Form;
    2- even though some records were removed from the table by the procedure, I still see all my records.
    Is there a way to display the returned table?
    And, is there any documentation about data block based on stored procedures, what are the required signatures and limitations of those stored procedures, what a lock procedure is supposed to do (mine does 'null;' ...), how to map a collection type defined in Oracle to a Form data block ? Any link will be appreciated, I have found half a dozen page vaguely detailing this on Google, but nothing that can compare to a usual Oracle manual. Maybe I have missed something.
    Thank you for your help.
    adsm

    Yes, I was hoping to use these procedures to map the collection type returned to the database to the block data. I guess I was wrong. Except for the initial query and reading some other information from the database, I don't have to use these procedures as I do not write anything to it.
    Thank you for your help, I will go on from there.
    So, it means that I will have to iterate through my collection inside Forms and manipulate my data row by row. Or, is there a way to pass an Oracle collection type between the database and the Forms client and have it displayed without having to iterate through the rows and mapping each field?
    adsm

  • Does adding a field to a table affect a data block based on the table?

    If I make a change to a table like adding a field does it affect data data blocks based on the table?

    The other place I have seen where adding a new column to a table causes problems is when a programmer codes: Select * from table.
    If that is coded in a form, the form will need to be recompiled before it will work properly.

  • Data block based on procedure

    While working on a form with a data block based on a procedure, I keep getting error
    FRM-40364 The data type of item '%' does not match the corresponding column in the stored procedure.
    I have compared the items many times and found no mismatch. When the items are resorted (in both the data block and the procedure) and everything is recompiled, the
    "not matching" item referenced sometimes changes, though the types have not been changed. Has anyone solved a similar situation?

    Hi,
    Yes I did use the wizard,
    I agve it the package.proc name for query.
    it pulled up the field delivery ID,
    Hit finish, because I do not need update/delete/inserts.
    the query data source columns and arguments was defaulted correctly.
    THe QUERY-PROCEDURE was built by default.
    It is giving me an error though: wrong number or types of arguments in call to POPULATE_BLOCK..
    DECLARE
    bk_data HSM_WSH_DEL_UTIL.DEL_TBL;
    BEGIN
    hsm_wsh_del_util.do_query(bk_data);
    PLSQL_TABLE.POPULATE_BLOCK(bk_data, 'NEW_DELIVERIES');
    END;

  • Data Blocks Based on Stored Procedures

    Is it possible to to create a data block based on a stored procedure, and create a dynamic list as a drop down box?
    I have a form that runs successfully that has a data block based on a stored procedure. I add my trigger to create and populate the record group. Then in the Property Palette, when I change ITEM TYPE from TEXT ITEM to LIST ITEM, I receive the following runtime error:
    FRM-40350: Query caused no records to be retrived.
    Note: the tlist/list item runs successfully on a data block based on a table.

    1) go to the block property to remove the same item column, then re-add the item; Since the property may remember the old text type;
    make sure the record value for the list tiem from stored procedure is among the list elements!
    Last sort is to do:
    2) you may re-create your gui based on the table by setting the list type this time, then set the block property to be based on the stored procedure.

  • Data block based on stored procedure with  input arguments

    Hi,
    I am able to create a data block based on stored procedure.
    but I want that procedure to take input arguments as well and I am facing the issue while setting the value for that input arguments from another block item.
    Please somebody help, How to set the value for input argument from another control block- item?.(Note :Data block is based on the stored procedure)
    Thanks in Advance,
    Anandan Muthukannan

    I did exactly the same way you mentioned.
    But while building the form, The call to the procedure in 'QUERY-PROCEDURE' trigger has been modified like this way
    procedure_name(qp_data,':BLOCK.ITEM');
    so in procedure i am getting the value as ':BLOCK.ITEM' not the expected value.

  • Updating record in a data block based on view in oracle forms

    hi all ,
    We have two data blocks in our custom oracle form.The first data block is for search criteria provided with buttons 'GO' and 'ADD ROW' and the second data block is based on a view that fetches record when user clicks on GO based on the the criteria specified in the above block. The Below block contains one SAVE button too.
    We have a requirement when GO button is pressed and corresponding records are shown in the below block, user should be able to edit the record. Want to know how to make it editable?
    Help appreciated....!!!

    Your view is based on how many tables and does it include all NOT NULL fields from all tables?

  • Query on Data Block based on View

    Hi,
    I am new to forms and am trying to modify an existing form which currently works in the following way :
    The same form is used for insert/updates/queries.
    The data block is based on a table and a post query trigger is written which updates the other text items on the canvas(which come from different tables) based on the values returned by the data block. Since the query functionality is based only on the table, you cannot query on the other items that are on the canvas. I need to make the query work on the other items that come from different tables.
    I created a view which joins all the tables but when I query although it returns the right record I get an error message " Cannot insert into or update view"
    I'm not sure what the best way to resolve this is ?
    Any suggestions ?
    Thanks
    Preeti

    Thanks for the replies.
    I created an updateable view and an instead of trigger. The Form is now queryable on all fields and the insert to the table works beautifully.
    However, now I'm getting an error on Update. Updating any column on the form results in a
    ORA-01733: virtual column not allowed here
    FRM-40501: ORACLE error: unable to reserve record for update or delete.
    The code for the view is :
    select a.*,
    B.vendor_name as Supplier_name,
         'PRE' AS TO_OWNER,
         C.vendor_site_code as supplier_site,
         ARCH.vendor_name AS Architect,
         p.segment1 as Project,
         ph.segment1 as PO_number,
         decode(a.interface_status,'I','Interfaced', 'U', 'UnInterfaced',
         'P', 'Partial',null) Interface_display_status,
         decode(a.approval_status,'A','Approved', 'P', 'Partial',
         'R', 'Rejected', 'U','Unapproved',null) Approval_display_status
    from idc_aia_g702 a, po_vendors b,
    po_vendor_sites_all C,
    PO_VENDORS ARCH,
    pa_projects_all p,
    po_headers_all ph
    where b.vendor_id = a.vendor_id
    AND A.vendor_site_Id (+) = C.vendor_site_id
    AND A.VIA_ARCHITECT_VENDOR_ID = ARCH.VENDOR_ID (+)
    and a.project_id = p.project_id
    and a.po_header_id = ph.po_header_id;
    I know I have to do something on either the data block property palette or the individual item property palette and clicking on any field within the form in order to update it results in the error mentioned above.
    Shd I have all the item props as Query Only set to Yes ? or the ones for Table A as Query Only set to N and the other table columns as Y ?
    Thanks
    Preeti

  • Block based on a view

    We have a block which is based on a view. When using Forms 6i 6.0.8.8.0 (no patch), querying from this block cause no problem. However, after applying patch 1 (6.0.8.10.3), the form crashes or take forever to retrieve the data.
    Anyone has run into this problem ?
    Is there a work-around other than installing a full patch ?
    Is this a known bug ?
    Thank you.

    you create the view based on the tables first, then you use form design wizrad to create the form based on the view like a table.
    If you want to allow user to edit the fields, then you may either to create a INSTEAD OF trigger on that view in database, or in form block, using ON-LOCK, ON-UPDATE/INSERT/DELETE triggers to do it.

  • Problem in tabular form based on dynamic view and pagination

    Hi All,
    I have a manual tabular form based on a dynamic view. The view fetches the records based on search criteria given by the user in all cases. But this view fetches ALL records when user clicks on pagination, without considering the search criteria. This is the problem I am facing.
    I am doing the following:
    Since tabular form does not support pl/sql function returning query, I cannot use a table directly. I need my results based on search criteria selected by user. Hence I created a dynamic view and used a "INSTEAD OF UPDATE" trigger to update the table.
    I use a set bind variables procedure, on load before header for setting the variables.
    This view fetches the correct data based on user search always. It creates a problem only in one situation, when using pagination in the report.
    The example can be found at:
    http://apex.oracle.com/pls/otn/f?p=19399:1:
    username = [email protected]
    pwd = kishore
    Here if "manager name" is entered as test, we get 5 records in "Summary of requests" report and 5 records in "Inactive Requests" report. When user clicks on Pagination in any of the reports, ALL the 7 records get fetched in "Summary of Requests" and 6 records in "Inactive Requests". How can I overcome this problem?? The report must consider the search variables even when pagination occurs.
    Is this because, the inbuilt "html_PPR_Report_Page" executes the region query once again by considering all search variables as NULL?
    Backend Code is at:
    http://apex.oracle.com/pls/otn/
    workspace: sekhar.nooney
    Username :[email protected]
    pwd: kishore
    application id = 19399
    My region code is something like:
    select *
    from regadm_request_v
    where access_type = :F110_REGADM
    and status <> 'INACTIVE'
    order by request_id
    My view code is:
    CREATE OR REPLACE VIEW REGADM_REQUEST_V
    AS
    SELECT *
    FROM REGREGOWNER.REGADM_REQUEST
    WHERE upper(employee_name) LIKE '%'||nvl(upper(REGADM_REQUEST_PKG.GET_EMPLOYEE_NAME),'%')||'%'
    AND upper(manager_name) LIKE '%'||nvl(upper(REGADM_REQUEST_PKG.GET_MANAGER_NAME),'%')||'%'
    AND upper(employee_sunetid) LIKE '%'||nvl(upper(REGADM_REQUEST_PKG.GET_EMPLOYEE_SUNET_ID),'%')||'%'
    AND upper(manager_sunetid) LIKE '%'||nvl(upper(REGADM_REQUEST_PKG.GET_MANAGER_SUNET_ID),'%')||'%'
    AND upper(request_date) LIKE '%'||nvl(upper(REGADM_REQUEST_PKG.GET_REQUEST_DATE),'%')||'%'
    AND upper(USAGE_AGREEMENT_RECVD) LIKE '%'||nvl(upper(DECODE(REGADM_REQUEST_PKG.GET_USAGE_AGREMNT_RECVD,'~!@',NULL,REGADM_REQUEST_PKG.GET_USAGE_AGREMNT_RECVD)),'%')||'%'
    AND upper(STATUS) LIKE '%'||nvl(upper(DECODE(REGADM_REQUEST_PKG.GET_STATUS,'~!@',NULL,REGADM_REQUEST_PKG.GET_STATUS)),'%')||'%'
    AND upper(REQUEST_APPROVED) LIKE '%'||nvl(upper(DECODE(REGADM_REQUEST_PKG.GET_REQUEST_APPROVED,'~!@',NULL,REGADM_REQUEST_PKG.GET_REQUEST_APPROVED)),'%')||'%'
    AND upper(nvl(APPROVAL_DATE,sysdate)) LIKE '%'||nvl(upper(REGADM_REQUEST_PKG.GET_APPROVED_DATE),'%')||'%'
    AND upper(APRVL_REQUEST_SENT) LIKE '%'||nvl(upper(DECODE(REGADM_REQUEST_PKG.GET_EMAIL_APPROVERS,'~!@',NULL,REGADM_REQUEST_PKG.GET_EMAIL_APPROVERS)),'%')||'%'
    AND upper(NOTIFY_APPROVED) LIKE '%'||nvl(upper(DECODE(REGADM_REQUEST_PKG.GET_APPROVAL_NOTIFICATION,'~!@',NULL,REGADM_REQUEST_PKG.GET_APPROVAL_NOTIFICATION)),'%')||'%'
    I would be glad for any suggestions.
    Andy/Varad any ideas? You both helped me a lot on my problems for the same application that I had faced before in More Problems in Tabular form - Please give me suggestions.
    Thanks,
    Sumana

    Hi Andy,
    The view and the package for setting bind variables work properly in my entire application other than the pagination. A pity that I came across this only now :(
    I have used this same method for holding variables in another application before, where I needed to print to PDF. I used this approach in the other application because my queries were not within the APEX character limit specified for the "SQL Query of Report Query shared component".
    In this application, I initially had to fetch values from 2 tables and update the 2 tables. Updateable form works only with one table right? Hence I had created a view. Later the design got changed to include search and instead of changing the application design I just changed the view then. Still later, my clients merged the 2 tables. Once again I had just changed my view.
    Now, I wanted to know if any method was available for the pagination issue (using the view itself). Hence I posted this.
    But as you suggested, I think it is better to change the page design quickly (as it would be much easier).
    If I change the region query to use the table and the APEX bind parameters in the where clause as:
    SELECT *
    FROM REGADM_REQUEST
    WHERE upper(employee_name) LIKE '%'||nvl(upper(:P1_EMPLOYEE_NAME),'%')||'%' .....
    I also changed the ApplyMRU to refer to the table.
    Here the pagination issue is resolved. But here the "last Update By" and "Last Update Date" columns do not get updated with "SYSDATE" and "v(APP_USER)" values, when update takes place. Even if I make the columns as readonly text field, I am not sure how I can ensure that SYSDATE and v('APP_uSER') can be passed to the columns. Any way I can ensure this? Please have a look at the issue here: http://apex.oracle.com/pls/otn/f?p=19399:1:
    I have currently resolved the "last update" column issue by modifying my view as:
    CREATE OR REPLACE VIEW REGADM_REQUEST_V
    AS
    SELECT *
    FROM REGADM_REQUEST
    I modified my region query to use APEX bind parameters itself as:
    SELECT *
    FROM REGADM_REQUEST_V
    WHERE upper(employee_name) LIKE '%'||nvl(upper(:P1_EMPLOYEE_NAME),'%')||'%' .....
    And I use the "INSTEAD OF UPDATE" trigger that I had initially written for update. The code is:
    CREATE OR REPLACE TRIGGER REGADM_REQUEST_UPD_TRG
    INSTEAD OF UPDATE
    ON REGADM_REQUEST_V
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    BEGIN
    UPDATE REGREGOWNER.REGADM_REQUEST
    SET MANAGER_EMAIL = :NEW.MANAGER_EMAIL
    , EMPLOYEE_EMAIL = :NEW.EMPLOYEE_EMAIL
    , STATUS_UPDATE_DATETIME = SYSDATE
    , USER_UPDATE_ID = (SELECT v('APP_USER') FROM DUAL)
    WHERE REQUEST_ID = :OLD.REQUEST_ID;
    END;
    Please let me know how I can resolve the "last update" column issue using the table itself. (Just for my learning)
    Thanks,
    Sumana

  • Display description, but non-updatable data block

    To display my Item_Description, I've created a post-query trigger to lookup Item_Description based on Item_Num, which works fine, except if the user does not have update priveledge. By default the data block is non-updatable. If the user has update, then the block is set updatable at run-time.
    Problem is, for a non-update priveledge user, the form errors when the trigger attempts to set the description field. [Even though the field is set updatable by default.]
    What am I missing? Thanks.

    I'm confused. You say:
    "By default the data block is non-updatable."
    but then you say:
    "...the field is set updatable by default."
    If the data block is not updateable, then you can't make the item updateable.
    Assuming the default is non-updateable, and a user does not have update privilege, then the error message you are getting is correct because the trigger is trying to do an update when the item is non-updateable.
    If you need the trigger to do an update, then you need to make the item updateable. If you don't want the trigger to do an update for this user, then first check if the item is updateable (use the get_item_property), and if it is updateable, then let the trigger do the update.
    Message was edited by:
    Mark Roberts

  • Problem updating data into ms access database

    Hi! I need to update a database based on user's entries. But I have a problem with the updating code. Can some1 help? Here is my whole servlet's code :
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    public class editstaff extends HttpServlet
      static Connection link;
      static Statement statement;
      static ResultSet results;
      public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
        response.setContentType("text/HTML");
        PrintWriter out = response.getWriter();
        out.println("<HTML>");
        out.println("<HEAD>");
        out.println("<TITLE>Edit Staff Particulars</TITLE>");
        out.println("</HEAD>");
        out.println("<BR><BR>");
        out.println("<BODY>");
        String staff = request.getParameter("name");
           try
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            link = DriverManager.getConnection("jdbc:odbc:occ","","");
          catch(ClassNotFoundException e)
            System.out.println("Sorry! Unable to load driver. Pls try again later.");
            System.exit(1);
          catch(SQLException e)
            System.out.println("Sorry! Unable to connect to the database. Pls try again later.");
            System.exit(1);
         try
            statement=link.createStatement();
            String select = "SELECT * FROM Staff WHERE Name =  '" + staff+"'";//name taken from html page
             results = statement.executeQuery(select);
            out.println("<table border=1>");
            out.println("<tr>");
            out.println("<th bgcolor=orchid>Name</th>");
            out.println("<th bgcolor=orchid>IC</th>");
            out.println("<th bgcolor=orchid>Staff_ID</th>");
            out.println("<th bgcolor=orchid>Date_Joined</th>");
            out.println("<th bgcolor=orchid>Address</th>");
            out.println("<th bgcolor=orchid>Date_of_Birth</th>");
            out.println("<th bgcolor=orchid>Designation</th>");
            out.println("<th bgcolor=orchid>Driving_License</th>");
            out.println("<th bgcolor=orchid>Mobile</th>");
            out.println("<th bgcolor=orchid>Home_Tel</th>");
            out.println("<th bgcolor=orchid>E-mail</th>");
            out.println("<th bgcolor=orchid>Section</th>");
            out.println("<th bgcolor=orchid>Department</th>");
            out.println("<th bgcolor=orchid>Course</th>");
            out.println("<th bgcolor=orchid>Date_Trained</th>");
            out.println("<th bgcolor=orchid>Recurrent_Date</th>");
            out.println("<th bgcolor=orchid>Proficiency</th>");
            while (results.next())
              out.println("<tr>");
              out.println("<td>");
              out.println(results.getString(1));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(8));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(9));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(16));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(4));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(6));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(10));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(7));
              out.println("</td>");
              out.println("<td>");
              out.println(new Integer(results.getString(2)));
              out.println("</td>");
              out.println("<td>");
              out.println(new Integer(results.getString(3)));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(5));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(17));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(11));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(12));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(13));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(14));
              out.println("</td>");
              out.println("<td>");
              out.println(results.getString(15));
              out.println("</td>");
              out.println("</tr>");
            out.println("</table>");
            out.println("<BR><BR><BR>");
            out.println("<table border=1>");
            out.println("<tr>");
            out.println("<th>Name</th>");
            out.println("<td><input name=nam type=text id=nam></td>");
            out.println("</tr>");
            out.println("<tr>");
            out.println("<th>IC number</th>");
            out.println("<td><input name=ic type=text id=ic></td>");
            out.println("</tr>");
            out.println("<tr>");
            out.println("<th>Staff ID</th>");
            out.println("<td><input name=ID type=text id=ID></td>");
            out.println("</tr>");
            out.println("<tr>");
            out.println("<th>Date Joined</th>");
            out.println("<td>");
            out.println("<select name=jday size=1 id=jday>");
            out.println("<option>1</option>");
            out.println("<option>2</option>");
            out.println("<option>3</option>");
            out.println("<option>4</option>");
            out.println("<option>5</option>");
            out.println("<option>6</option>");
            out.println("<option>7</option>");
            out.println("<option>8</option>");
            out.println("<option>9</option>");
            out.println("<option>10</option>");
            out.println("<option>11</option>");
            out.println("<option>12</option>");
            out.println("<option>13</option>");
            out.println("<option>14</option>");
            out.println("<option>15</option>");
            out.println("<option>16</option>");
            out.println("<option>17</option>");
            out.println("<option>18</option>");
            out.println("<option>19</option>");
            out.println("<option>20</option>");
            out.println("<option>21</option>");
            out.println("<option>22</option>");
            out.println("<option>23</option>");
            out.println("<option>24</option>");
            out.println("<option>25</option>");
            out.println("<option>26</option>");
            out.println("<option>27</option>");
            out.println("<option>28</option>");
            out.println("<option>29</option>");
            out.println("<option>30</option>");
            out.println("<option>31</option>");
            out.println("</select>");
            out.println("<select name=jmth size=1 id-jmth>");
            out.println("<option>January</option>");
            out.println("<option>February</option>");
            out.println("<option>March</option>");
            out.println("<option>April</option>");
            out.println("<option>May</option>");
            out.println("<option>June</option>");
            out.println("<option>July</option>");
            out.println("<option>August</option>");
            out.println("<option>September</option>");
            out.println("<option>October</option>");
            out.println("<option>November</option>");
            out.println("<option>December</option>");
            out.println("</select>");
            out.println("<select name=jyear size=1 id=jyear");
            out.println("<option>2004</option>");
            out.println("<option>2005</option>");
            out.println("<option>2006</option>");
            out.println("<option>2007</option>");
            out.println("<option>2008</option>");
            out.println("<option>2009</option>");
            out.println("<option>2010</option>");
            out.println("<option>2011</option>");
            out.println("<option>2012</option>");
            out.println("<option>2013</option>");
            out.println("<option>2014</option>");
            out.println("</select></td></tr>");
            out.println("<tr><th>Address</th>");
            out.println("<td><textarea name=add id=add></textarea></td></tr>");
            out.println("<tr><th>Date of Birth");
            out.println("<td>");
            out.println("<select name=bday size=1 id=bday>");
            out.println("<option>1</option>");
            out.println("<option>2</option>");
            out.println("<option>3</option>");
            out.println("<option>4</option>");
            out.println("<option>5</option>");
            out.println("<option>6</option>");
            out.println("<option>7</option>");
            out.println("<option>8</option>");
            out.println("<option>9</option>");
            out.println("<option>10</option>");
            out.println("<option>11</option>");
            out.println("<option>12</option>");
            out.println("<option>13</option>");
            out.println("<option>14</option>");
            out.println("<option>15</option>");
            out.println("<option>16</option>");
            out.println("<option>17</option>");
            out.println("<option>18</option>");
            out.println("<option>19</option>");
            out.println("<option>20</option>");
            out.println("<option>21</option>");
            out.println("<option>22</option>");
            out.println("<option>23</option>");
            out.println("<option>24</option>");
            out.println("<option>25</option>");
            out.println("<option>26</option>");
            out.println("<option>27</option>");
            out.println("<option>28</option>");
            out.println("<option>29</option>");
            out.println("<option>30</option>");
            out.println("<option>31</option>");
            out.println("</select>");
            out.println("<select name=bmth size=1 id=bmth>");
            out.println("<option>January</option>");
            out.println("<option>February</option>");
            out.println("<option>March</option>");
            out.println("<option>April</option>");
            out.println("<option>May</option>");
            out.println("<option>June</option>");
            out.println("<option>July</option>");
            out.println("<option>August</option>");
            out.println("<option>September</option>");
            out.println("<option>October</option>");
            out.println("<option>November</option>");
            out.println("<option>December</option>");
            out.println("</select>");
            out.println("<select name=byear size=1 id=byear>");
            out.println("<option>1946</option>");
            out.println("<option>1947</option>");
            out.println("<option>1948</option>");
            out.println("<option>1949</option>");
            out.println("<option>1950</option>");
            out.println("<option>1951</option>");
            out.println("<option>1952</option>");
            out.println("<option>1953</option>");
            out.println("<option>1954</option>");
            out.println("<option>1955</option>");
            out.println("<option>1956</option>");
            out.println("<option>1957</option>");
            out.println("<option>1958</option>");
            out.println("<option>1959</option>");
            out.println("<option>1960</option>");
            out.println("<option>1961</option>");
            out.println("<option>1962</option>");
            out.println("<option>1963</option>");
            out.println("<option>1964</option>");
            out.println("<option>1965</option>");
            out.println("<option>1966</option>");
            out.println("<option>1967</option>");
            out.println("<option>1968</option>");
            out.println("<option>1969</option>");
            out.println("<option>1970</option>");
            out.println("<option>1980</option>");
            out.println("<option>1981</option>");
            out.println("<option>1982</option>");
            out.println("<option>1983</option>");
            out.println("<option>1984</option>");
            out.println("<option>1985</option>");
            out.println("<option>1986</option>");
            out.println("<option>1989</option>");
            out.println("<option>1990</option>");
            out.println("</select></td></tr>");
            out.println("<tr><th>Designation</th>");
            out.println("<td><input name=designation type=text id=designation></td></tr>");
            out.println("<tr><th>Driving License</th>");
            out.println("<td>");
            out.println("<select name=license size=1 multiple=multiple id=license>");
            out.println("<option>Class 3</option>");
            out.println("<option>Class 4</option>");
            out.println("<option>Class 5</option>");
            out.println("</select></td></tr>");
            out.println("<tr><th>Mobile</th>");
            out.println("<td><input name=mobile type=text id=mobile></td></tr>");
            out.println("<tr><th>Home Tel</th>");
            out.println("<td><input name=home type=text id=home></td></tr>");
            out.println("<tr><th>E-mail Address</th>");
            out.println("<td><input name=email type=text id=email</td></tr>");
            out.println("</tr><th>Section</th>");
            out.println("<td>");
            out.println("<select name=section size=1 id=section>");
            out.println("<option>Ramp</option>");
            out.println("<option>Baggage</option>");
            out.println("<option>Service Asisstants</option>");
            out.println("<option>Flight Coordinators</option>");
            out.println("</select></td>");
            out.println("<th>Department</th>");
            out.println("<td>");
            out.println("<select name=dept size=1 id=dept>");
            out.println("<option>PAX</option>");
            out.println("<option>Ramp</option>");
            out.println("<option>Cargo</option>");
            out.println("</select></td>");
            out.println("<th>Course</th>");
            out.println("<td>");
            out.println("<select name=course size=1 multiple=multiple id=course>");
            out.println("<option>Ramp Safety</option>");
            out.println("<option>Dangerous Goods</option>");
            out.println("<option>Security Training</option>");
            out.println("</select></td></tr>");
            out.println("<tr><th>Date Trained</th>");
            out.println("<td>");
            out.println("<select name=tday size=1 id=tday>");
            out.println("<option>1</option>");
            out.println("<option>2</option>");
            out.println("<option>3</option>");
            out.println("<option>4</option>");
            out.println("<option>5</option>");
            out.println("<option>6</option>");
            out.println("<option>7</option>");
            out.println("<option>8</option>");
            out.println("<option>9</option>");
            out.println("<option>10</option>");
            out.println("<option>11</option>");
            out.println("<option>12</option>");
            out.println("<option>13</option>");
            out.println("<option>14</option>");
            out.println("<option>15</option>");
            out.println("<option>16</option>");
            out.println("<option>17</option>");
            out.println("<option>18</option>");
            out.println("<option>19</option>");
            out.println("<option>20</option>");
            out.println("<option>21</option>");
            out.println("<option>22</option>");
            out.println("<option>23</option>");
            out.println("<option>24</option>");
            out.println("<option>25</option>");
            out.println("<option>26</option>");
            out.println("<option>27</option>");
            out.println("<option>28</option>");
            out.println("<option>29</option>");
            out.println("<option>30</option>");
            out.println("<option>31</option>");
            out.println("</select>");
            out.println("<select name=tmth size=1 id=tmth>");
            out.println("<option>January</option>");
            out.println("<option>February</option>");
            out.println("<option>March</option>");
            out.println("<option>April</option>");
            out.println("<option>May</option>");
            out.println("<option>June</option>");
            out.println("<option>July</option>");
            out.println("<option>August</option>");
            out.println("<option>September</option>");
            out.println("<option>October</option>");
            out.println("<option>November</option>");
            out.println("<option>December</option>");
            out.println("</select>");
            out.println("<select name=tyear size=1 id=tyear>");
            out.println("<option>2005</option>");
            out.println("<option>2006</option>");
            out.println("<option>2007</option>");
            out.println("<option>2008</option>");
            out.println("<option>2009</option>");
            out.println("<option>2010</option>");
            out.println("<option>2011</option>");
            out.println("<option>2012</option>");
            out.println("<option>2013</option>");
            out.println("<option>2014</option>");
            out.println("<option>2015</option>");
            out.println("</select></td></tr>");
            out.println("<tr><th>Recurrent Date</th>");
            out.println("<td>");
            out.println("<select name=rday size=1 id=rday>");
            out.println("<option>1</option>");
            out.println("<option>2</option>");
            out.println("<option>3</option>");
            out.println("<option>4</option>");
            out.println("<option>5</option>");
            out.println("<option>6</option>");
            out.println("<option>7</option>");
            out.println("<option>8</option>");
            out.println("<option>9</option>");
            out.println("<option>10</option>");
            out.println("<option>11</option>");
            out.println("<option>12</option>");
            out.println("<option>13</option>");
            out.println("<option>14</option>");
            out.println("<option>15</option>");
            out.println("<option>16</option>");
            out.println("<option>17</option>");
            out.println("<option>18</option>");
            out.println("<option>19</option>");
            out.println("<option>20</option>");
            out.println("<option>21</option>");
            out.println("<option>22</option>");
            out.println("<option>23</option>");
            out.println("<option>24</option>");
            out.println("<option>25</option>");
            out.println("<option>26</option>");
            out.println("<option>27</option>");
            out.println("<option>28</option>");
            out.println("<option>29</option>");
            out.println("<option>30</option>");
            out.println("<option>31</option>");
            out.println("</select>");
            out.println("<select name=rmth size=1 id=rmth>");
            out.println("<option>January</option>");
            out.println("<option>February</option>");
            out.println("<option>March</option>");
            out.println("<option>April</option>");
            out.println("<option>May</option>");
            out.println("<option>June</option>");
            out.println("<option>July</option>");
            out.println("<option>August</option>");
            out.println("<option>September</option>");
            out.println("<option>October</option>");
            out.println("<option>November</option>");
            out.println("<option>December</option>");
            out.println("</select>");
            out.println("<select name=ryear size=1 id=ryear>");
            out.println("<option>2005</option>");
            out.println("<option>2006</option>");
            out.println("<option>2007</option>");
            out.println("<option>2008</option>");
            out.println("<option>2009</option>");
            out.println("<option>2010</option>");
            out.println("<option>2011</option>");
            out.println("<option>2012</option>");
            out.println("<option>2013</option>");
            out.println("<option>2014</option>");
            out.println("<option>2015</option>");
            out.println("</select></td></tr>");   
            out.println("<tr><th>Proficiency</th>");
            out.println("<td><input name=prof type=text id=prof</td></tr>");
            out.println("</table>");
            out.println("<p align=right>");
      out.println("<input type=submit name=submit value=Submit>");
      out.println("<input type=reset name=reset value=Reset>");
      out.println("</p>");
            String nam = request.getParameter("nam");
            String ic = request.getParameter("IC");
            String jday = request.getParameter("jday");
            String jmth = request.getParameter("jmth");
            String jyear = request.getParameter("jyear");
            String mobile = request.getParameter("mobile");
            String home = request.getParameter("home");
            String add = request.getParameter("add");
            String email = request.getParameter("email");
            String day = request.getParameter("day");
            String mth = request.getParameter("mth");
            String year = request.getParameter("year");
            String designation = request.getParameter("designation");
            String dept = request.getParameter("dept");
            String ID = request.getParameter("ID");
            String license = request.getParameter("license");
            String course = request.getParameter("course");
            String tday = request.getParameter("tday");
            String tmth = request.getParameter("tmth");
            String tyear = request.getParameter("tyear");
            String rday = request.getParameter("rday");
            String rmth = request.getParameter("rmth");
            String ryear = request.getParameter("ryear");
            String prof = request.getParameter("prof");
            String sect = request.getParameter("job");
        String dob = ""+day+"-"+mth+"-"+year+"";
        String train = ""+tday+"-"+tmth+"-"+tyear+"";
        String date = ""+jday+"-"+jmth+"-"+jyear+"";
        String recurrent = ""+rday+"-"+rmth+"-"+ryear+"";
            String name = request.getParameter("name");
            String change = "UPDATE Staff  SET Name='"+nam+"',Mobile='"+mobile+"',Home='"+home+"',"
                                    +"Address='"+add+"',E-mail='"+email+"',DOB='"+dob+"',Driving License='"+license+"',IC='"+ic+"',"
                                    +"Staff ID='"+ID+"',Designation='"+designation+"',Department='"+dept+"',Course='"+course+"',"
                                    +"Date Trained='"+train+"',Recurrent Date='"+recurrent+"',Proficiency='"+prof+"',"
                                    +"Date Joined='"+date+"',Section'"+sect+"' WHERE Name='"+name+"'";//name taken from html page
            results = statement.executeQuery(change);
          catch(SQLException e)
            System.out.println("Sorry! Unable to update data. Pls try again later.");
            e.printStackTrace();
            System.exit(1);
          try
              out.println("<br />");
              out.println("</font></BODY>");
              out.println("</HTML>");
              out.flush();
              link.close();
          catch(SQLException e)
            System.out.println("Sorry! Unable to execute query. Pls try again later.");
            e.printStackTrace();
            System.exit(1);
      

    hi,
    For Select Query there is Method executeQuery();
    For insert, update, delete executeUpdate() is use
    so try with executeUpdate()
    and it will return how much row are updated.

  • Help with Data Block Based on Procedure--getting compilation error

    I am trying to create a datablock based on a procedure , but im getting errors in compilation:
    Errors are :
    1) identifier 'HSM_WSH_DEL_UTIL.DEL_TBL' must be declared
    2)PL/SQL ERROR 320 at line 7, column 27
    the declaration of the type of this expression is incomplete or malformed
    ANy Help would be appreciated !
    Heres my pkg spec and body for the data block:
    CREATE OR REPLACE PACKAGE hsm_wsh_del_util IS
    TYPE del_record is record
    (delivery_id number);
    TYPE del_tbl is table of del_record INDEX BY BINARY_INTEGER;
    procedure do_query(p_del IN OUT del_tbl);
    END hsm_wsh_del_util ;
    CREATE OR REPLACE PACKAGE BODY hsm_wsh_del_util IS
    procedure do_query(p_del IN OUT del_tbl)
    IS
    idx number :=1;
    CURSOR DELIVERY IS
    SELECT DELIVERY_ID
    FROM abc_deliveries;
    begin
    FOR CUR IN DELIVERY LOOP
    p_del(idx).delivery_id :=cur.delivery_id;
    idx:= idx+1;
    END LOOP;
    end do_query;
    END hsm_wsh_del_util;
    Edited by: 981170 on Mar 13, 2013 1:08 PM

    Hi,
    Yes I did use the wizard,
    I agve it the package.proc name for query.
    it pulled up the field delivery ID,
    Hit finish, because I do not need update/delete/inserts.
    the query data source columns and arguments was defaulted correctly.
    THe QUERY-PROCEDURE was built by default.
    It is giving me an error though: wrong number or types of arguments in call to POPULATE_BLOCK..
    DECLARE
    bk_data HSM_WSH_DEL_UTIL.DEL_TBL;
    BEGIN
    hsm_wsh_del_util.do_query(bk_data);
    PLSQL_TABLE.POPULATE_BLOCK(bk_data, 'NEW_DELIVERIES');
    END;

Maybe you are looking for

  • What size, resolution, color space and bit do I use for a book?

    What size, resolution, and color space do I use for a iPhoto book?

  • App uses too much memory!

    My iPad shows that apps takes up about 8.7GB on it's memory but in reality it's only 7GB. iTunes displays it correctly when I deselect/select an app to sync, but when it actually syncs it, it revert back to the increased size. Here it is before selec

  • Compressing PDF in XI for PC

    Being speedy on the job is a necessary thing. I found that Adobe's instruction on your/their site only had part of the description in how to compress on Acrobat X. Here's how to compress a file for Acrobat XI in PC. Click and hold down File Click on

  • How to enable LogMiner in Oracle 10g

    Can anyone enable LogMiner GUI in orcale database 10g?

  • How to insert a very long string into a column of datatype 'LONG'

    Can anyone please tell me how can I insert a very long string into a column of datatype 'LONG'? I get the error, ORA-01704: string literal too long when I try to insert the value into the table. Since it is an old database, I cannot change the dataty