%ROWCOUNT problem

Dear SQL Experts,
I have below PL/SQL procedure to update a table, here I see %ROWCOUNT returning 0 rows in all cases and not displaying actual number of rows updated.
When I run the update statement directly, it updates correct number of rows? Is there a limitation around %rowcount? How to overcome this problem?
Edited by: Ora DBA on Dec 11, 2012 12:49 AM

Hi All, am facing same problem with SQL%ROWCOUNT returning 0, as well another issue with SELECT.
SET serveroutput on;
DECLARE
   TYPE date_array IS TABLE OF VARCHAR2 (12);
   v_date             date_array;
   v_cnt_before_upd   PLS_INTEGER;
   v_cnt_after_upd    PLS_INTEGER;
   PROCEDURE update_table_desc (ip_char IN CHAR)
   IS
      v_desc_from   VARCHAR2 (30);
      v_desc_to     VARCHAR2 (30);
   BEGIN
      IF ip_char = 'C'
      THEN
         v_desc_from := 'From Desc 1';
         v_desc_to := 'To Desc 1';
      ELSIF ip_char = 'S'
      THEN
         v_desc_from := 'From Desc 2';
         v_desc_to := 'To Desc 2';
      END IF;
      SELECT COUNT (*)
        INTO v_cnt_before_upd
        FROM table1
       WHERE col1_desc = v_desc_from;
      UPDATE table1
         SET col1_desc = v_desc_to
       WHERE col1_desc = v_desc_from;
      DBMS_OUTPUT.put_line ('sql%rowcount:..... ' || SQL%ROWCOUNT);
      SELECT COUNT (*)
        INTO v_cnt_after_upd
        FROM table1
       WHERE col1_desc = v_desc_to;
      DBMS_OUTPUT.put_line (   'To be updated: '
                            || v_cnt_before_upd
                            || '......Updated: '
                            || v_cnt_after_upd
      IF v_cnt_after_upd = v_cnt_before_upd
      THEN
         DBMS_OUTPUT.put_line (   v_desc_from
                               || ' updated successfully to '
                               || v_desc_to
         COMMIT;
      ELSE
         DBMS_OUTPUT.put_line (v_desc_from || ' update failed');
         ROLLBACK;
      END IF;
   EXCEPTION
      WHEN OTHERS
      THEN
         RAISE;
   END;
BEGIN
   SELECT reporting_date
   BULK COLLECT INTO v_date
     FROM table2
    WHERE TRUNC (reporting_date) >= '31-Mar-2011'
      AND TRUNC (reporting_date) <= TRUNC (SYSDATE);
   FOR i IN v_date.FIRST .. v_date.LAST
   LOOP
      pack_context.context_open (v_date (i));
      DBMS_OUTPUT.put_line ('..............');
      DBMS_OUTPUT.put_line ('Context: ' || v_date (i));
      update_table_desc ('C');
      update_table_desc ('S');
      pack_context.context_disable;
   END LOOP;
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line (DBMS_UTILITY.format_error_stack ());
END;
OUTPUT:
..............          (LOOP 1)
Context: 26-OCT-12
sql%rowcount:..... 0
To be updated: 0......Updated: 573
From Desc 1 update failed
sql%rowcount:..... 0
To be updated: 0......Updated: 127
From Desc 2 update failed
..............          (LOOP 2)
Context: 02-NOV-12
sql%rowcount:..... 0
To be updated: 0......Updated: 573
From Desc 1 update failed
sql%rowcount:..... 0
To be updated: 0......Updated: 127
From Desc 2 update failed
..............          (LOOP 3)
Context: 31-AUG-12
sql%rowcount:..... 0
To be updated: 571......Updated: 573
From Desc 1 update failed
sql%rowcount:..... 0
To be updated: 127......Updated: 127
From Desc 2 updated successfully to To Desc 2
PL/SQL procedure successfully completed.As you can see, SQL%ROWCOUNT returns 0 even when there is an update in (LOOP 3).
Also note the counts returned before and after update. They're different in LOOP 3. But
when I run the update stmt alone, am getting only the 571 records updated which is what
available there. Don't understand from where the select stmt get 573 from. Please help me
understand the possibilities of getting wrong counts.
FYI: I didnt faced this issue in Oracle 11.2.0.3, am facing it in 11.2.0.1

Similar Messages

  • Rowcount problem in Import

    Hi,
    I imported a table from the backup dump and when I checked the imported rows were only 2 millions which is suppose to be 8 millions.
    I dropped the table and again imported the same table and the import was fine and the rowcount was matching with the export log.
    Why this difference when dropping the table and importing the dump ???
    Thanks in advance.

    When you first imported the table, did you create the log file ? If yes check the log file. There should be some problem otherwise it will not happen like this.
    -aijaz

  • SQl%rowcount problem

    i have created a function, in pl/sql to check the diffrence betwenn 2 similar tables having same columns . if it has diffrence tha is if select query returns row then it shoul go in error log table but this is not happening could you solve my problem.
    thanks in advance
    CREATE OR REPLACE FUNCTION CAL_BETWEEN_TABLES(
    source_name IN VARCHAR2,
    target_name IN VARCHAR2)
    RETURN number
    IS
    v_success CONSTANT NUMBER := 0;
    v_failure CONSTANT NUMBER := -1;
    V_SQL VARCHAR2(10000);
    v_rows_processed NUMBER :=0;
    p_err_modul error_logs.err_modul%TYPE := 'NULL';
    p_err_function error_logs.err_function%TYPE := ' CAL_BETWEEN_TABLES';
    p_err_type error_logs.err_type%TYPE := 'SN';
    BEGIN
    V_SQL:= 'SELECT * from '||source_name||' minus select * from '||target_name||'';
    v_rows_processed:=sql%rowcount;
    IF v_rows_processed>0
    THEN
         p_err.insert_error(p_err_modul,
    p_err_function,
    p_err_type,
    SQLCODE,
    USER,
    'Failed in the function CAL_BETWEEN_TABLES' ||
    SQLERRM);
    RETURN(v_failure);
    --dbms_output.put_line('failure');
    ELSE
    RETURN(v_success);
    --dbms_output.put_line('success');
    END IF;
    END CAL_BETWEEN_TABLES;

    You are missing EXECUTE IMMEDIATE or it is cut and paste problem. also
    Declare variable
    v_row source_name%rowtype;
    V_SQL:= 'SELECT * from '||source_name||' minus select * from '||target_name||'';
    EXECUTE IMMEDIATE v_sql INTO v_row;
    v_rows_processed:=sql%rowcount;
    HTH

  • SQL%ROWCOUNT problem in Oracle 9i

    We have migrated our application from 8i to 9i. There is a PL/SQL procedure which returns number of rows inserted in the table. In Oracle it was returning correct number of rows but when we have migrated same procedure on Oracle9i it is returning 0 (ZERO) number of records even though procedure inserts successfully more than 100,000 rows in the table. It is used as:
    tmpCount := SQL%ROWCOUNT;
    Is there any change on Oracle9i?

    From MetaLink
    The behaviour you are observing is due to bug 2286387. You can set event 10943 to level 4194304 in your init<SID>.ora to get the old Oracle 8i behaviour.
    NOTE : The new behaviour in which SQL% attributes are affected by commit and rollback will be the DEFAULT behaviour going forward (Oracle 10i) so it is recommended to change the code so that you check the SQL% attrubutes before a commit or rollback.
    The event 10943 will also be removed in the future releases.

  • Jtable - TableModel Problem while setting rowcount

    I have a TableModel which extends from defaulttablemodel
    I have a method to set new rows size.
    First to call setRowCount I re-create the 'data' Object, that initially has 5 x 5 elements
    If I call my function wiht 8 x 5, I get the next fail :
    java.lang.ArrayIndexOutOfBoundsException: 5 >= 5
         at java.util.Vector.elementAt(Unknown Source)
         at javax.swing.table.DefaultTableModel.justifyRows(Unknown Source)
         at javax.swing.table.DefaultTableModel.setNumRows(Unknown Source)
         at javax.swing.table.DefaultTableModel.setRowCount(Unknown Source)
         at geocost.Wtable.w_setrows(Wtable.java:66)
    The code is something like this :
    public void w_setrows(int rows, int cols) {
    TableModelo.w_Gen_Object(rows,cols);     
    TableModelo.setRowCount(rows); ( this is the line 66 )
    private void w_Gen_Object(int numRows,int numCols){                           
    data = new Object[numRows][numCols];
    for (int i=0; i < numRows; i++) {                
    for (int j=0; j < numCols; j++) {
         data[i][j]="";
    Whats wrong ?
    Thank you

    I'm going to explain a little more my problem :
    I'm developing a Jtable Bean, and I want to have an initial control on the number of columns and rows that are going to be view.
    My tablemodel has a getValueAt
    public Object getValueAt(int row, int col) {
                 return data[row][col];             
            }Initially my data object has, by default, 5 x 5 elements. and all is work fine
    The Jtable is correctly viewed.
    If I want to have a 7 x 5 model I :
    1.- I redefine the data object to 7 rows x 5 columns, and it is ok .
    2.- I set the rowcount to 7
    At this point at I get the :
    java.lang.reflect.InvocationTargetException
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
         at java.lang.reflect.Constructor.newInstance(Unknown Source)
         at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
         at java.awt.event.InvocationEvent.dispatch(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 5 >= 5
         at java.util.Vector.elementAt(Unknown Source)
         at javax.swing.table.DefaultTableModel.justifyRows(Unknown Source)5
    IWAV0052E Invocation Target Exception creating geocost.Wtable
         at javax.swing.table.DefaultTableModel.setNumRows(Unknown Source)
         at javax.swing.table.DefaultTableModel.setRowCount(Unknown Source)
    I must to fire something ? What more I must write ?

  • PL/SQL Performance problem

    I am facing a performance problem with my current application (PL/SQL packaged procedure)
    My application takes data from 4 temporary tables, does a lot of validation and
    puts them into permanent tables.(updates if present else inserts)
    One of the temporary tables is parent table and can have 0 or more rows in
    the other tables.
    I have analyzed all my tables and indexes and checked all my SQLs
    They all seem to be using the indexes correctly.
    There are 1.6 million records combined in all 4 tables.
    I am using Oracle 8i.
    How do I determine what is causing the problem and which part is taking time.
    Please help.
    The skeleton of the code which we have written looks like this
    MAIN LOOP ( 255308 records)-- Parent temporary table
    -----lots of validation-----
    update permanent_table1
    if sql%rowcount = 0 then
    insert into permanent_table1
    Loop2 (0-5 records)-- child temporary table1
    -----lots of validation-----
    update permanent_table2
    if sql%rowcount = 0 then
    insert into permanent_table2
    end loop2
    Loop3 (0-5 records)-- child temporary table2
    -----lots of validation-----
    update permanent_table3
    if sql%rowcount = 0 then
    insert into permanent_table3
    end loop3
    Loop4 (0-5 records)-- child temporary table3
    -----lots of validation-----
    update permanent_table4
    if sql%rowcount = 0 then
    insert into permanent_table4
    end loop4
    -- COMMIT after every 3000 records
    END MAIN LOOP
    Thanks
    Ashwin N.

    Do this intead of ditching the PL/SQL.
    DECLARE
    TYPE NumTab IS TABLE OF NUMBER(4) INDEX BY BINARY_INTEGER;
    TYPE NameTab IS TABLE OF CHAR(15) INDEX BY BINARY_INTEGER;
    pnums NumTab;
    pnames NameTab;
    t1 NUMBER(5);
    t2 NUMBER(5);
    t3 NUMBER(5);
    BEGIN
    FOR j IN 1..5000 LOOP -- load index-by tables
    pnums(j) := j;
    pnames(j) := 'Part No. ' || TO_CHAR(j);
    END LOOP;
    t1 := dbms_utility.get_time;
    FOR i IN 1..5000 LOOP -- use FOR loop
    INSERT INTO parts VALUES (pnums(i), pnames(i));
    END LOOP;
    t2 := dbms_utility.get_time;
    FORALL i IN 1..5000 -- use FORALL statement
    INSERT INTO parts VALUES (pnums(i), pnames(i));
    get_time(t3);
    dbms_output.put_line('Execution Time (secs)');
    dbms_output.put_line('---------------------');
    dbms_output.put_line('FOR loop: ' || TO_CHAR(t2 - t1));
    dbms_output.put_line('FORALL: ' || TO_CHAR(t3 - t2));
    END;
    Try this link, http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/05_colls.htm#23723

  • Problem with freeze on Document forms

    Hi all,
    i've a problem with freeze on document's forms (like invoice) when i make changes on matrix.
    For example i've an addon that calculate discounts for items and update the information in the matrix. But when I update the info in the Matrix I see the cursor run across the matrix.
    This create two problems. The first one is the orrible aspect that the operation assume, the second is that sometimes some cells turn to black and remain ofthis color.
    Can someone help me?
    Here I post a piece of my code:
        Dim oForm As SAPbouiCOM.Form = SBOApplication.Forms.Item(FormUID)
        Dim oMatrix As SAPbouiCOM.Matrix = oForm.Items.Item("38").Specific
        Dim oRefLine As Integer = 0
        oForm.Freeze(True)
        Dim Cnt As Integer = 1
        Try
          While Cnt <= oMatrix.RowCount
            If oMatrix.Columns.Item("U_RefLineId").Cells.Item(Cnt).Specific.Value <> "" Then
              Dim apDouble As Double = oMatrix.Columns.Item("15").Cells.Item(Cnt).Specific.Value.ToString.Replace(".", ",")
              If apDouble <> 100 Then
                SetMatrixValue(oMatrix, "U_RefLineId", Cnt, "")
                SetMatrixValue(oMatrix, "11", Cnt, oMatrix.Columns.Item("U_OrigQtyMN").Cells.Item(Cnt).Specific.Value)
                SetMatrixValue(oMatrix, "U_OrigQtyMN", Cnt, 0)
                Cnt = Cnt + 1
              Else
                oMatrix.Columns.Item("15").Cells.Item(Cnt).Click()
                SBOApplication.ActivateMenuItem("1293")
              End If
            Else
              SetMatrixValue(oMatrix, "15", Cnt, 0)
              Cnt = Cnt + 1
            End If
          End While
        Catch ex As Exception
          SBOApplication.StatusBar.SetText("Error: " & ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error)
        End Try
        oForm.Freeze(False)

    Hi Daniele,
    I use a little different approach because the Freeze on a Form is like parenthesis on formula. You must be sure that the Freeze(true) are balanced by a Freeze(false).
    So my pattern is:
    Try
        oForm.Freeze(True)
        ' the operation you need to do with the freezed form
    Catch Ex as Exception
        ' Menage the errors here
    Finally
        oForm.Freeze(False)
    End Try
    The Finally statement is executed in both case when an Exception is raised or when the code is right executed.
    But I think this is not the problem in your code.
    If you still having problem, probably we need to examine your sub-routine "SetMatrixValue".
    It is also important to know your SAP Business One version because in the past there was a version with a problem in the refresh of matrix.
    I use SAP Business One 2007A SP01 PL06 HF1 and I do not have problem with the freezing.
    Hope it helps.
    Carmine

  • Problem with checkboxes in IR report mainly for update process please help

    Hello,
    Can anyone please help me out with this issue.
    I have an interactive report with 3 checkbox item for a single column named status. Based on the value of the column status the check box should be checked. For example:
    DECODE(status,'DEV',1,0) as DEV,
    DECODE(status,'RVW',1,0) as RVW,
    DECODE(status,'PRD',1,0) as PROD,
    So for this I have used the apex_item.checkbox item. Below is my report query
    SELECT APEX_ITEM.HIDDEN(30,0,'','f30_' || ROWNUM)
         || APEX_ITEM.HIDDEN(31,0,'','f31_' || ROWNUM)
            || APEX_ITEM.HIDDEN(01,ROWNUM,'','f01_' || ROWNUM)
         || APEX_ITEM.HIDDEN(04,CHF_DATASTORE||CHF_SCHEMA||CHF_TABLE||CHF_COLUMN,'','f04_' || ROWNUM)
            || APEX_ITEM.HIDDEN(05,CHF_STATUS,'','f05_' || ROWNUM)
         || APEX_ITEM.HIDDEN(06,CHF_STATUS,'','f06_' || ROWNUM)
            || APEX_ITEM.HIDDEN(08,CHF_STATUS,'','f08_' || ROWNUM)
         || APEX_ITEM.HIDDEN(09,CHF_STATUS,'','f09_' || ROWNUM)
            || APEX_ITEM.HIDDEN(11,CHF_STATUS,'','f11_' || ROWNUM)
         || APEX_ITEM.HIDDEN(12,CHF_STATUS,'','f12_' || ROWNUM)
            || APEX_ITEM.CHECKBOX (32,ROWNUM,'onClick="javascript:ToggleValue(this,' || ROWNUM || ','||'''f30'');"'
         ,DECODE (0,1, ROWNUM),':','f32_' || ROWNUM) DELETE
            ,CHF_COLUMN
            ,CHF_STATUS
            ,APEX_ITEM.CHECKBOX (07,ROWNUM,'onClick="javascript:ToggleValue(this,' || ROWNUM || ','||'''f05'');"',DECODE (CHF_STATUS,'DEV',ROWNUM),':','f07_' || ROWNUM) 
              DEV_EDIT
         ,APEX_ITEM.CHECKBOX (10,ROWNUM,'onClick="javascript:ToggleValue(this,' || ROWNUM || ','||'''f08'');"',DECODE (CHF_STATUS,'RVW',ROWNUM),':','f10_' || ROWNUM) 
              RVW_EDIT
            ,APEX_ITEM.CHECKBOX (13,ROWNUM,'onClick="javascript:ToggleValue(this,' || ROWNUM || ','||'''f11'');"',DECODE (CHF_STATUS,'PRD',ROWNUM),':','f13_' || ROWNUM) 
              PRD_EDIT
            FROM CHF_COLUMN WHERE
    CHF_DATASTORE  = 'DOMAIN_DEV' AND
    CHF_SCHEMA     = 'SCHEMA_DEV' AND
    CHF_TABLE      = 'EMPLOYEEE'
    ORDER BY 1;  And I have a button for the update process so that the users can check the checkboxes option for the status column either 'DEV', 'RVW', 'PRD'. The status of the column can be in either of these states or can be null.
    I have a update process, its having some problem - I don't understand whats causing the problem. Below is the error message which I encountered when trying to update.
    ORA-06502: PL/SQL: numeric or value error: character to number conversion error
    My Update process.
    DECLARE
    l_cnt BINARY_INTEGER := 0;
    l_stepid number := 10;
    l_date DATE := SYSDATE;
    BEGIN
    FOR i IN 1 .. apex_application.g_f01.COUNT
    LOOP
    IF APEX_APPLICATION.G_f05 (i)  = 1 THEN
          UPDATE  CHF_COLUMN
               SET      CHF_STATUS = 'DEV'
             WHERE CHF_DATASTORE||CHF_SCHEMA||CHF_TABLE||CHF_COLUMN = APEX_APPLICATION.G_f04 (i)
              l_cnt := l_cnt + SQL%ROWCOUNT;
    apex_application.g_print_success_message := apex_application.g_print_success_message ||
    'Successfully updated'||l_cnt ||'<br><br>';
    END IF;
    IF APEX_APPLICATION.G_f08 (i)  = 1 THEN
          UPDATE  CHF_COLUMN
               SET      CHF_STATUS = 'RVW'
             WHERE CHF_DATASTORE||CHF_SCHEMA||CHF_TABLE||CHF_COLUMN = APEX_APPLICATION.G_f04 (i)
              l_cnt := l_cnt + SQL%ROWCOUNT;
    apex_application.g_print_success_message := apex_application.g_print_success_message ||
    'Successfully updated'||l_cnt ||'<br><br>';
    END IF;
    IF APEX_APPLICATION.G_f11 (i)  = 1 THEN
          UPDATE  CHF_COLUMN
               SET      CHF_STATUS = 'PRD'
             WHERE CHF_DATASTORE||CHF_SCHEMA||CHF_TABLE||CHF_COLUMN = APEX_APPLICATION.G_f04 (i)
              l_cnt := l_cnt + SQL%ROWCOUNT;
    apex_application.g_print_success_message := apex_application.g_print_success_message ||
    'Successfully updated'||l_cnt ||'<br><br>';
    END IF;
    END LOOP;
    COMMIT;
    END;If you can please have a look at the app, you can get a better understanding of my problem.
    Workspace : orton_workspace
    username : [email protected]
    password : sanadear
    Application No: 15089 SAMPLE_CHECKBOX_APP
    Thanks,
    Orton
    Edited by: orton607 on Aug 4, 2010 9:28 AM

    I could be wrong but maybe change the hidden items to be like:
    APEX_ITEM.HIDDEN(05,DECODE(CHF_STATUS,'DEV',1,0),'','f05_' || ROWNUM)
    APEX_ITEM.HIDDEN(08,DECODE(CHF_STATUS,'RVW',1,0),,'','f08_' || ROWNUM)
    APEX_ITEM.HIDDEN(11,DECODE(CHF_STATUS,'PRD',1,0),,'','f11_' || ROWNUM)so that the values are 0/1?
    Also, you have
    DECODE (CHF_STATUS,'DEV',ROWNUM)instead of
    DECODE (CHF_STATUS,'DEV',0,1)in the checkboxes, as I would expect.
    I'm also not sure why you need to duplicate the checkboxes (f07,f10,f13) as hidden items (f05, f08, f11) if they are both 0/1 values.

  • Problem on reading a multiple entry in the Grid

    Hi experts,  I have a validation of data entry on every row before add and update, my problem is, it read only the first row... below is my code.... any help would be appreciated...
                If pVal.ItemUID = "1" Then
                    If (oForm.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE _
                        Or oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE) Then
                        mCol = ""
                        mItem = ""
                        Select Case pVal.FormTypeEx
                            Case "392"
                                mItem = "76"
                                mCol = "1"
                            Case "670"
                                mItem = "28"
                                mCol = "7"
                            Case "170" Or "426"
                                mItem = "71"
                                mCol = "8"
                            Case Else
                                mItem = "38"
                                mCol = "29"
                        End Select
                        Try
                            i = 1
                            oForm = SBO_Application.Forms.Item(pVal.FormUID)
                            Do While True
                                mValMsg = ""
                                mVal = ""
                                mDept = ""
                                mClient = ""
                                mBill = ""
                                mEquipt = ""
                                mEmp = ""
                                mValMsg = ""
                                oMtrx = oForm.Items.Item(mItem).Specific
                                oEdit = oMtrx.Columns.Item(mCol).Cells.Item(i).Specific
                                mVal = oEdit.Value
                                If mVal = "" Then
                                    oMtrx = oForm.Items.Item("39").Specific
                                    oEdit = oMtrx.Columns.Item("2").Cells.Item(i).Specific
                                    mVal = oEdit.Value
                                End If
                                If mVal = "" Then Exit Do
                                If oForm.DataSources.DataTables.Count = 0 Then oForm.DataSources.DataTables.Add("QryTable")
                                oForm.DataSources.DataTables.Item("QryTable").ExecuteQuery("select u_department,u_client,u_billing,u_equipment,u_employee from oact where acctcode = '" & Trim(mVal) & "'")
                                mValMsg = IIf(Trim(oForm.DataSources.DataTables.Item("QryTable").Columns.Item(0).Cells.Item(0).Value) = "Y", " DEPARTMENT,", "")
                                mValMsg = mValMsg & IIf(Trim(oForm.DataSources.DataTables.Item("QryTable").Columns.Item(1).Cells.Item(0).Value) = "Y", " CLIENT,", "")
                                mValMsg = mValMsg & IIf(Trim(oForm.DataSources.DataTables.Item("QryTable").Columns.Item(2).Cells.Item(0).Value) = "Y", " BILLING,", "")
                                mValMsg = mValMsg & IIf(Trim(oForm.DataSources.DataTables.Item("QryTable").Columns.Item(3).Cells.Item(0).Value) = "Y", " EQUIPMENT,", "")
                                mValMsg = mValMsg & IIf(Trim(oForm.DataSources.DataTables.Item("QryTable").Columns.Item(4).Cells.Item(0).Value) = "Y", " EMPLOYEE", "")
                                mFields = Trim(oForm.DataSources.DataTables.Item("QryTable").Columns.Item(0).Cells.Item(0).Value) _
                                        & Trim(oForm.DataSources.DataTables.Item("QryTable").Columns.Item(1).Cells.Item(0).Value) _
                                        & Trim(oForm.DataSources.DataTables.Item("QryTable").Columns.Item(2).Cells.Item(0).Value) _
                                        & Trim(oForm.DataSources.DataTables.Item("QryTable").Columns.Item(3).Cells.Item(0).Value) _
                                        & Trim(oForm.DataSources.DataTables.Item("QryTable").Columns.Item(4).Cells.Item(0).Value)
                                oEdit = oMtrx.Columns.Item(mDept_Col).Cells.Item(i).Specific
                                mDept = oEdit.Value
                                oEdit = oMtrx.Columns.Item(mClient_Col).Cells.Item(i).Specific
                                mClient = oEdit.Value
                                oEdit = oMtrx.Columns.Item(mBill_Col).Cells.Item(i).Specific
                                mBill = oEdit.Value
                                oEdit = oMtrx.Columns.Item(mEquipt_Col).Cells.Item(i).Specific
                                mEquipt = oEdit.Value
                                oEdit = oMtrx.Columns.Item(mEmp_Col).Cells.Item(i).Specific
                                mEmp = oEdit.Value
                                If (mDept = "" And Mid(mFields, 1, 1) = "Y") Or _
                                   (mClient = "" And Mid(mFields, 2, 1) = "Y") Or _
                                   (mBill = "" And Mid(mFields, 3, 1) = "Y") Or _
                                   (mEquipt = "" And Mid(mFields, 4, 1) = "Y") Or _
                                   (mEmp = "" And Mid(mFields, 5, 1) = "Y") Then
                                    SBO_Application.MessageBox("Mandatory field(s) at ROW(" & Str(i) & ")" & mValMsg & Space(22) & " cannot be empty")
                                    BubbleEvent = False
                                    Exit Sub
                                End If
                                i = i + 1
                                If mVal = "" Then
                                    BubbleEvent = True
                                    Exit Sub
                                End If
                            Loop
                        Catch ex As Exception
                            If Err.Number = -7030 Then
                                BubbleEvent = True
                                Throw ex
                                Exit Sub
                            Else
                                SBO_Application.SetStatusBarMessage(Err.Number & "  " & Err.Description, SAPbouiCOM.BoMessageTime.bmt_Medium)
                                BubbleEvent = False
                            End If
                        End Try
                    End If
                End If

    Hi Jummie,
    The problem becomes on each form on your selection or just on a specific form?
    I've tested on the journal entry form's (392).
    I purpose you to test the code below and (open the journal entry form then move to a record with rows and click ok)
    normally shows a message box with all Account existing in the matrix :
    If pVal.EventType = SAPbouiCOM.BoEventTypes.et_CLICK And pVal.ItemUID = "1" And pVal.Before_Action = True Then
                If pVal.FormTypeEx = "392" Then
                    Dim mCol As String
                    Dim mitem As String
                    Dim mValMsg As String
                    Dim mVal As String
                    Dim arrVal(0) As String
                    mCol = "1"
                    mitem = "76"
                    Try
                        i = 1
                        oForm = SBO_Application.Forms.Item(pVal.FormUID)
                        oMatrix = oForm.Items.Item(mitem).Specific
                        Do While i <= oMatrix.RowCount
                            mVal = "
                            oEdit = oMatrix.Columns.Item(mCol).Cells.Item(i).Specific
                            mVal = oEdit.Value
                            If arrVal.GetUpperBound(0) > 0 Then
                                ReDim Preserve arrVal(arrVal.GetUpperBound(0) + 1)
                                arrVal.SetValue(mVal, i - 1)
                            Else
                                ReDim Preserve arrVal(arrVal.GetUpperBound(0) + 1)
                                arrVal.SetValue(mVal, 0)
                            End If
                            i = i + 1
                        Loop
                        mValMsg = ""
                        For i = 0 To arrVal.GetUpperBound(0) - 1
                            mValMsg += arrVal(i) & vbCrLf
                        Next i
                        SBO_Application.MessageBox(mValMsg)
              Catch ex As Exception
                  SBO_Application.SetStatusBarMessage(Err.Number & " " & Err.Description, SAPbouiCOM.BoMessageTime.bmt_Medium)
                   BubbleEvent = False
                    End Try
                End If
            End If
    If it works try to change in your code the line "While True" by "While i <= oMtrx.RowCount" sure initialize the oMtrx object before the begin of loop.
    Another tip, in your code you can replace line like that
    "mValMsg = mValMsg & IIf(Trim(oForm....."
    on
    "mValMsg += IIf(Trim(oForm........"
    i hope that helps
    please feedback
    BR
    Alan

  • PROBLEM WITH XML PUBLISHER AND GRAPH NOT DISPLAYING IN ORACLE APPS

    Hi
    All you XML Gurus here. I have a problem, When i create a report in XML Publisher desktop i can see a graph im putting into the report on preview and works fine. But when i upload the report as a rtf file into Oracle applications i can see everything else the table logo and stuff .. But just not the Graph Itself when run on the concurrant manager....
    Problem number 2
    Is there a way that i can use XML Desktop and create a line graph with 2 lines rather than 1 plotting
    here is my xml for graph i have made with one line
    chart:
    <Graph>
    <Title text="" visible="true" horizontalAlignment="CENTER"/>
    <LocalGridData colCount="{count(.//SELF_OTHERS)}" rowCount="1">
    <RowLabels><Label></Label></RowLabels>
    <ColLabels>
    <xsl:for-each select=".//SELF_OTHERS"> <Label><xsl:value-of select="BEHAVIOUR"/></Label>
    </xsl:for-each>
    </ColLabels>
    <DataValues>
    <RowData>
    <xsl:for-each select=".//SELF_OTHERS"> <Cell><xsl:value-of select="SCORE"/></Cell>
    </xsl:for-each> </RowData>
    </DataValues>
    </LocalGridData>
    </Graph>
    All help would be much appreciated to my 2 problems....
    Thanks
    Sha

    Hi All
    Will post solution tomorrow or Monday on blog. Heres the chart XML for now.
    chart:
    <Graph graphType="LINE_VERT_ABS"><LegendArea visible="true" />
    <LocalGridData colCount="{count(xdoxslt:group(.//SALE, 'YEAR'))}" rowCount="3">
    <RowLabels>
    <Label>SOFTWARE</Label>
    <Label>HARDWARE</Label>
    <Label>SERVICES</Label>
    </RowLabels>
    <ColLabels>
    <xsl:for-each-group select=".//SALE" group-by="YEAR" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <Label>
    <xsl:value-of select="current-group()/YEAR" />
    </Label>
    </xsl:for-each-group>
    </ColLabels>
    <DataValues>
    <RowData>
    <xsl:for-each-group select=".//SALE" group-by="YEAR" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <Cell>
    <xsl:value-of select="sum(current-group()/SOFTWARE)" />
    </Cell>
    </xsl:for-each-group>
    </RowData>
    <RowData>
    <xsl:for-each-group select=".//SALE" group-by="YEAR" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <Cell>
    <xsl:value-of select="sum(current-group()/HARDWARE)" />
    </Cell>
    </xsl:for-each-group>
    </RowData>
    <RowData>
    <xsl:for-each-group select=".//SALE" group-by="YEAR" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <Cell>
    <xsl:value-of select="sum(current-group()/SERVICES)" />
    </Cell>
    </xsl:for-each-group>
    </RowData>
    </DataValues>
    </LocalGridData>
    </Graph>
    with the following data
    <?xml version="1.0" encoding="UTF-8"?>
    <SALES>
         <SALE>
              <YEAR>2006</YEAR>
              <SOFTWARE>1200</SOFTWARE>
              <HARDWARE>850</HARDWARE>
              <SERVICES>2000</SERVICES>
         </SALE>
         <SALE>
              <YEAR>2007</YEAR>
              <SOFTWARE>1000</SOFTWARE>
              <HARDWARE>800</HARDWARE>
              <SERVICES>1100</SERVICES>
         </SALE>
         <SALE>
              <YEAR>2008</YEAR>
              <SOFTWARE>900</SOFTWARE>
              <HARDWARE>1200</HARDWARE>
              <SERVICES>1500</SERVICES>
         </SALE>
    </SALES>
    The latest Template Builder makes this a cinch!
    Regards
    Tim
    http://blogs.oracle.com/xmlpublisher

  • Master detail problem

    Using jsf/adf with business components.
    I have a jsp page which displays form information. This page can be used to create a new record or edit existing record. On the form, there is a section for home addresses and a different section for work addresses. I have a master detail setup. The master record is essentially an employee (view object). Also, i have one view object for Home Addresses and one view object for Work Addresses. The difference is simply in the sql where clause. One retrieves addresses where address_type LIKE 'WORK%' and the other view retrieves addresses where address_type LIKE 'HOME%. So, both views are built on the same address table. (entity object). There is a one to many (master/detail) relationship between employee and home addresses. There is also a one to many (master/detail) relationship between employee and work addresses. So, I've created view link objects for both the home address and work address and associated each to the parent record to get the master detail hooked up. things work great when i'm trying to retrieve and edit a record(s). The home addresses and work addresses are kept separate like they should be and displayed in their appropriate sections on the form. The problem i'm having is with the create record. When the page is first rendered, I want blank input fields to display for both the master record and the detail records. So, i'm programmatically creating the master and detail records before the page is rendered. I create the master row, then create one row for the work address section and one row for the home address section. The problem i'm having is that both of the detail rows which are created this way are displaying in the same work address section. So, when the page is first rendered, i see input fields only in the work address section, and both the rows have been created there, which is evidenced by the fact that i can scroll thru these two newly created records using the "next" button that was dragged/dropped for the work address section. During the create process, it appears (thru debugging) that both of these detail rows are being created properly, with their own separate iterator, so why does it appear that both rows belong to the same iterator when the page is first rendered? I have included the code below which creates the master detail rows:
    //this method is called upon the initial entry into the tabbed page if
    //user is in "create" mode. It handles creating the master and detail row(s).
    public void createMasterDetailRows(){
    ViewObject vo = getMasterView();
    Row masterRow = vo.createRow();
    masterRow.setNewRowState(Row.STATUS_INITIALIZED);
    vo.insertRow(masterRow);
    //for the initial entry into the tabbed page in create mode, the address row(s) must be created explicitly.
    createWorkAddressRow();
    createHomeAddressRow();
    public void createWorkAddressRow(){
    RowIterator iterator = (RowIterator)this.getMasterView().getCurrentRow().getAttribute("WorkAddressView");
    Row newWorkAddressRow = iterator.createRow();
    newWorkAddressRow .setNewRowState(Row.STATUS_INITIALIZED);
    iterator.insertRow(newWorkAddressRow );
    int rowCount = iterator.getRowCount();
    System.out.println("Address row inserted at " + rowCount);
    public void createHomeAddressRow(){
    RowIterator iterator = (RowIterator)this.getMasterView().getCurrentRow().getAttribute("HomeAddressView");
    Row newHomeAddressRow = iterator.createRow();
    newHomeAddressRow.setNewRowState(Row.STATUS_INITIALIZED);
    iterator.insertRow(newHomeAddressRow);
    int rowCount = iterator.getRowCount();
    System.out.println("Home Address row inserted at " + rowCount);
    }

    Sergio,
    You need to set the currency to the row passed in the request parameter from the browse page.
    You can used the row tag to do that:
    <jbo:Row id="rowCur" datasource="yourMasterDS" rowkeyparam="jboRowKey" action="find">Charles.

  • Can anybody help me in fixing the problem ? of JTable ( CODE GIVEN )

    My problem is
    1)when i select the combo box (2nd column) through keyboard the selected item is not visible in the cell
    2) i need to press TAB key twice to go to next cell .
    3) also before editing i need to press a key to start editing (caret visible) HELP ME
    CODE CAN BE RUN TO SEE WHAT I MEANT
    <code>
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.Vector;
    import java.text.*;
    public class BaseTable
    public JScrollPane scrollPane;
         public JTable table;
         public int totalRows;
         public int i,numRows,numCols;
         public TableModel model;
         public int rowCount;
         public JComboBox box;
    public BaseTable()
              String[] items=new String[]{"item1","jItem2","kItem3","Item4","Item5","Item6"};
              String[] columns = {"Column1","Column2","Column3","Column4","Column5","Column6","Column7","Column8","Column9"};
              box=new JComboBox(items);
              box.setEditable(true);
    DefaultTableModel baseModel=new DefaultTableModel();
              baseModel.setColumnIdentifiers(columns);
    table = new JTable(baseModel)
                   protected void processKeyEvent(KeyEvent e)
                        if ( e.getID() == KeyEvent.KEY_PRESSED && e.getKeyCode() != e.VK_TAB)
                             int column = table.getSelectedColumn();
                             int row = table.getSelectedRow();
                             Rectangle r = getCellRect(row, column, false);
                             Point p = new Point( r.x, r.y );
                             SwingUtilities.convertPointToScreen(p, table);
                             try
                                  System.out.println("PROCESS KEY EVENT Typing"+e.getKeyCode());
                                  Robot robot = new Robot();
                                  robot.mouseMove(p.x, p.y );
                                  robot.mousePress(InputEvent.BUTTON1_MASK);
                                  robot.mouseRelease(InputEvent.BUTTON1_MASK);
                                  robot.mouseMove(0, 0 );
                             catch (Exception e2) {}
                        else
                             System.out.println("PROCESS KEY EVENT IN ELSE");
                             if(e.getKeyCode() == e.VK_TAB && table.isEditing())
                                  ((DefaultCellEditor)table.getCellEditor()).stopCellEditing();
                             else
                                  super.processKeyEvent(e);
    Vector vectorRow = new Vector();
              vectorRow.addElement("");
              vectorRow.addElement("");
              vectorRow.addElement("");
              vectorRow.addElement("");
              vectorRow.addElement("");
              vectorRow.addElement("");
              vectorRow.addElement("");
              vectorRow.addElement("");
              vectorRow.addElement("");
              TableCellEditor tableCellEditor_comboBox = new MyCustomTableCellEditor(box,this);
              table.getColumnModel().getColumn(1).setCellEditor(tableCellEditor_comboBox);
              ((DefaultTableModel)table.getModel()).addRow(vectorRow);
              rowCount = table.getRowCount();
              ((DefaultTableModel)table.getModel()).fireTableRowsInserted(rowCount,rowCount);
              scrollPane = new JScrollPane(table);
              scrollPane.setForeground(Color.white);
              rowCount = table.getRowCount();
    numCols = table.getColumnCount();
    public class MyCustomTableCellEditor extends DefaultCellEditor
                   JTable table=null;
                   BaseTable baseTable=null;
                   JComboBox box=null;
                   MyCustomTableCellEditor(JComboBox editorComponent,BaseTable baseTable)
                        super(editorComponent);
                        this.table=baseTable.table;
                        this.baseTable=baseTable;
                        setClickCountToStart(0);
                   public Component getTableCellEditorComponent(
                        JTable table,
                        Object value,
                        boolean isSelected,
                        int row,
                        int column)
                             super.getTableCellEditorComponent(table,value,isSelected,row,column);
                             box=(JComboBox)getComponent();
                             box.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
                             return box;
         public static void main(String s1[])
              BaseTable t=new BaseTable();
              JFrame f=new JFrame();
              f.getContentPane().add(t.scrollPane);
              f.setSize(800,200);
              f.setVisible(true);
    </code>

    sahas@sun, you're very impolite! farukkhan was trying to help, and he's right because when you use code formatting the code is really easier to read.
    Perhaps you have lost a chance for getting the answer!

  • Problems in creating a chart..

    Hi,
    I have Problems in creating the following chart..
    I dont know where the problem of the Publisher is, because the same structers already shows me a Table full of Data...
    I ve tested something and realized when i m deleting the SUM() Part everything works fine. Ist it maybe an error in the sum function?
    its such a simple statement but it wont work...
    XML Code:
    chart:
    <Graph graphType="PIE">
    <Title text="" visible="true" horizontalAlignment="CENTER"/>
    <LocalGridData rowCount="{count(xdoxslt:group(DATA/query_DATA/ROW, CURRENY))}" colCount="1">
    <RowLabels>
    <xsl:for-each-group select="DATA/query_DATA/ROW" group-by="CURRENCY">
    <xsl:sort select="CURRENCY"/>
    <Label>
    <xsl:value-of select="current-group()/CURRENCY"/>
    </Label>
    </xsl:for-each-group>
    </RowLabels>
    <DataValues>
    <xsl:for-each-group select="DATA/query_DATA/ROW" group-by="CURRENCY">
    <xsl:sort select="CURRENCY"/>
    <RowData>
    <Cell>
    <xsl:value-of select="sum(current-group()/PRICE)"/>
    </Cell>
    </RowData>
    </xsl:for-each-group>
    </DataValues>
    </LocalGridData>
    </Graph>
    Greeting

    It doesnt work, because i deleted the ' while chaning the caption to currency....
    OK here is my original Text....
    chart:
    <Graph graphType="PIE">
    <Title text="" visible="true" horizontalAlignment="CENTER"/>
    <LocalGridData rowCount="{count(xdoxslt:group(DATA/query_DATA/ROW, 'POS_EURO_TXT'))}" colCount="1">
    <RowLabels>
    <xsl:for-each-group select="DATA/query_DATA/ROW" group-by="POS_EURO_TXT">
    <xsl:sort select="POS_EURO_TXT"/>
    <Label><xsl:value-of select="current-group()/POS_EURO_TXT"/></Label>
    </xsl:for-each-group>
    </RowLabels>
    <DataValues>
    <xsl:for-each-group select="DATA/query_DATA/ROW" group-by="POS_EURO_TXT">
    <xsl:sort select="POS_EURO_TXT"/>
    <RowData>
    <Cell><xsl:value-of select="sum(current-group()/NET)"/></Cell>
    </RowData>
    </xsl:for-each-group> </DataValues>
    </LocalGridData>
    </Graph>
    <DATA>
    <query_DATA><ROW>
    <KUNGRUPPE>ABC</KUNGRUPPE>
    <POS_EURO_TXT>USD</POS_EURO_TXT>
    <NET>7785763.25</NET>
    </ROW><ROW>
    <KUNGRUPPE>ABC</KUNGRUPPE>
    <POS_EURO_TXT>EURO</POS_EURO_TXT>
    <NET>15242332211.9</NET>
    </ROW><ROW>
    <KUNGRUPPE>XXX</KUNGRUPPE>
    <POS_EURO_TXT>EURO</POS_EURO_TXT>
    <NET>7894268.84</NET>
    </ROW></query_DATA>
    </DATA>
    Greetings

  • Problems with creating a complex cursor

    Let me prefix this post with the fact that I am really new at this and this is my first shot at creating a Stored Proc. I have the shell and I have tried to code this but I am having some issues with the cursor. Any tips or tricks that you can give me would be greatly appreciated.
    Below is what I am trying to accomplish
    Looking for the best approach to work with a complex cursor.
    I have 4 files that are going to dump into a temp table. This is a sample of the Temp Table
    CHAN_ADDR,BRA,SRC_ID,R_Flag,C_Flag,S_Flag,N_Flag,Expire_Date,Wireless_Flag
    1111111111,R,1-a,,,,NDNC,7/7/2006,
    2222222222,R,2-b,,,SDNC,NDNC,7/7/2006,WIR
    3333333333,R,3-c,,,SDNC,NDNC,7/8/2006,
    4444444444,R,4-d,y,,SDNC,NDNC,7/9/2006,WIR
    5555555555,R,5-e,y,,SDNC,,7/10/2006,
    6666666666,R,6-f,y,,,,,WIR
    7777777777,R,7-g,,,,,,
    8888888888,R,8-h,y,,,NDNC,7/7/2006,WIR
    I need to take this data and dump it into another table that looks like the following:
    ADDR     Per_ID     Method     Name     Expire Date     Flag
    1111111111     1-a     Phone     Nat     7/7/2006     Y
    2222222222     2-b     Mobile     State     7/7/2006     Y
    2222222222     2-b     Mobile     Nat     7/7/2006     Y
    4444444444     3-c     Mobile     R     7/9/2006     y
    4444444444     3-c     Mobile     State     7/9/2006     y
    4444444444     3-c     Mobile     Nat     7/9/2006     y
    know that I need to use a cursor using loop and fetch but I am kind of confused on how to make this work. I am fairly new to writing PL/SQL so any tips and tricks would be greatly appreciated.
    For each phone number there can be 1 to 3 records written based on the flags. For each of those records I must store the phone number, the id, flag data, expire date (for only State or National) and Flag must always be checked.
    I have put together a small shell of the program but what goes in the middle is where I am having some problems.
    CREATE OR REPLACE PROCEDURE USP_EIM_CONTACT3_UPD
    IS
    CURSOR dnc_cursor IS
    SELECT CHAN_ADDR,
         BRA,
         SRC_ID,
         R_FLAG,
         C_FLAG,
         S_FLAG,
         N_FLAG,
         EBR_EXPIRE_DATE,
         WIRELESS_FLAG
    FROM eim_admin.RCCL_OPT_OUT_TMP;
         v_counter                     NUMBER := 0;
         v_insert                     NUMBER := 0;
         v_sysdate                     DATE:=SYSDATE;
         v_chan_addr                    eim_admin.RCCL_OPT_OUT_TMP.chan_addr%TYPE;
    BEGIN
         DBMS_OUTPUT.PUT_LINE ('***Begining USP_EIM_CONTACT3_UPD, time is ' ||
    TO_CHAR (v_sysdate, 'MON-DD-YYYY HH24:MI.SS'));
         DBMS_OUTPUT.NEW_LINE;
    FOR rec IN dnc_cursor LOOP
         v_counter:=v_counter+1;
         BEGIN
         SELECT CHAN_ADDR
         INTO v_chan_addr
         FROM eim_admin.RCCL_OPT_OUT_TMP;
         EXCEPTION
    WHEN OTHERS THEN
              DBMS_OUTPUT.PUT_LINE('*** Could not lookup RCCL_OPT_OUT_TMP. ***');
              DBMS_OUTPUT.PUT_LINE('ORA-'||SQLCODE||' '||SQLERRM);
         END;
    BEGIN
              INSERT INTO siebel.S_PER_COMM_ADDR
         (ADDR)
    VALUES
    (rec.CHAN_ADDR);          
              v_insert := v_insert + SQL%ROWCOUNT;
         EXCEPTION WHEN OTHERS THEN
              DBMS_OUTPUT.PUT_LINE('*** Failed to insert into siebel.S_PER_COMM_AADDR DDR ***');
              DBMS_OUTPUT.PUT_LINE('ORA-'||SQLCODE||' '||SQLERRM);
         END;
    END LOOP;
    --Output STATISTICS.
    DBMS_OUTPUT.PUT_LINE('**Number records read :'||v_counter);
    DBMS_OUTPUT.NEW_LINE;
    DBMS_OUTPUT.PUT_LINE ('***Completing USP_EIM_CONTACT3_UPD, time is ' ||
    TO_CHAR (SYSDATE, 'MON-DD-YYYY HH24:MI.SS'));
    EXCEPTION
         WHEN OTHERS THEN
         DBMS_OUTPUT.PUT_LINE(' ****Error in USP_EIM_CONTACT3_UPD ****'||SQLCODE||SQLERRM);                              
    END USP_EIM_CONTACT3_UPD;
    I have already created the table. What we are going to do is using sqlloader to load our text files into our temp table. From there we are going to read the data from the temp table into a table that is already created.
    Basically what I am trying to do is the following:
    Cursor 1
    select * from Temp where, State_Flag and National_Flag is not null
    Insert into Siebel.S_PER_COMM_ADDR
    set id = source var
    set phone = chann_add var
    If
    wireless flag is not null
    set method = 'Mobile"
    else
    set method = 'Home'
    end if
    If
    Brand = 'r' and R_Flag is not null
    set name flg1
    set flag as 'T'
    and so on.
    I am getting confused as to where to call the variables:
    set id = source var
    set phone = chann_add var
    I am also confused on how to do the sets and how to set the date for S_Flag and N_Flag.
    One of the other issues is that I need to go and look at the base table to pick up anyone else that has the phone number and update or delete based on the data in the table.

    I am getting confused as to where to call the variables:
    set id = source var
    set phone = chann_add var have you defined your variables in the DECLARE area? is that a cursor variable or plain variable? need more info.

  • MS Access Date problem (from Java program)

    I have written an app. in Java that reads & writes data from a MS Access database.
    I am trying to write an insert class which will add a row of data to one of my database tables - which contains Date fields.
    My problem is that I can update the text fields, but not Date fields - every time I try my program throws an exception:
    java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement
    My simplified code reads as:
    try {
    Statement insertStatement = databaseConnection.createStatement();
    String query = "INSERT INTO myTable(jobId, employeeId, date) VALUES('11', '1', " + "'13/11/2006'" + ");";
    insertStatement.execute(query);
    } //close, etc. etc.
    If I remove the date info from the query, the program executes successfully. I appreciate my problem might be related to the formatting of the date in Access, and if not a 'proper' Java question I give my apologies.
    I have attempted several formats of the date with no success or variation in the exception.
    I am, however, completely stuck and would appreciate any and all help given.
    Regards and thanks
    David

    I have amended my code to use a preparedStatement, but on execution I have the same problem.
    My code is as follows:
    PreparedStatement pstmt = null;
    try {
    String query = "INSERT INTO myTable (jobId, employeeId, date) VALUES(?, ?, ?);";
    pstmt = databaseConnection.prepareStatement(query);
    pstmt.setString(1, "11");
    pstmt.setString(2, "1");
    java.sql.Date sqlDate = getCurrentJavaSqlDate();
    pstmt.setDate(3, sqlDate);
    // execute query, and return number of rows created
    int rowCount = pstmt.executeUpdate();
    System.out.println("rowCount=" + rowCount);
    pstmt.close();
    catch, etc. etc.
    Any ideas or help most welcome
    Regards
    David

Maybe you are looking for

  • MBP crash during 10.4.11 update, KERNEL PANIC, WON'T BOOT, HELP.

    Attempted update to 10.4.11 via Software Update. Machine crashed (screen went black, nothing made the machine responsive). Forced power down, powered back up, "need to restart computer". Great. Disk Warrior rebuild, permissions repair, restart, KERNE

  • Three reoccuring issues

    I am not able to open any .png files. I get an error saying, "Could not complete your request because Photoshop does not recognize this type of file." I can not save any image as 'Save for the Web' under my file menu. It is always greyed out no matte

  • K8NGM-V, Onboard-LAN problems

    Hi, I'm having some serious problems with the onboard LAN card on my K8NGM-V board. I've been trying alot and I cant get it to work properly. I installed the latest drivers from nvidia (nForce 8.26) and the card is detected and installed as "nvidia n

  • My airport won't connect right away; I have to turn it off first for it to connect

    When I'm connected to the WiFi at my house and then connect to WiFi somewhere else it says it's connected but doesn't work and I have to turn off the Airport first and then turn it on again for it to really connect.    

  • Viewing JTable Data

    Hello everyone I have a little problem viewing data in JTables. When I create the JTable with 30 rows and 500 columns all the columns are initally visible. I then set the JTables preferred size to the jtable total column witdth and height. so now 8 c