Whats wrong in this code using ODBC interface of T10 in C ?

Hi!
I am trying to connect TimesTen using ODBC in a C application, I am trying to use the dynamic binding of parameters the query. The problem is elaborated in the code. In the comments.
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
SQLRETURN rc = SQL_SUCCESS;
/* General return code for the API */
SQLHENV hEnv = SQL_NULL_HENV;
/* Environment handle */
SQLHDBC hDbc = SQL_NULL_HDBC;
/* Connection handle */
SQLHSTMT hStmt = SQL_NULL_HSTMT;
/* Statement handle */
SQLCHAR ConnOut[255];
/* Buffer for completed connection string */
SQLSMALLINT connOutLen;
/* number of bytes returned in ConnOut */
SQLCHAR ConnString = (SQLCHAR ) "DSN=testTT;PWD=spideradm;";
/* Connection attributes */
rc = SQLAllocEnv(&hEnv);
if (rc != SQL_SUCCESS) {
fprintf(stderr,"Unable to allocate an environment handle\n");
exit(1);
SQLINTEGER param1 = 0;
SQLINTEGER paramstatus = 0;
rc = SQLAllocConnect(hEnv, &hDbc);
rc = SQLDriverConnect(hDbc, NULL,ConnString, SQL_NTS,ConnOut, 255,&connOutLen,SQL_DRIVER_NOPROMPT);
hStmt = SQL_NULL_HSTMT;
rc = SQLAllocStmt(hDbc, &hStmt);
rc = SQLPrepare(hStmt,(SQLCHAR*) "select * from test where recno = ? ",SQL_NTS);
rc = SQLBindParameter(hStmt,1,SQL_PARAM_INPUT,SQL_C_SHORT,SQL_INTEGER,0,0,¶m1,0,¶mstatus);
param1= 1;
rc = SQLExecute(hStmt); // here it goes very perfect
param1 = 2;
rc = SQLExecute(hStmt); // here is the problem it returns -1
}

