What Marshall describes will work fine but if you do this in a loop or
more than once you might want to use a PreparedStatement. The steps are
about the same but you would supply question marks (?) for place holders
as "insert into it005p (item_number) values(?)" and set them by their
ordinal position like: myPreparedStatement.setBigDecimal(1, new
BigDecimal("5555.55")); In this case the one is the 1st ?.

David Morris

>>> marshall@xxxxxxxxxxx 10/28/2004 9:13:25 AM >>>
You are making things way too difficult.  The SQL processor on the 400

will take care of packing the data for you.  Just create an SQL string



and execute it.
Marshall Dunbar
DPS, Inc.
main office:(317)574-4300 (800)654-4689

EDoxtator <doc6502@xxxxxxxxx> 
Sent by: java400-l-bounces@xxxxxxxxxxxx 
10/28/2004 10:37 AM
Please respond to
Java Programming on and around the iSeries / AS400 


Inserting packed values into a DB2/400 table via JDBC

Hi All

I've got a table that has several packed columns.  How do I insert
values into this table from a Windows PC via JDBC?  I'm using JTOpen

Here is a snippet of the code I'm using to try and create the value:

Connection con = null;
com.ibm.as400.access.AS400PackedDecimal a = new 
     com.ibm.as400.access.AS400PackedDecimal( 7, 0 );

::: snipped connection code :::

   // Create and execute SQL Insert 
   Statement stmt = con.createStatement();
   byte[] b = a.toBytes( new BigDecimal( 47001 ) );
   String value = b.toString();

   String SQLStmt =
                 "INSERT INTO IT005P " +
        "(ITEM_NUMBER) " +
        "VALUES(\"" + value + "\")";

   ResultSet rs = con.execute( SQLStmt );

::: remainder of program snipped :::

Of course, what I see if I log the SQL statement is:

SQL Statement = INSERT INTO IT005P (ITEM_NUMBER) VALUES("[B@16672d6")

Error: [SQL0206] Column "[B@16672d6" not in specified tables.

If anyone has any ideas, I'd really appreciate it.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.