> Hi, > > I have following code to insert a row into a table - schema follows: > : > PreparedStatement insertData = targetConnection.prepareStatement("insert > into CompanyParticipationLevel > (siteId,nodeId,companyId,editionId,participation > LevelId,participationText,participationLogo) values (?, ?, ?, ?, ?, ?, > ?)"); > > Statement sourceData = sourceConnection.createStatement(); > ResultSet sourceResultSet = sourceData.executeQuery("select > cpl.siteId, > isnull(cpl.nodeId,0) as nodeId, cpl.companyId, cpl.editionId, > cpl.participationL > evelId, cpl.participationText, cpl.participationLogo FROM > CompanyParticipationLe > vel cpl where cpl.siteId=8 and cpl.participationLevelTypeId=1"); > Object value = null; > while (sourceResultSet.next()) { > insertData.clearParameters(); > System.out.print("processing ("); > > for(int i = 1; i <= 7; i++){ > value = sourceResultSet.getObject(i); > insertData.setObject(i, value); > System.out.print("("+value+")"); > } > System.out.println(")"); > insertData.executeUpdate(); > } > > +----------------------+---------------------+------+-----+---------+-------+ > | Field | Type | Null | Key | Default | > Extra | > +----------------------+---------------------+------+-----+---------+-------+ > | siteId | int(10) unsigned | | PRI | 0 | > | > | nodeId | int(10) unsigned | | PRI | 0 | > | > | companyId | int(10) unsigned | | PRI | 0 | > | > | editionId | int(10) unsigned | | PRI | 0 | > | > | participationLevelId | tinyint(3) unsigned | | PRI | 0 | > | > | participationText | text | YES | | NULL | > | > | participationLogo | varchar(128) | YES | | NULL | > | > +----------------------+---------------------+------+-----+---------+-------+ > > The output of the program: > processing ((8)(0)(56361)(0)(4)(null)( )) > Exception in thread "main" java.sql.SQLException: Column 'siteId' cannot > be null > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2551) > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1443) > at > com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedSt > atement.java:1239) > at > com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPrepared > Statement.java:903) > at > com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1871) > at > com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1796) > at com.mysql.jdbc.PreparedStatement.executeUpdate > (PreparedStatement.java:1658) > > It is obvious that I did setObject correctly, there are 7 columns and > I have 7 value supplied. But JDBC complains that first column is null. > > Is it a bug or someone can tell me what is going on? > > Thanks > > Haitao
What version of Connector/J are you using? This looks like a bug that was fixed in 3.1.3. -Mark -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]