There are (at least) 3 problems with this code:
1. The error checking after each ODBC call is far too simplistic. Whenever an ODBC call returns something other than SQL_SUCCESS then you need to call the SQLError() function (multiple times in a loop until it returns SQL_NO_DATA) to retrieve the error or warning information which you should then report. If you do that then the error information would give you a clue to the problem.
2. The parameter variable 'param1' is declared as a SQLINTEGER (32-bit integer) but you bind it in the SQLBindParameter() call as a SQL_C_SHORT. This is incorrect and will likely cause problems. It should be bound as a SQL_C_SLONG.
3. When you execute a statement that retrieves data (such as the SELECT statement in your example) a cursor is created. The cursor remains open until (a) you explicitly close it with SQLFreeStmt(hStmt, SQL_CLOSE), or (b) you do a commit or rollback (which closes all open cursors on the connection).
Your problem here is that the first SQLExecute opens a cursor for hStmt but you then do not fetch any data or close the cursor. When you try the second execute you get an error as there is already an open cursor for that statement. If you had used SQLError(0 to retrieve and report the error codes and messages you would see that you had incurred either an 'INVALID CURSOR STATE' or 'FUNCTION SEQUENCE ERROR' error.
The fix is to insert the call:
SQLFreeStmt(hStmt,SQL_CLOSE);
after the each SQLExecute(0 call. Of course, in a real application there would also be a SQLFetch() loop first to retrieve and process the results of the query.
Chris

Similar Messages

  • Contest: Guess whats wrong with this code!

    Can you guess whats wrong with this code snippet? Perhaps its too easy...
    private void clearDefaultTableModel( DefaultTableModel dtm) {    
            int  rowCount  = dtm.getRowCount();
            for(int i =0;  i < rowCount; i++) {
                dtm.removeRow(i);  
        }- Karl XII

    Can you guess whats wrong with this code snippet?
    Perhaps its too easy...
    private void clearDefaultTableModel(
    DefaultTableModel dtm) {    
    int  rowCount  = dtm.getRowCount();
    for(int i =0;  i < rowCount; i++) {
    dtm.removeRow(i);  
    it should be
    private void clearDefaultTableModel(DefaultTableModel dtm) {    
       int  rowCount  = dtm.getRowCount();
       for(int i =0;  i < rowCount; i++) {
         dtm.removeRow(0);  
    }or another way
    private void clearDefaultTableModel(DefaultTableModel dtm) {    
      while(dtm.getRowCount()>0){
         dtm.removeRow(0);  

  • HELP PLEASE - WHATS WRONG WITH THIS CODE

    Hi. I get this message coming up when I try to compile the code,
    run:
    java.lang.NullPointerException
    at sumcalculator.SumNumbers.<init>(SumNumbers.java:34)
    at sumcalculator.SumNumbers.main(SumNumbers.java:93)
    Exception in thread "main"
    Java Result: 1
    BUILD SUCCESSFUL (total time: 2 seconds)
    I am not sure whats wrong with the code. Any assistance would be nice. The code is below.
    package sumcalculator;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class SumNumbers extends JFrame implements FocusListener {
    JTextField value1;
    JTextField value2;
    JLabel equals;
    JTextField sum;
    JButton add;
    JButton minus;
    JButton divide;
    JButton multiply;
    JLabel operation;
    public SumNumbers() {
    SumNumbersLayout customLayout = new SumNumbersLayout();
    getContentPane().setFont(new Font("Helvetica", Font.PLAIN, 12));
    getContentPane().setLayout(customLayout);
    value1.addFocusListener(this);
    value2.addFocusListener(this);
    sum.setEditable(true);
    value1 = new JTextField("");
    getContentPane().add(value1);
    value2 = new JTextField("");
    getContentPane().add(value2);
    equals = new JLabel("label_1");
    getContentPane().add(equals);
    sum = new JTextField("");
    getContentPane().add(sum);
    add = new JButton("+");
    getContentPane().add(add);
    minus = new JButton("-");
    getContentPane().add(minus);
    divide = new JButton("/");
    getContentPane().add(divide);
    multiply = new JButton("*");
    getContentPane().add(multiply);
    operation = new JLabel();
    getContentPane().add(operation);
    setSize(getPreferredSize());
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    public void focusGained(FocusEvent event){
    try {
    float total = Float.parseFloat(value1.getText()) +
    Float.parseFloat(value2.getText());
    sum.setText("" + total);
    } catch (NumberFormatException nfe) {
    value1.setText("0");
    value2.setText("0");
    sum.setText("0");
    public void focusLost(FocusEvent event){
    focusGained(event);
    public static void main(String args[]) {
    SumNumbers window = new SumNumbers();
    window.setTitle("SumNumbers");
    window.pack();
    window.show();
    class SumNumbersLayout implements LayoutManager {
    public SumNumbersLayout() {
    public void addLayoutComponent(String name, Component comp) {
    public void removeLayoutComponent(Component comp) {
    public Dimension preferredLayoutSize(Container parent) {
    Dimension dim = new Dimension(0, 0);
    Insets insets = parent.getInsets();
    dim.width = 711 + insets.left + insets.right;
    dim.height = 240 + insets.top + insets.bottom;
    return dim;
    public Dimension minimumLayoutSize(Container parent) {
    Dimension dim = new Dimension(0, 0);
    return dim;
    public void layoutContainer(Container parent) {
    Insets insets = parent.getInsets();
    Component c;
    c = parent.getComponent(0);
    if (c.isVisible()) {c.setBounds(insets.left+24,insets.top+48,128,40);}
    c = parent.getComponent(1);
    if (c.isVisible()) {c.setBounds(insets.left+256,insets.top+48,128,40);}
    c = parent.getComponent(2);
    if (c.isVisible()) {c.setBounds(insets.left+408,insets.top+48,56,40);}
    c = parent.getComponent(3);
    if (c.isVisible()) {c.setBounds(insets.left+488,insets.top+48,152,40);}
    c = parent.getComponent(4);
    if (c.isVisible()) {c.setBounds(insets.left+128,insets.top+136,72,40);}
    c = parent.getComponent(5);
    if (c.isVisible()) {c.setBounds(insets.left+248,insets.top+136,72,40);}
    c = parent.getComponent(6);
    if (c.isVisible()) {c.setBounds(insets.left+368,insets.top+136,72,40);}
    c = parent.getComponent(7);
    if (c.isVisible()) {c.setBounds(insets.left+488,insets.top+136,72,40);}
    c = parent.getComponent(8);
    if (c.isVisible()) {c.setBounds(insets.left+176,insets.top+48,56,40);}
    }

    Thank you. How do i amend this? I have defined value1though.Yes, you did - but after the call to addFocusListener(...). It needs to be before it.
    BTW, you did the same thing with "value2.addFocusListener(this)" and "sum.setEditable(true)" on the next two lines. You're attempting to call a method on an object that doesn't exist yet (i.e., you haven't called new yet).

  • Fed up! dont know whats wrong with this code

    import java.io.*;
    import java.net.*;
    import java.awt.*;
    public class machine {
         private String machine_name;
         private String IP_address;
         public static void main(String[] args) throws IOException {
                   machine server = new machine();
                   server.machine_name = "SERVER1";
                   server.IP_address   = "192.168.0.1";
                   InputStreamReader reads_incoming = null;
                   // Reads incoming Bytes
                   PrintWriter sends_outgoing = null;
                   Socket ping_socket         = null;
                   try{
                        ping_socket = new Socket(server.machine_name , 7);
                        sends_outgoing = new PrintWriter(ping_socket.getOutputStream(),true);
                        reads_incoming = new InputStreamReader(ping_socket.getInputStream());
                   catch (UnknownHostException e){
                        //report error to sole text box
                   catch (IOException e)
                        //similar
                   /* Need a string to send some arbitrary bytes to SERVER1
                    * using IP_address instead , as this field in this implementation
                   while(true)
                        sends_outgoing.println(server.IP_address);
                        if(ping_socket.getInputStream() != null)
                             System.out.print("Server is up");
    }

    same... i am not very experienced, and try and uses this as training... but as new to java programming i could still mention about 5 things that might be wrong with this code... so a deeper explanation would be nice...
    while(true) { } for example seems like a nice way to make infinite loop that can suck your memory out of your computer pretty fast :-) newb

  • Whats Wrong with this code? URLReader

    Ok, so I have this URLReader.java program. It goes to a specific website, I put in a project ID. It pulls up a project. I can then "Scrape", "Extract Data from the URL and put them into variables. I then upload the variables into the DB.
    I've used this code over and over again and it works, but I seem to have a problem with the second part of the code.The error message that I get is:
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    Please note the URL is a fake one. I did not want to give the real URL. I have provided the String to read, which is actually HTML code. I thought it might be the "Researchers(s):" string that it does like, maybe a problem with "(s), but I dont know?
    First part of the code: This really gets a project ID from a collection and iterates throught the collection with each project ID.
    String projectId = "87023";
                java.net.URL projectDetails = new  java.net.URL("http://someSite.com/portfolio/ProjectDetails.asp?Source=Tracking&Key="+projectId);
                java.io.BufferedReader in =
                            new java.io.BufferedReader(new java.io.InputStreamReader(projectDetails.openStream()));
                String projDetailspage = new String("");
                String inputLine = "";
                while ((inputLine = in.readLine()) != null)
                    projDetailspage = projDetailspage.concat(inputLine.trim());
                System.out.println("project ID: "+ projectId);
    Second Part of the Code:
    String str = (projDetailspage.split("\\<[Bb]\\>Researcher(s)\\</[Bb]\\>")  //  look for: <b>Researcher(s):</b> , also the part of code I am having problems with.
                [1].split( "\\<td\\>")[1].split("\\</table>")[0].trim());   //put everything into a variable call str from the <td> to the </table> tags 
                System.out.println("String before replace all: "+ str);
    The HTML code to read and search through:<!-- researchers -->
        <tr>
              <td width="30%" align="right" valign="top">
                   <font size="-1">
                   <b>Researcher(s):</b>
                   </font>
              </td>
                  <td width="70%" align="left" valign="top">
                        <font size="-1">
                        Dr. Michael E. Welge, University of Illinois at Urbana-Champaign
                        </font>
                   </td>
                   </tr>
                            <tr>
                                  <td width="30%">
                                       <font size="-1">
                                       </font>
                                  </td>
                                <td width="70%" align="left" valign="top">
                                       <font size="-1">
                                       Dr. Albert J. Valocchi, University of Illinois at Urbana-Champaign
                                       </font>
                                  </td>
                            </tr>
                            <tr>
                                  <td width="30%">
                                       <font size="-1">
                                       </font>
                                  </td>
                                <td width="70%" align="left" valign="top">
                                       <font size="-1">
                                       Dr. Barbara Ann Bailey, University of Illinois at Urbana-Champaign
                                       </font>
                                  </td>
                            </tr>
                            <tr>
                                  <td width="30%">
                                       <font size="-1">
                                       </font>
                                  </td>
                                <td width="70%" align="left" valign="top">
                                       <font size="-1">
                                       Dr. David E. Goldberg, University of Illinois at Urbana-Champaign
                                       </font>
                                  </td>
                            </tr>
         <!-- students -->
        <tr>
              <td width="30%" align="right" valign="top">
                   <font size="-1">
                   <b>Student(s):</b>
                   </font>
              </td>
                   <td width="70%" align="left" valign="top">
                        <font size="-1">
                        None Found
                        </font>
                   </td>
              </tr>
              </table>
              </td>
         </tr>
         </table>
         </td>
    </tr>
    </table>

    camickr
    I ran your program and it works great. This is the output I get. This is for a project that had 4 researchers, that is not always the case.
    investigator1 = r. Michael E. Welge
    investigator2 = Dr. Albert J. Valocchi
    investigator3 = Dr. Barbara Ann Bailey
    investigator4 = Dr. David E. Goldberg
    for some reason I loose the D in Dr. for the first Investigator.
    also, I know I need to modify my code to find out how many researchers there are. I then place them into the correct variable.
    example
    researchers String that your code works on: None Found</font></td></tr><!-- students --><tr><td width="30%" align="right" valign="top"><font size="-1"><b>Student(s):</b></font></td><td width="70%" align="left" valign="top"><font size="-1">Dr. Terry Hogan, Pennsylvania State University</font></td></tr><tr><td width="30%"><font size="-1"></font></td><td width="70%" align="left" valign="top"><font size="-1">Dr. Chengyu Shen, Pennsylvania State University</font></td></tr><tr><td width="30%"><font size="-1"></font></td><td width="70%" align="left" valign="top"><font size="-1">Dr. Anne Pifer, Pennsylvania State University</font></td></tr>
    investigator1 = one Found|Student(s):|Dr. Terry Hogan  // should be None Found.
    investigator2 = Dr. Chengyu Shen
    investigator3 = Dr. Anne Pifer
    npe errorjava.lang.ArrayIndexOutOfBoundsException: 3
    The logic should be, when I scrape between tags, if it should be "None Found" then skip to the next project ID , also, each project may have as many as 0, 1, 2, 3, 4 researchers. but no more than 4
    So I thought of doing an:
    If( researchers == 2)
        investigator1 = investigator[x];
        investigator2 = investigator[x];
    }etc...
    Thanks again.
    if you need me to email you the code. my email addres is [email protected]
    I know I am not that talented of a programmer, but I am learning, and trying all the time. I want to do this the correct way, but I am not always sure which way that is. I usually try a class Diagram and go from there, but I have had some trouble with this one. If you need more of an explanation then email me.
    orozcom

  • Can understand whats wrong with this code.

    I'm sort new to Java programing, and I created this simple converter, but when I try to complie it, it gives me an exception error, could some one tell me how to correct this code.
    import java.text.*;
    import javax.swing.*;
    public class Converter
         private final static double EURO = .8295577, YEN = 115.614, CAD = 1.17781;
         public static void main (String[] args)
               String input =null;
               double US= 0.0;
               DecimalFormat twoPrecision = new DecimalFormat("0.00");
             input() = 0
              try{
                   US = Double.parseDouble (input);
                    System.out.print("US to Euro: ");
                    System.out.println(twoPrecision.format(US * EURO));
                  US = Double.parseDouble (input);
                    System.out.print("US to Yen: ");
                    System.out.println(twoPrecision.format(US * YEN));
                  US = Double.parseDouble (input);
                    System.out.print("US to Cad: ");
                    System.out.println(twoPrecision.format(US * CAD));
              catch(NumberFormatException e)
                   JOptionPane.showMessageDialog(null,
                                    "You must enter a number",
                                    "Input data error",
                                    JOptionPane.ERROR_MESSAGE);
    }

    Try this:
    import java.text.*;
    import javax.swing.*;
    import java.io.*;
    public class Converter
         private final static double EURO = .8295577, YEN = 115.614, CAD = 1.17781;
         public static void main (String[] args)
               double US= 0.0;
               DecimalFormat twoPrecision = new DecimalFormat("0.00");
               try{
                   BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
             String input=br.readLine();
                   US = Double.parseDouble (input);
                    System.out.print("US to Euro: ");
                    System.out.println(twoPrecision.format(US * EURO));
                  US = Double.parseDouble (input);
                    System.out.print("US to Yen: ");
                    System.out.println(twoPrecision.format(US * YEN));
                  US = Double.parseDouble (input);
                    System.out.print("US to Cad: ");
                    System.out.println(twoPrecision.format(US * CAD));
              catch(Exception e)
                   JOptionPane.showMessageDialog(null,
                                    "You must enter a number",
                                    "Input data error",
                                    JOptionPane.ERROR_MESSAGE);
    }

  • What`s wrong with this code (useing Kernel32.MEMORYSTATUS)?

    If anyone knows, then please tell me...
    Fist file (Nat.java):
    import com.sun.jna.*;
    public class Nat
       public static void main (String [] args)
          Kernel32 lib = (Kernel32) Native.loadLibrary ("kernel32",
                                                        Kernel32.class);
          Kernel32.MEMORYSTATUS mem = new Kernel32.MEMORYSTATUS ();
          lib.GetMem(mem);
          System.out.println ("Available physical memory " + mem.dwAvailPhys);
       } // End of main
    } // End of file
    Second file (Kernel32.java):
    import com.sun.jna.*;
    import com.sun.jna.win32.*;
    public interface Kernel32 extends StdCallLibrary
       public static class MEMORYSTATUS extends Structure
          public long dwLength;
          public long dwMemoryLoad;
          public long dwTotalPhys;
          public long dwAvailPhys;
          public long dwTotalPageFile;
          public long dwAvailPageFile;
          public long dwTotalVirtual;
          public long dwAvailVirtual;
       } // End of MEMORYSTATUS
       void GetMem (MEMORYSTATUS result);
    } // End of file
    Error:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'GetMem': The specified procedure could not be found.
         at com.sun.jna.Function.<init>(Function.java:126)
         at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:219)
         at com.sun.jna.Library$Handler.invoke(Library.java:191)
         at $Proxy0.GetMem(Unknown Source)
         at Nat.main(Nat.java:27)

    For excample, the following code works:
    File 1:
    import com.sun.jna.*;
    public class Nat
       public static void main (String [] args)
          Kernel32 lib = (Kernel32) Native.loadLibrary ("kernel32",
                                                        Kernel32.class);
          Kernel32.SYSTEMTIME time = new Kernel32.SYSTEMTIME ();
          lib.GetLocalTime (time);
          System.out.println ("Year is "+time.wYear);
          System.out.println ("Month is "+time.wMonth);
          System.out.println ("Day of Week is "+time.wDayOfWeek);
          System.out.println ("Day is "+time.wDay);
          System.out.println ("Hour is "+time.wHour);
          System.out.println ("Minute is "+time.wMinute);
          System.out.println ("Second is "+time.wSecond);
          System.out.println ("Milliseconds are "+time.wMilliseconds);
       } // End of main
    } // End of if
    File 2:
    import com.sun.jna.*;
    import com.sun.jna.win32.*;
    public interface Kernel32 extends StdCallLibrary
       public static class MEMORYSTATUS extends Structure
          public long dwLength;
          public long dwMemoryLoad;
          public long dwTotalPhys;
          public long dwAvailPhys;
          public long dwTotalPageFile;
          public long dwAvailPageFile;
          public long dwTotalVirtual;
          public long dwAvailVirtual;
       } // End of MEMORYSTATUS
       void GetMem (MEMORYSTATUS result);
    } // End of file
    Result:
    Year is 2008
    Month is 6
    Day of Week is 0
    Day is 22
    Hour is 16
    Minute is 21
    Second is 58
    Milliseconds are 875

  • Passing events - whats wrong with this code?

    hi,
    I'm trying to get components to behave in a frame like they would as though I had written
    frame.getContentPane().add(thecomponent);
    by processing events explicitly. I've written the code below as a test, and it does work, but the events do not seem to be passed to the component at the right level.
    For example, when the JTree is the component tried it does not expand nodes when you click on them.
    Or if you tree a JButton then it doesn't actually visibly "click"
    I'm still quite new with Swing so any help would be really appreciated - is this kind of thing even possible?
    thanks,
    asjf
    import javax.swing.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    public class EventTest extends Component
         Component notAttached;
         class SimpleMouseListener implements MouseListener
              String owner;
              Component passOnTo;
              SimpleMouseListener(String owner, Component passOnTo)
                   this.owner = owner;
                   this.passOnTo = passOnTo;
              public void mouseClicked(MouseEvent e){passOn(e);}
              public void mousePressed(MouseEvent e){passOn(e);}
              public void mouseReleased(MouseEvent e){passOn(e);}
              public void mouseEntered(MouseEvent e){passOn(e);}
              public void mouseExited(MouseEvent e){passOn(e);}
              public void passOn(MouseEvent e)
                   System.out.println(owner+" "+e);
                   if(passOnTo!=null)
                        passOnTo.dispatchEvent(
                             new MouseEvent(passOnTo,
                                                      e.getID(),
                                                      System.currentTimeMillis(),
                                                      e.getModifiers(),
                                                      e.getX(), // needs offsetting relative to parent
                                                      e.getY(), // needs offsetting relative to parent
                                                      e.getClickCount(),
                                                      e.isPopupTrigger()
         EventTest()
              super();
              notAttached = new JTree(); //JButton("Hello");
                   notAttached.setSize(100,100);
                   notAttached.setVisible(true);
                   notAttached.addMouseListener(new SimpleMouseListener("unattached component",null));
         public void paint(Graphics g){notAttached.paint(g);}
         static void main(String [] arg) throws Exception
              JFrame frame = new JFrame("Passing events test");
                   frame.setSize(640,480);
                   frame.setVisible(true);
                   EventTest et = new EventTest();
                   frame.getContentPane().add(et);
                   frame.addMouseListener(et.new SimpleMouseListener("Frame listener",et.notAttached));
    }

    Sorry
    It doesn't compile.
    I'm not sure how to create the 6 processes to each add part of sum and then update the total for the next processor to sum the next part up, and i don't know where it goes either.
    I think it would be something like:
    public void run()
    try
    //this add it up
    total= array + total;
    System.out.println("PROCESSOR"+thisnumber+" Your total is " + total);
    sleep();
    update(total)
    and then do the same code for another processor.
    I'm confused do I have to name each processor and put the name in :
    public void Processor1 ()
    please help I'm very confused
    }

  • Whats  wrong with this code?

    Hi Experts,
    I am getting the error as " the method get_data has no returning parameter.
    Can someone please help me with this.
    CLASS main DEFINITION.
      PUBLIC SECTION.
        METHODS add_data IMPORTING i_data TYPE i.
        METHODS get_data EXPORTING e_data TYPE char20.
      PRIVATE SECTION.
        DATA attribute TYPE char01.
    ENDCLASS.
          CLASS main IMPLEMENTATION
    CLASS main IMPLEMENTATION.
      METHOD add_data.
        ADD i_data TO attribute.
      ENDMETHOD.
      METHOD get_data.
        CONCATENATE 'Attribute value' attribute
                                   INTO e_data SEPARATED BY space.
      ENDMETHOD.
    ENDCLASS.
    DATA: object_reference TYPE REF TO main.
    end-of-selection.
      CREATE OBJECT object_reference.
      DATA:
      var TYPE char20.
      CALL METHOD object_reference->add_data( i_data = 3 ).
    var = object_reference->get_data( ).  --> errored here
      WRITE var.

    Hi Dan, if you want to use a RETURNING parameter when you call you method, you need to define the parameter as a RETURNING parameter in your class definition.
        METHODS get_data RETURNING VALUE(e_data) TYPE char20.
    You had defined it as an EXPORTING parameter, which means that when you call the method you would have need to use this syntax instead.
       object_reference->get_data( IMPORTING e_data = var ).
    Regards,
    Rich Heilman

  • Please tell me whats wrong with this code for sendRedirect

    /**AckController.java**/
    import java.io.IOException;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.sql.*;
    import java.util.*;
    * @version      1.0
    * @author
    public class AckController extends HttpServlet {
         * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              System.out.println("in AckController.doGet():action: "+req.getParameter("action"));
              String viewName = "";
              viewName = "/TransportersLogin/jsp/dealerAck/DealerAddAck.jsp";
              req.setAttribute("temp","temp");
              System.out.println("1..in AckController.doGet():viewName: "+viewName);     
              resp.sendRedirect(viewName);
         * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              doGet(req,resp);
    /*********end of servlet**********/
    /****DealerAddAck.jsp****/
    <%@ page session="true" language="java" %>
    <%@ page import="javax.servlet.*,javax.servlet.http.*,java.net.*"%>
    <%
    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
    response.setHeader("Pragma","no-cache"); //HTTP 1.0
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>New Page 1</title>
    <link rel="stylesheet" href="/TransportersLogin/theme/stylesecure.css">
    <%
         out.println("in jsp");
         out.println("in jsp: temp value: "+(String)request.getAttribute("temp"));
    %>
    <script>
    function consolidate()
         alert("wait");
         //document.forms[0].action = "DealerConfirmAck.html";
         //document.forms[0].submit();
    </script>
    </head>
    <body>
    <form name="frmaddclaim">
      <table border="0" cellpadding="3" cellspacing="1" width="100%">
      </table>
      <table width="100%" border="0" cellspacing="1" cellpadding="3">
        <tr>
          <td class="TDHeader" height="18" colspan="2">Add Acknowledgement Receipt</td>
        </tr>
        <tr>
          <td class="TDcolorgreybold" height="18" align="left">
               Available Invoices
          </td>
        </tr>
      </table>
      <table width="100%" border="0" height="26" cellpadding="3" cellspacing="0">
        <tr>
          <td class="tdheader" colspan="2" height="22" align="right">
          <input type="button" value="Add Receipt" name="B3" onClick="javascript:consolidate();"></td>
        </tr>
      </table>
      <table width="100%" border="0" height="26" cellpadding="3" cellspacing="0" align="left">
        <tr>
          <td class="labeltextRed" height="18" align="left">Select an Invoice from the
          list and click "Add Receipt". </td>
        </tr>
      </table>
    </form>
    </body>
    </html>I am trying to set an attribute in the request object (attribute name is temp). But in the jsp it is not getting the value of the attribute. The request is not getting transferred. Please let me know what correction is needed.
    I have used RequestDispatcher as well but in that case the control doesnt go the jsp when i used sendRedirect the control goes only if there isnt any request.getattribute in the JSP page.
    Thanks
    Nikesh

    You can;t transfer the request object using response.sendRedirect;
    Use RequestDispatcher to transfer the request object into another page.
    For Example:
    RequestDispatcher dispatcher  = getServletContext().getRequestDispatcher(viewName);
                dispatcher.include(req, resp);

  • Whats wrong with this code? Error 1180.

    I keep getting the error 1180:Call to a possible undefined method getURL
    var jscommand:String = "window.open('www.adobe.com','win','height=1024,width=768,toolbar=no,scrollbars=yes');"; getURL("javascript:" + jscommand + " void(0);");
    Any help would be appreciated.
    Thanks guys.

    Got it.
    Thanks!

  • I can't figure out what's wrong with this code

    First i want this program to allow me to enter a number with the EasyReader class and depending on the number entered it will show that specific line of this peom:
    One two buckle your shoe
    Three four shut the door
    Five six pick up sticks
    Seven eight lay them straight
    Nine ten this is the end.
    The error message i got was an illegal start of expression. I can't figure out why it is giving me this error because i have if (n = 1) || (n = 2) statements. My code is:
    public class PoemSeventeen
    public static void main(String[] args)
    EasyReader console = new EasyReader();
    System.out.println("Enter a number for the poem (0 to quit): ");
    int n = console.readInt();
    if (n = 1) || (n = 2)
    System.out.println("One, two, buckle your shoe");
    else if (n = 3) || (n = 4)
    System.out.println("Three, four, shut the door");
    else if (n = 5) || (n = 6)
    System.out.println("Five, six, pick up sticks");
    else if (n = 7) || (n = 8)
    System.out.println("Seven, eight, lay them straight");
    else if (n = 9) || (n = 10)
    System.out.println("Nine, ten, this is the end");
    else if (n = 0)
    System.out.println("You may exit now");
    else
    System.out.println("Put in a number between 0 and 10");
    I messed around with a few other thing because i had some weird errors before but now i have narrowed it down to just this 1 error.
    The EasyReader class code:
    // package com.skylit.io;
    import java.io.*;
    * @author Gary Litvin
    * @version 1.2, 5/30/02
    * Written as part of
    * <i>Java Methods: An Introduction to Object-Oriented Programming</i>
    * (Skylight Publishing 2001, ISBN 0-9654853-7-4)
    * and
    * <i>Java Methods AB: Data Structures</i>
    * (Skylight Publishing 2003, ISBN 0-9654853-1-5)
    * EasyReader provides simple methods for reading the console and
    * for opening and reading text files. All exceptions are handled
    * inside the class and are hidden from the user.
    * <xmp>
    * Example:
    * =======
    * EasyReader console = new EasyReader();
    * System.out.print("Enter input file name: ");
    * String fileName = console.readLine();
    * EasyReader inFile = new EasyReader(fileName);
    * if (inFile.bad())
    * System.err.println("Can't open " + fileName);
    * System.exit(1);
    * String firstLine = inFile.readLine();
    * if (!inFile.eof()) // or: if (firstLine != null)
    * System.out.println("The first line is : " + firstLine);
    * System.out.print("Enter the maximum number of integers to read: ");
    * int maxCount = console.readInt();
    * int k, count = 0;
    * while (count < maxCount && !inFile.eof())
    * k = inFile.readInt();
    * if (!inFile.eof())
    * // process or store this number
    * count++;
    * inFile.close(); // optional
    * System.out.println(count + " numbers read");
    * </xmp>
    public class EasyReader
    protected String myFileName;
    protected BufferedReader myInFile;
    protected int myErrorFlags = 0;
    protected static final int OPENERROR = 0x0001;
    protected static final int CLOSEERROR = 0x0002;
    protected static final int READERROR = 0x0004;
    protected static final int EOF = 0x0100;
    * Constructor. Prepares console (System.in) for reading
    public EasyReader()
    myFileName = null;
    myErrorFlags = 0;
    myInFile = new BufferedReader(
    new InputStreamReader(System.in), 128);
    * Constructor. opens a file for reading
    * @param fileName the name or pathname of the file
    public EasyReader(String fileName)
    myFileName = fileName;
    myErrorFlags = 0;
    try
    myInFile = new BufferedReader(new FileReader(fileName), 1024);
    catch (FileNotFoundException e)
    myErrorFlags |= OPENERROR;
    myFileName = null;
    * Closes the file
    public void close()
    if (myFileName == null)
    return;
    try
    myInFile.close();
    catch (IOException e)
    System.err.println("Error closing " + myFileName + "\n");
    myErrorFlags |= CLOSEERROR;
    * Checks the status of the file
    * @return true if en error occurred opening or reading the file,
    * false otherwise
    public boolean bad()
    return myErrorFlags != 0;
    * Checks the EOF status of the file
    * @return true if EOF was encountered in the previous read
    * operation, false otherwise
    public boolean eof()
    return (myErrorFlags & EOF) != 0;
    private boolean ready() throws IOException
    return myFileName == null || myInFile.ready();
    * Reads the next character from a file (any character including
    * a space or a newline character).
    * @return character read or <code>null</code> character
    * (Unicode 0) if trying to read beyond the EOF
    public char readChar()
    char ch = '\u0000';
    try
    if (ready())
    ch = (char)myInFile.read();
    catch (IOException e)
    if (myFileName != null)
    System.err.println("Error reading " + myFileName + "\n");
    myErrorFlags |= READERROR;
    if (ch == '\u0000')
    myErrorFlags |= EOF;
    return ch;
    * Reads from the current position in the file up to and including
    * the next newline character. The newline character is thrown away
    * @return the read string (excluding the newline character) or
    * null if trying to read beyond the EOF
    public String readLine()
    String s = null;
    try
    s = myInFile.readLine();
    catch (IOException e)
    if (myFileName != null)
    System.err.println("Error reading " + myFileName + "\n");
    myErrorFlags |= READERROR;
    if (s == null)
    myErrorFlags |= EOF;
    return s;
    * Skips whitespace and reads the next word (a string of consecutive
    * non-whitespace characters (up to but excluding the next space,
    * newline, etc.)
    * @return the read string or null if trying to read beyond the EOF
    public String readWord()
    StringBuffer buffer = new StringBuffer(128);
    char ch = ' ';
    int count = 0;
    String s = null;
    try
    while (ready() && Character.isWhitespace(ch))
    ch = (char)myInFile.read();
    while (ready() && !Character.isWhitespace(ch))
    count++;
    buffer.append(ch);
    myInFile.mark(1);
    ch = (char)myInFile.read();
    if (count > 0)
    myInFile.reset();
    s = buffer.toString();
    else
    myErrorFlags |= EOF;
    catch (IOException e)
    if (myFileName != null)
    System.err.println("Error reading " + myFileName + "\n");
    myErrorFlags |= READERROR;
    return s;
    * Reads the next integer (without validating its format)
    * @return the integer read or 0 if trying to read beyond the EOF
    public int readInt()
    String s = readWord();
    if (s != null)
    return Integer.parseInt(s);
    else
    return 0;
    * Reads the next double (without validating its format)
    * @return the number read or 0 if trying to read beyond the EOF
    public double readDouble()
    String s = readWord();
    if (s != null)
    return Double.parseDouble(s);
    // in Java 1, use: return Double.valueOf(s).doubleValue();
    else
    return 0.0;
    Can anybody please tell me what's wrong with this code? Thanks

    String[] message = {
        "One, two, buckle your shoe",
        "One, two, buckle your shoe",
        "Three, four, shut the door",
        "Three, four, shut the door",
        "Five, six, pick up sticks",
        "Five, six, pick up sticks",
        "Seven, eight, lay them straight",
        "Seven, eight, lay them straight",
        "Nine, ten, this is the end",
        "Nine, ten, this is the end"
    if(n>0)
        System.out.println(message[n]);
    else
        System.exit(0);

  • What is wrong in this code..please

    first of all,i kindly request team please not kill me by giving suggestion using xml parser.......can u please tell how this handle in reading follwing lines....
    orderREF="1036578"><edm:OrderItem><edm:Order orderID="1036579"/> ineed to retoeve value 1036578 i use following code
    final String START6_TAG="orderREF=";
    final String END6_TAG=">";
    final String END7_TAG="/>";
    as per my observation,the follwing code need not work
    if(line.indexOf(START6_TAG)> -1 ) {
    //this code handle "orderREF=" in stands for order id
    if(line.indexOf(END7_TAG,line.indexOf(START6_TAG))>-1){ //because if we use line.indexOf(END7_TAG)it take only first indexof that..
    efound9=false;
    asper above line this code cannot excecute.but igo to loop and set flag efound9=false, what is wrong in this code for handling
    orderREF="1036578"/><edm:OrderItem><edm:Order orderID="1036579"/> this type of line that also comes in same program,here also we need output as 1036578.please tell me what i will do to hanndle these

    first of all,i kindly request team please not kill
    me by giving suggestion using xml parser.......can u
    please tell how this handle in reading follwing
    lines.... I don't understand why you are so opposed to an xml parser. You could have spent 3 hours learning how to use it and been done with this problem in the time you've spent trying to hack your way around it.
    jdom tutorials: http://www.jdom.org/downloads/docs.html
    dom4j tutorials: http://www.dom4j.org/cookbook.html

  • What the he** is wrong with this code?

    Hi,
    I have 2 tables. Primary table "resease" and secondary table (containing the foreign key) "kunden".
    Selecting a release (dropdownlist), will show you the corresponding entry of kunden (datatable).
    I added buttons to the datatable for deleting certain rows. This all works fine so far.
    But as you are going to delte the last entry of table kunden, I want to delte the corresponding entry of the table release as well. And by trying to do so, I get an exception telling in line "dataTable1Model.commit();"
    "java.sql.SQLException: Lock time out; try later."
    The exception disappears by deleting the inner try-catch block.
    So what is wrong with this code?
    Thank,
    Mark.
    PS: If you need the database-schema or anything else, let me know....
    public String delete_action() {
            try {
             //returns -1, so I can't use it     
                int rowCount = dataTable1Model.getRowCount();          
             //get affected row     
                com.sun.jsfcl.data.DataCache.Row row =
                dataTable1Model.getDataCache().get(dataTable1Model.getRowIndex());
                row.setDeleted(true);
                try {
                    //New RowSet for getting FK of affected line
                    JdbcRowSetXImpl pkRowSet = new JdbcRowSetXImpl();
                    pkRowSet.setDataSourceName("java:comp/env/jdbc/AVT");
                    pkRowSet.setCommand("SELECT fk_idrelease FROM kunden " +
                    "where fk_idrelease = ?");
                    //Convert Row into string
                    String myRow = row.toString();
                    //Getting the index of the first "=" (it's before the FK)
                    int index = myRow.indexOf("=")+1;
                    //Getting the number (FK) out of the string an casting it to int
                    int fk = Integer.parseInt(myRow.substring(index,(index+1)));
                    //Saving the FK in SessionBean1, so I can use it a parameter of
              //the setObject(int, Object)-method
                    getSessionBean1().setFk(fk);
                    //this will give me a RowSet of all lines containing the FK of
              //the affected row
              pkRowSet.setObject(1, getSessionBean1().getFk());
                    pkRowSet.execute();
                    pkRowSet.last();
                    int numRow = pkRowSet.getRow();
              //If the numRow (numbers of rows) is 1, go to cascade_delte
              //and delte the entry with primary key as well
                    if (numRow == 1) {
                        cascade_delete(); //not implemented yet
                }catch (Exception ex) {
                    error("Error counting affected rows: " + ex);
                dataTable1Model.commit();
                dataTable1Model.execute();
                info("Deleting row OK!");
            }catch (Exception e) {
                log("Page 1: Row delete exception: ", e);
                error("Error during deleting: " + e);
            } // end try catch
          return null;
        }

    just a guess - perhaps call pkRowSet.close() at the end of your try/catch?
    v

  • What is wrong with this code? on(release) gotoAndPlay("2")'{'

    Please could someone tell me what is wrong with this code - on(release)
    gotoAndPlay("2")'{'
    this is the error that comes up and i have tried changing it but it is not working
    **Error** Scene=Scene 1, layer=Layer 2, frame=1:Line 2: '{' expected
         gotoAndPlay("2")'{'
    Total ActionScript Errors: 1 Reported Errors: 1
    Thanks

    If you have a frame labelled "2" then it should be:
    on (release) {
        this._parent.gotoAndPlay("2");
    or other wise just the following to go to frame 2:
    on (release) {
         this._parent.gotoAndPlay(2);
    You just had a missing curly bracket...

Maybe you are looking for

  • IDvd - Onestep dvd from movie, not working?

    I am trying to make a onestep dvd from movie - from an avi file... but every time I make one (I followed all the directions perfectly). It looks like it is burning and takes about 4  hrs. but nothing happens. it just says I have inserted a blank dvd.

  • Document of type Link are not getting classified

    Hi All, Document of type Link are not getting classified. 1) Is it a bug from SAP? 2) We are missing/messing something? Regards, Ganga.

  • HT4061 Lightning connector is missing when I unpacked IPhone 5 Box!

    A freind of mined ordered a Iphone online recently on my behalf and it was delivered earlier than the actual date promised wthich is good, but when I unpacked it Lightning connector is missing and I'm unable to use the phone. Please can any one let m

  • Fonts went strange after system upgrade

    After 'pacman -Syu' i rebooted and my fonts started looking strange, kinda bigger. In some places its not even noticeable but again in other places it is x(. I'm using Flubox as a WM and i really don't think this has anything to do with the WM. I was

  • Which page number is a certain field printed on?

    Post Author: rkbnair CA Forum: General How can I know on which page a field is printed on a report? I use RDC from Visual Basic. Thanks